UNPKG

741 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@kushki/ng-suka/lib/loading/loading.component.ts","ng://@kushki/ng-suka/lib/loading/loading.module.ts","ng://@kushki/ng-suka/lib/button/button.directive.ts","ng://@kushki/ng-suka/lib/button/button-group.component.ts","ng://@kushki/ng-suka/lib/button/button.module.ts","ng://@kushki/ng-suka/lib/checkbox/checkbox.component.ts","ng://@kushki/ng-suka/lib/checkbox/checkbox.module.ts","ng://@kushki/ng-suka/lib/icon/icon-defs.ts","ng://@kushki/ng-suka/lib/icon/icon.component.ts","ng://@kushki/ng-suka/lib/icon/icon.module.ts","ng://@kushki/ng-suka/lib/select/select.component.ts","ng://@kushki/ng-suka/lib/select/option.directive.ts","ng://@kushki/ng-suka/lib/select/optgroup.directive.ts","ng://@kushki/ng-suka/lib/select/select.module.ts","ng://@kushki/ng-suka/lib/input/label.component.ts","ng://@kushki/ng-suka/lib/input/input.directive.ts","ng://@kushki/ng-suka/lib/input/text-area.directive.ts","ng://@kushki/ng-suka/lib/input/input.module.ts","ng://@kushki/ng-suka/lib/grid/grid.directive.ts","ng://@kushki/ng-suka/lib/grid/grid.module.ts","ng://@kushki/ng-suka/lib/toggle/toggle.component.ts","ng://@kushki/ng-suka/lib/toggle/toggle.module.ts","ng://@kushki/ng-suka/lib/radio/radio-change.class.ts","ng://@kushki/ng-suka/lib/radio/radio.component.ts","ng://@kushki/ng-suka/lib/radio/radio-group.component.ts","ng://@kushki/ng-suka/lib/radio/radio.module.ts","ng://@kushki/ng-suka/lib/button-radio/button-radio-change.class.ts","ng://@kushki/ng-suka/lib/button-radio/button-radio.component.ts","ng://@kushki/ng-suka/lib/button-radio/button-radio-group.component.ts","ng://@kushki/ng-suka/lib/button-radio/button-radio.module.ts","ng://@kushki/ng-suka/lib/container/container.directive.ts","ng://@kushki/ng-suka/lib/container/container.module.ts","ng://@kushki/ng-suka/lib/spacing/margin.directive.ts","ng://@kushki/ng-suka/lib/spacing/padding.directive.ts","ng://@kushki/ng-suka/lib/spacing/spacing.module.ts","ng://@kushki/ng-suka/lib/card/card.component.ts","ng://@kushki/ng-suka/lib/card/card-header.component.ts","ng://@kushki/ng-suka/lib/card/card-section.component.ts","ng://@kushki/ng-suka/lib/card/card-footer.component.ts","ng://@kushki/ng-suka/lib/card/card.module.ts","ng://@kushki/ng-suka/lib/accordion/accordion.component.ts","ng://@kushki/ng-suka/lib/accordion/accordion-item.component.ts","ng://@kushki/ng-suka/lib/accordion/accordion.module.ts","ng://@kushki/ng-suka/lib/list/list-item.directive.ts","ng://@kushki/ng-suka/lib/list/list.directive.ts","ng://@kushki/ng-suka/lib/list/list.module.ts","ng://@kushki/ng-suka/lib/number-input/number-change.class.ts","ng://@kushki/ng-suka/lib/number-input/number.component.ts","ng://@kushki/ng-suka/lib/number-input/number.module.ts","ng://@kushki/ng-suka/lib/search/search.component.ts","ng://@kushki/ng-suka/lib/search/search.module.ts","ng://@kushki/ng-suka/lib/tabs/tab-item.component.ts","ng://@kushki/ng-suka/lib/tabs/tabs.component.ts","ng://@kushki/ng-suka/lib/tabs/tabs.module.ts","ng://@kushki/ng-suka/lib/tooltip/tooltip-container.component.ts","ng://@kushki/ng-suka/lib/tooltip/tooltip.directive.ts","ng://@kushki/ng-suka/lib/tooltip/tooltip.module.ts","ng://@kushki/ng-suka/lib/link/link.directive.ts","ng://@kushki/ng-suka/lib/link/link.module.ts","ng://@kushki/ng-suka/lib/input-group/input-group.component.ts","ng://@kushki/ng-suka/lib/input-group/input-group-item.directive.ts","ng://@kushki/ng-suka/lib/input-group/input-group.module.ts","ng://@kushki/ng-suka/lib/modal/modal-ref.ts","ng://@kushki/ng-suka/lib/modal/modal.tokens.ts","ng://@kushki/ng-suka/lib/modal/modal-container.component.ts","ng://@kushki/ng-suka/lib/modal/modal.service.ts","ng://@kushki/ng-suka/lib/modal/modal.directive.ts","ng://@kushki/ng-suka/lib/modal/modal.module.ts","ng://@kushki/ng-suka/lib/popover/popover.tokens.ts","ng://@kushki/ng-suka/lib/popover/popover-ref.ts","ng://@kushki/ng-suka/lib/popover/popover-container.component.ts","ng://@kushki/ng-suka/lib/popover/popover.service.ts","ng://@kushki/ng-suka/lib/popover/popover.directive.ts","ng://@kushki/ng-suka/lib/popover/popover-section.component.ts","ng://@kushki/ng-suka/lib/popover/popover-action-list.component.ts","ng://@kushki/ng-suka/lib/popover/popover-action-item.component.ts","ng://@kushki/ng-suka/lib/popover/popover.module.ts","ng://@kushki/ng-suka/lib/stack/stack.component.ts","ng://@kushki/ng-suka/lib/stack/stack-item.directive.ts","ng://@kushki/ng-suka/lib/stack/stack.module.ts","ng://@kushki/ng-suka/lib/form-layout/form-layout.component.ts","ng://@kushki/ng-suka/lib/form-layout/form-layout.module.ts","ng://@kushki/ng-suka/lib/table/table.component.ts","ng://@kushki/ng-suka/lib/table/cell.ts","ng://@kushki/ng-suka/lib/table/row.ts","ng://@kushki/ng-suka/lib/pagination/pagination.component.ts","ng://@kushki/ng-suka/lib/pagination/pagination-utils.ts","ng://@kushki/ng-suka/lib/pagination/pagination.module.ts","ng://@kushki/ng-suka/lib/table/table-data-source.ts","ng://@kushki/ng-suka/lib/table/table-skeleton.component.ts","ng://@kushki/ng-suka/lib/table/table.module.ts","ng://@kushki/ng-suka/lib/navigation/navigation.component.ts","ng://@kushki/ng-suka/lib/navigation/navigation-item.component.ts","ng://@kushki/ng-suka/lib/navigation/navigation-menu.component.ts","ng://@kushki/ng-suka/lib/navigation/mobile-navigation.component.ts","ng://@kushki/ng-suka/lib/navigation/navigation.module.ts","ng://@kushki/ng-suka/lib/badge/badge.component.ts","ng://@kushki/ng-suka/lib/badge/badge.module.ts","ng://@kushki/ng-suka/lib/topbar/topbar.component.ts","ng://@kushki/ng-suka/lib/topbar/topbar-global.component.ts","ng://@kushki/ng-suka/lib/topbar/topbar-navigation.component.ts","ng://@kushki/ng-suka/lib/topbar/topbar-item.component.ts","ng://@kushki/ng-suka/lib/topbar/topbar-menu.component.ts","ng://@kushki/ng-suka/lib/topbar/topbar.module.ts","ng://@kushki/ng-suka/lib/frame/frame.component.ts","ng://@kushki/ng-suka/lib/frame/frame.module.ts","ng://@kushki/ng-suka/lib/breadcrumb/breadcrumb.component.ts","ng://@kushki/ng-suka/lib/breadcrumb/breadcrumb.module.ts","ng://@kushki/ng-suka/lib/page/page.component.ts","ng://@kushki/ng-suka/lib/page/page-header.component.ts","ng://@kushki/ng-suka/lib/page/page.module.ts","ng://@kushki/ng-suka/lib/file-uploader/file-uploader.component.ts","ng://@kushki/ng-suka/lib/file-uploader/file.component.ts","ng://@kushki/ng-suka/lib/file-uploader/file-uploader.module.ts","ng://@kushki/ng-suka/lib/avatar/avatar.component.ts","ng://@kushki/ng-suka/lib/avatar/avatar.module.ts","ng://@kushki/ng-suka/lib/datepicker-input/datepicker-input.component.ts","ng://@kushki/ng-suka/lib/datepicker-input/datepicker-input.module.ts","ng://@kushki/ng-suka/lib/datepicker/sukaFlatpickrMonthSelectPlugin.ts","ng://@kushki/ng-suka/lib/datepicker/datepicker.component.ts","ng://@kushki/ng-suka/lib/datepicker/datepicker.module.ts","ng://@kushki/ng-suka/lib/toast/toast-ref.ts","ng://@kushki/ng-suka/lib/toast/toast.tokens.ts","ng://@kushki/ng-suka/lib/toast/toast-animations.ts","ng://@kushki/ng-suka/lib/toast/toast-container.component.ts","ng://@kushki/ng-suka/lib/toast/toast.service.ts","ng://@kushki/ng-suka/lib/toast/toast.module.ts","ng://@kushki/ng-suka/lib/progress/progress.component.ts","ng://@kushki/ng-suka/lib/progress/progress.module.ts","ng://@kushki/ng-suka/lib/layout/layout.component.ts","ng://@kushki/ng-suka/lib/layout/layout-section.component.ts","ng://@kushki/ng-suka/lib/layout/layout.module.ts","ng://@kushki/ng-suka/lib/banner/banner.component.ts","ng://@kushki/ng-suka/lib/banner/banner.module.ts","ng://@kushki/ng-suka/lib/code-snippet/code-snippet.component.ts","ng://@kushki/ng-suka/lib/code-snippet/code-snippet.module.ts","ng://@kushki/ng-suka/lib/empty-state/empty-state.component.ts","ng://@kushki/ng-suka/lib/empty-state/empty-state.module.ts","ng://@kushki/ng-suka/lib/color-picker/color-utils.ts","ng://@kushki/ng-suka/lib/color-picker/color-picker.component.ts","ng://@kushki/ng-suka/lib/color-picker/color-slider.component.ts","ng://@kushki/ng-suka/lib/color-picker/color-palette.component.ts","ng://@kushki/ng-suka/lib/color-picker/color-picker-input.component.ts","ng://@kushki/ng-suka/lib/color-picker/color-picker.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__values","o","m","Symbol","iterator","next","value","done","__read","r","e","ar","push","error","__spread","concat","Loading","elementRef","title","isActive","size","overlay","Component","args","selector","template","ElementRef","Input","type","HostBinding","LoadingModule","NgModule","declarations","exports","imports","CommonModule","Button","ref","el","renderer","viewContainerRef","componentFactoryResolver","sukaButton","skeleton","outline","hover","fullWidth","inGroup","loading","defineProperty","getType","ngOnInit","factory","resolveComponentFactory","componentRef","createComponent","loadingSpinner","instance","setStyle","nativeElement","appendChild","disabled","ngOnChanges","changes","currentValue","ngAfterViewInit","detectChanges","Directive","ChangeDetectorRef","Renderer2","ViewContainerRef","ComponentFactoryResolver","ButtonGroup","baseClass","ngAfterContentInit","buttons","toArray","forEach","button","ContentChildren","ButtonModule","entryComponents","Init","Indeterminate","Checked","Unchecked","Checkbox","changeDetectorRef","inline","hideLabel","id","checkboxCount","ariaLabel","change","EventEmitter","indeterminateChange","_checked","_indeterminate","currentCheckboxState","CheckboxState","onTouched","propagateChange","_","indeterminate","changed","transitionCheckboxState","checked","emit","_this","Promise","resolve","then","markForCheck","toggle","writeValue","registerOnChange","fn","registerOnTouched","onChange","event","stopPropagation","onClick","emitChangeEvent","newState","oldState","inputCheckbox","CheckboxChange","source","providers","provide","NG_VALUE_ACCESSOR","useExisting","multi","changeDetection","ChangeDetectionStrategy","OnPush","Output","ViewChild","static","CheckboxModule","FormsModule","iconDefs","name","Icon","sanitizer","_icon","getIconDef","iconDefinition","filter","iconDef","Error","content","bypassSecurityTrustHtml","DomSanitizer","IconModule","Select","_value","display","selectCount","invalid","valid","valueChange","onChangeHandler","onTouchedHandler","select","v","obj","setDisabledState","isDisabled","target","onBlur","isTemplate","TemplateRef","forwardRef","HostListener","Option","inputClass","OptGroup","SelectModule","Label","labelCounter","labelClass","wrapper","querySelector","setAttribute","TextInput","TextArea","InputModule","GridDirective","RowDirective","noGutters","rowDeck","ColumnDirective","class","columnNumbers","offsets","_columnClasses","join","set","classes","split","columnKeys","keys","key","err","console","GridModule","ToggleChange","Toggle","toggleCount","distribution","currentToggleState","ToggleState","transitionToggleState","ToggleModule","Radio","labelPlacement","required","radioCount","role","hostClass","_labelledby","radioChangeHandler","radioEvent","RadioChange","registerRadioChangeHandler","RadioGroup","orientation","radioLabelPlacement","radioButtonGroupClass","isInitialized","_disabled","_skeleton","_selected","_name","radioGroupCount","selected","checkSelectedRadio","newValue","updateSelectedRadioFromValue","updateRadios","updateChildren","alreadySelected","radios","radio","setTimeout","subscribe","updateRadioChangeHandler","child","RadioModule","ButtonRadio","buttonRadioCount","buttonRadioChangeHandler","ButtonRadioEvent","ButtonRadioChange","registerButtonRadioChangeHandler","ButtonRadioGroup","buttonRadioButtonGroupClass","buttonRadioGroupCount","checkSelectedButtonRadio","updateSelectedButtonRadioFromValue","updateButtonRadios","buttonRadios","buttonRadio","updateButtonRadioChangeHandler","ButtonRadioModule","Container","sukaContainer","default","fluid","ContainerModule","MarginDirective","classList","add","MarginTopDirective","mt","MarginBottomDirective","mb","MarginLeftDirective","ml","MarginRightDirective","mr","MarginHorizontalDirective","mx","MarginVerticalDirective","my","PaddingDirective","PaddingTopDirective","pt","PaddingBottomDirective","pb","PaddingLeftDirective","pl","PaddingRightDirective","pr","PaddingHorizontalDirective","px","PaddingVerticalDirective","py","SpacingModule","Card","primaryFooterAction","secondaryFooterAction","headerAction","cardClass","showFooter","observers","onPrimaryFooterAction","$event","onSecondaryFooterAction","onHeaderAction","encapsulation","ViewEncapsulation","None","CardHeader","showAction","cardHeaderClass","action","CardSection","cardSectionClass","CardFooter","showSecondaryButton","primaryAction","secondaryAction","onButtonClick","buttonType","CardModule","Accordion","openCloseItems","Subject","skeletons","updateSkeletons","AccordionItem","accordion","accordionItemCount","opened","closed","itemClass","expanded","itemType","ariaLevel","alive","close","open","openSubscription","pipe","takeWhile","collapsed","skeletonSubscription","skeletonValue","ngOnDestroy","unsubscribe","decorators","Host","AccordionModule","ListItemDirective","List","nested","tagName","parentElement","ListModule","Number","containerClass","numberCount","min","max","onIncrement","onDecrement","NumberChange","onNumberInputChange","NumberModule","Search","toolbar","active","tableSearch","searchCount","autocomplete","label","placeholder","clearButtonTitle","clear","onSearch","search","doValueChange","clearSearch","openSearch","inputRef","focus","keyDown","focusOut","relatedTarget","SearchModule","TabItem","Tabs","fitted","tabs","tab","selectTab","first","tabItem","TabsModule","TooltipContainer","renderMethod","position","animations","trigger","transition","style","opacity","animate","positions","top","originX","originY","overlayX","overlayY","offsetY","right","offsetX","bottom","left","Tooltip","overlayPositionBuilder","positionStrategy","flexibleConnectedTo","withPositions","overlayRef","scrollStrategy","scrollStrategies","show","tooltipRef","attach","ComponentPortal","hide","detach","onMouseEnter","onMouseOut","duration","Overlay","OverlayPositionBuilder","TooltipModule","OverlayModule","arrowImg","find","externalImg","Link","document","arrow","tabindex","_external","external","createElement","className","innerHTML","Inject","DOCUMENT","LinkModule","InputGroup","condensed","InputGroupItem","auto","full","InputGroupModule","ModalRef","_beforeClose","_afterClosed","data","_result","componentInstance","animationStateChanged","phaseName","take","complete","detachBackdrop","toState","dispose","startExitAnimation","afterClosed","asObservable","beforeClose","MODAL_CONTENT_DATA","InjectionToken","ModalContainer","dialogRef","animationState","actions","primaryActions","secondaryActions","onClose","onAction","tag","handleKeydown","keyCode","onAnimationStart","onAnimationDone","closeModal","state","transform","DEFAULT_CONFIG","closeOnBackdropClick","hasBackdrop","backdropClass","panelClass","ModalService","injector","config","dialogConfig","createOverlay","modalRef","overlayComponent","attachModalContainer","backdropClick","overlayConfig","getOverlayConfig","createInjector","containerPortal","injectionTokens","WeakMap","PortalInjector","global","centerHorizontally","centerVertically","OverlayConfig","block","Injectable","Injector","ModalDirective","modalService","closeButton","openModal","modalConfig","body","primaryActionLabel","secondaryActionLabel","result","ModalModule","POPOVER_CONTENT_DATA","PopoverRef","PopoverContainer","popoverRef","sectioned","closePopover","alignments","center","alignment","PopoverService","DEFAULT_CONFIG$1","popoverConfig","attachPopoverContainer","reposition","Popover","popoverService","PopoverSection","PopoverActionList","PopoverActionItem","destructive","PopoverModule","Stack","vertical","spacing","wrap","StackItem","fill","StackModule","FormLayout","FormLayoutModule","SukaTable","_super","stickyCssClass","tslib_1.__extends","exportAs","CDK_TABLE_TEMPLATE","CdkTable","Default","SukaCellDef","CdkCellDef","SukaHeaderCellDef","CdkHeaderCellDef","SukaFooterCellDef","CdkFooterCellDef","SukaColumnDef","CdkColumnDef","SukaHeaderCell","columnDef","cssClassFriendlyName","host","CdkHeaderCell","SukaFooterCell","CdkFooterCell","SukaCell","CdkCell","SukaHeaderRowDef","CdkHeaderRowDef","inputs","SukaFooterRowDef","CdkFooterRowDef","SukaRowDef","CdkRowDef","SukaHeaderRow","CDK_ROW_TEMPLATE","CdkHeaderRow","SukaFooterRow","CdkFooterRow","SukaRow","CdkRow","Pagination","_changeDetectorRef","initialized","_pageIndex","_length","_pageSizeOptions","_hidePageSize","_showFirstLastButtons","page","_pagesArray","getRangeLabel","pageSize","startIndex","Math","coerceNumberProperty","_updateDisplayedPagesArray","_pageSize","_updateDisplayedPageSizeOptions","map","coerceBooleanProperty","_initialized","nextPage","hasNextPage","previousPageIndex","pageIndex","_emitPageEvent","previousPage","hasPreviousPage","firstPage","lastPage","getNumberOfPages","goToPage","maxPageIndex","ceil","_changePageSize","floor","_nextButtonsDisabled","_previousButtonsDisabled","pageSizeOptions","_displayedPageSizeOptions","slice","indexOf","sort","a","pageNumber","currentPage","pageArray","startingPosition","endPosition","array","unshift","appendFirstPages","lastPageNumber","appendLastPages","buildPaginationArray","PaginationModule","SukaTableDataSource","initialData","_renderData","BehaviorSubject","_filter","_internalPageChanges","_renderChangesSubscription","Subscription","EMPTY","filterPredicate","dataStr","reduce","currentTerm","toLowerCase","transformedFilter","trim","_data","_updateChangeSubscription","_paginator","paginator","pageChange","merge","observableOf","dataStream","filteredData","combineLatest","_a","_filterData","paginatedData","_pageData","_updatePaginator","filteredDataLength","lastPageIndex","newPageIndex","connect","disconnect","DataSource","SukaTableSkeleton","columns","rowNumber","rows","x","EXPORTED_DECLARATIONS","TableModule","CdkTableModule","Navigation","hidden","NavigationItem","domSanitizer","router","navigation","isSubMenu","_href","route","subscription","events","NavigationEnd","update","bypassSecurityTrustUrl","navigate","preventDefault","status_1","routeExtras","itemUrl","createUrlTree","Router","Optional","NavigationMenu","childrenHeight","navigationItems","item","navigationNativeItems","children","offsetHeight","read","MobileNavigation","NavigationModule","Badge","BadgeModule","Topbar","insideContainer","brand","TopbarGlobal","TopbarNavigation","TopbarItem","TopbarMenu","onMouseOver","onFocusOut","contains","TopbarModule","Frame","breakpointObserver","mobile","observe","matches","activateHandsetLayout","activateDesktopLayout","BreakpointObserver","FrameModule","LayoutModule","Breadcrumb","activatedRoute","breadcrumbs$","distinctUntilChanged","buildBreadcrumb","root","url","breadcrumbs","routeConfig","nextUrl","path","newBreadcrumbs","firstChild","ActivatedRoute","BreadcrumbModule","RouterModule","Page","narrow","_fluid","breadcrumb","PageHeader","PageModule","noop","FileUploader","buttonText","accept","multiple","fileUploaderId","fileUploaderCount","files","Set","filesChange","onTouchedCallback","onChangeCallback","onFilesAdded","fileInput","files_1","tslib_1.__values","files_1_1","fileItem","file","uploaded","invalidText","removeFile","delete","File","remove","selectedFile","FileUploaderModule","Avatar","color","getInitials","names","initials","substring","toUpperCase","AvatarModule","DatePickerInput","datePickerCount","hasIcon","pattern","DatePickerInputModule","monthToStr","monthNumber","shorthand","locale","months","sukaFlatpickrMonthSelectPlugin","fp","updateCurrentMonth","monthStr","currentMonth","l10n","yearElements","elem","currentMonthContainer","closest","querySelectorAll","monthElement","textContent","onMonthChange","onOpen","onReady","monthElements","parentNode","removeChild","splice","_createElement","insertBefore","loadedPlugins","DatePicker","range","dateFormat","plugins","_flatpickrOptions","allowInput","flatpickrBaseOptions","mode","Spanish","updateClassNames","flatpickrInstance","rangePlugin","input","options","isFlatpickrLoaded","dates","selectedDates","didDateValueChange","previousValue","flatpickr","flatpickrOptions","setDateValues","ngAfterViewChecked","onFocus","destroy","onValueChange","date","parseDate","doSelect","onRangeValueChange","calendarContainer","monthContainer","weekdaysContainer","weekdayContainer","daysContainer","dayContainer","addClassIfNotExists","classname","elementList","from","element","replace","singleInput_1","rangeInput_1","setDate","singleDate_1","formatDate","rangeDate_1","toString","selectedValue","DatePickerModule","ToastRef","isVisible","overlayElement","getPosition","getBoundingClientRect","TOAST_CONFIG_DATA","toastAnimations","fadeToast","ToastContainer","toastRef","toastConfig","intervalId","window","clearTimeout","closeToast","onFadeFinished","isFadeOut","itFinished","animation","fadeOut","fadeIn","ToastService","lastToast","attachToastContainer","ToastModule","Progress","linear","editable","stepsChange","_steps","newIndex","step","index","current","steps","isComplete","isEditable","isUnclickable","getNextStep","_b","entries","_c","_d","ProgressModule","Layout","LayoutSection","secondary","oneHalf","oneThird","annotated","Banner","status","dismissable","actionLabel","dismiss","statusIcon","BannerModule","single","javascript","json","typescript","markup","markdown","php","ruby","scss","css","html","xml","clike","java","swift","CodeSnippet","SnippetType","feedbackText","language","SnippetLanguage","feedbackTimeout","snippetClass","showFeedback","codeSnippetCount","code","height","highlight","prism.highlight","prism.languages","codeHtml","sanitize","SecurityContext","HTML","toggleSnippetExpansion","copyCode","textarea","innerText","getSelection","rangeCount","getRangeAt","execCommand","removeAllRanges","addRange","onCopyButtonClicked","hostClick","CodeSnippetModule","EmptyState","heading","EmptyStateModule","rgbToHsv","g","h","rabs","gabs","babs","diff","diffc","c","percentRoundFn","num","round","rr","gg","bb","hexToRgb","hex","exec","parseInt","rgbToHex","hsvToHex","rgbColor","hue","saturation","rgbArray","hi","f","q","hsvToRgb","ColorPicker","colorChange","showInput","hsv","onColorChange","emitColorChange","onColorSelect","ColorSlider","mousedown","hueChange","onMouseUp","evt","draw","ctx","canvas","getContext","width","clearRect","gradient","createLinearGradient","addColorStop","beginPath","rect","fillStyle","closePath","selectedHeight","strokeStyle","lineWidth","stroke","onMouseDown","emitHue","onMouseMove","y","getColorAtPosition","imageData","getImageData","isFirstChange","hueFactor","ColorPalette","fillRect","whiteGrad","blackGrad","selectedPosition","arc","PI","pos","xPos","yPos","emitColor","rgbaColor","ColorInput","_overlay","_viewContainerRef","colorInputCount","onColorInputChange","openColorDialog","_overlayRef","origin","_portal","TemplatePortal","dialog","closeColorDialog","ColorPickerModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, Input, HostBinding, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'suka-loading',\n template: `\n <div\n [ngClass]=\"{\n 'loading--small': size === 'sm',\n 'loading--stop': !isActive && !overlay,\n 'loading-overlay--stop': !isActive && overlay\n }\"\n class=\"loading\">\n <svg class=\"loading__svg\" viewBox=\"-75 -75 150 150\">\n <title>{{title}}</title>\n <circle class=\"loading__stroke\" cx=\"0\" cy=\"0\" r=\"37.5\" />\n </svg>\n </div>\n `\n})\nexport class Loading {\n @Input() title = 'Loading';\n\n /**\n * set to `false` to stop the loading animation\n */\n @Input() isActive = true;\n\n /**\n * Specify the size of the button\n */\n @Input() size: 'normal' | 'sm' = 'normal';\n\n /**\n * Set to `true` to make loader with an overlay.\n */\n @Input() @HostBinding('class.loading-overlay') overlay = false;\n\n constructor(public elementRef: ElementRef) {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Loading } from './loading.component';\n\nexport { Loading } from './loading.component';\n\n@NgModule({\n declarations: [\n Loading\n ],\n exports: [\n Loading\n ],\n imports: [\n CommonModule\n ]\n})\nexport class LoadingModule { }\n","import {\n Directive,\n HostBinding,\n Input,\n OnInit,\n OnChanges,\n AfterViewInit,\n ChangeDetectorRef,\n ElementRef,\n Renderer2,\n ViewContainerRef,\n ComponentFactoryResolver,\n SimpleChanges\n} from '@angular/core';\nimport { Loading } from '../loading/loading.module';\nimport { ButtonType } from './button-types';\n\n\n/**\n * Buttons are used primarily for actions, such as “Add”, “Close”, “Cancel”, or “Save”.\n * Plain buttons, which look similar to links, are used for less important or less commonly used actions, such as “view shipping settings”.\n *\n * For navigational actions that appear within or directly following a sentence, use the link component.\n */\n@Directive({\n selector: '[sukaButton]'\n})\nexport class Button implements OnInit, AfterViewInit, OnChanges {\n /**\n * Sets the button type. Can be `primary`, `basic`, `plain`, `destructive` or `outline_white`.\n */\n @Input() sukaButton: ButtonType = 'basic';\n\n /**\n * Button size. Can be `md` (Medium), `sm` (Small) or `lg` (Large).\n */\n @Input() size?: 'md' | 'sm' | 'lg' = 'md';\n\n @HostBinding('class.btn--basic') get basic() {\n return this.getType('basic');\n }\n @HostBinding('class.btn--primary') get primary() {\n return this.getType('primary');\n }\n @HostBinding('class.btn--plain') get plain() {\n return this.getType('plain');\n }\n @HostBinding('class.btn--destructive') get destructive() {\n return this.getType('destructive');\n }\n @HostBinding('class.btn--outline_white') get outline_white() {\n return this.getType('outline_white');\n }\n\n /**\n * Set to `true` for a skeleton state button.\n */\n @HostBinding('class.skeleton') @Input() skeleton ? = false;\n /**\n * Set to `true` to display the outline version of the button.\n */\n @HostBinding('class.btn--outline') @Input() outline ? = false;\n /**\n * Set to `true` for a hover effect.\n */\n @HostBinding('class.btn--hover') @Input() hover ? = false;\n /**\n * Set to `true` for a button that uses the full horizontal width;\n */\n @HostBinding('class.btn--full_width') @Input() fullWidth ? = false;\n /**\n * Sets to `true` when the button is on a button group.\n */\n @HostBinding('class.btn--group_item') @Input() inGroup ? = false;\n /**\n * Set to `true` for a loading button.\n */\n @HostBinding('class.btn--loading') @Input() loading ? = false;\n\n @HostBinding('class.btn--sm') get buttonSmall() {\n return this.size === 'sm';\n }\n @HostBinding('class.btn--lg') get buttonLarge() {\n return this.size === 'lg';\n }\n\n /**\n * @ignore\n */\n loadingSpinner: Loading;\n\n constructor(\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private renderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n private getType(type: ButtonType): boolean {\n return this.sukaButton === type;\n }\n\n public ngOnInit() {\n if (!this.sukaButton) {\n this.sukaButton = 'basic';\n }\n\n // Create the spinner\n const factory = this.componentFactoryResolver.resolveComponentFactory(Loading);\n const componentRef = this.viewContainerRef.createComponent(factory);\n this.loadingSpinner = componentRef.instance;\n\n this.loadingSpinner.size = 'sm';\n\n this.renderer.setStyle(this.loadingSpinner.elementRef.nativeElement, 'display', 'none');\n\n this.renderer.appendChild(this.el.nativeElement, this.loadingSpinner.elementRef.nativeElement);\n\n if (this.loading) {\n this.renderer.setStyle(this.loadingSpinner.elementRef.nativeElement, 'display', 'inherit');\n this.el.nativeElement.disabled = true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.loading && this.loadingSpinner) {\n if (this.loading) {\n this.renderer.setStyle(this.loadingSpinner.elementRef.nativeElement, 'display', 'inherit');\n } else {\n this.renderer.setStyle(this.loadingSpinner.elementRef.nativeElement, 'display', 'none');\n }\n\n this.el.nativeElement.disabled = changes.loading.currentValue;\n }\n }\n\n ngAfterViewInit() {\n this.ref.detectChanges();\n }\n}\n","import {\n Component,\n HostBinding,\n Input,\n AfterContentInit,\n ContentChildren,\n QueryList,\n} from '@angular/core';\nimport { Button } from './button.directive';\n\n@Component({\n selector: 'suka-button-group',\n template: `<div class=\"btn-group__wrapper\"><ng-content></ng-content></div>`\n })\nexport class ButtonGroup implements AfterContentInit {\n @HostBinding('class.btn-group') baseClass = true;\n\n /**\n * \tJoin buttons as segmented group\n */\n @HostBinding('class.btn-group--segmented') @Input() segmented: boolean;\n\n @ContentChildren(Button) buttons: QueryList<Button>;\n\n ngAfterContentInit() {\n this.buttons.toArray().forEach((button: Button) => {\n button.inGroup = true;\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Button } from './button.directive';\nimport { ButtonGroup } from './button-group.component';\nimport { Loading, LoadingModule } from '../loading/loading.module';\n\nexport { Button } from './button.directive';\nexport { ButtonGroup } from './button-group.component';\nexport { ButtonType } from './button-types';\n\n@NgModule({\n declarations: [Button, ButtonGroup],\n exports: [Button, ButtonGroup],\n imports: [CommonModule, LoadingModule],\n entryComponents: [Loading],\n})\nexport class ButtonModule { }\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n/**\n * Defines the set of states for a checkbox component.\n */\nexport enum CheckboxState {\n Init,\n Indeterminate,\n Checked,\n Unchecked\n}\n\n/**\n * Used to emit changes performed on checkbox components.\n */\nexport class CheckboxChange {\n source: Checkbox;\n checked: boolean;\n}\n\n@Component({\n selector: 'suka-checkbox',\n template: `\n <input\n #inputCheckbox\n class=\"checkbox\"\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n [name]=\"name\"\n [required]=\"required\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"(indeterminate ? 'mixed' : checked)\"\n (change)=\"onChange($event)\"\n (click)=\"onClick($event)\">\n <label\n [for]=\"id\"\n class=\"checkbox-label\"\n [ngClass]=\"{\n 'skeleton' : skeleton\n }\">\n <span [ngClass]=\"{'visually-hidden' : hideLabel}\">\n <ng-content></ng-content>\n </span>\n </label>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: Checkbox,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n// tslint:disable-next-line: component-class-suffix\nexport class Checkbox implements ControlValueAccessor, AfterViewInit {\n /**\n * Variable used for creating unique ids for checkbox components.\n */\n static checkboxCount = 0;\n\n /**\n * Size of the checkbox.\n */\n @Input() size: 'sm' | 'md' = 'md';\n\n /**\n * Set to `true` for checkbox to be rendered with nested styles.\n */\n @Input() nested: boolean;\n\n /**\n * Set to `true` for checkbox to be rendered without any classes on the host element.\n */\n @Input() inline = false;\n\n /**\n * Set to `true` for a disabled checkbox.\n */\n @Input() disabled = false;\n\n /**\n * Set to `true` for a loading checkbox.\n */\n @Input() skeleton = false;\n\n /**\n * Set to `true` to hide the checkbox labels.\n */\n @Input() hideLabel = false;\n\n /**\n * Sets the name attribute on the `input` element.\n */\n @Input() name: string;\n\n /**\n * The unique id for the checkbox component.\n */\n @Input() id = `checkbox-${Checkbox.checkboxCount}`;\n\n /**\n * Reflects the required attribute of the `input` element.\n */\n @Input() required: boolean;\n\n /**\n * Sets the value attribute on the `input` element.\n */\n @Input() value: string;\n\n /**\n * Used to set the `aria-label` attribute on the input element.\n */\n // tslint:disable-next-line:no-input-rename\n @Input('aria-label') ariaLabel = '';\n\n /**\n * Used to set the `aria-labelledby` attribute on the input element.\n */\n // tslint:disable-next-line:no-input-rename\n @Input('aria-labelledby') ariaLabelledby: string;\n\n /**\n * Reflects whether the checkbox state is indeterminate.\n */\n get indeterminate() {\n return this._indeterminate;\n }\n\n /**\n * Set the checkbox's indeterminate state to match the parameter and transition the view to reflect the change.\n */\n @Input() set indeterminate(indeterminate: boolean) {\n const changed = this._indeterminate !== indeterminate;\n this._indeterminate = indeterminate;\n\n if (changed) {\n this.transitionCheckboxState(CheckboxState.Indeterminate);\n } else {\n this.transitionCheckboxState(this.checked ? CheckboxState.Checked : CheckboxState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n\n /**\n * Returns value `true` if state is selected for the checkbox.\n */\n get checked() {\n return this._checked;\n }\n\n /**\n * Updating the state of a checkbox to match the state of the parameter passed in.\n */\n @Input() set checked(checked: boolean) {\n if (checked !== this.checked) {\n if (this._indeterminate) {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n this._checked = checked;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n @HostBinding('class.checkbox-wrapper') get checkboxWrapperClass() {\n return !this.inline;\n }\n @HostBinding('class.form-item') get formItemClass() {\n return !this.inline;\n }\n\n /**\n * Emits event notifying other classes when a change in state occurs on a checkbox after a\n * click.\n */\n // tslint:disable-next-line: no-output-native\n @Output() change = new EventEmitter<CheckboxChange>();\n /**\n * Emits event notifying other classes when a change in state occurs specifically\n * on an indeterminate checkbox.\n */\n @Output() indeterminateChange = new EventEmitter<boolean>();\n\n /**\n * Set to `true` if the input checkbox is selected (or checked).\n */\n // tslint:disable-next-line: variable-name\n _checked = false;\n /**\n * Set to `true` if the input checkbox is in state indeterminate.\n */\n // tslint:disable-next-line: variable-name\n _indeterminate = false;\n\n currentCheckboxState: CheckboxState = CheckboxState.Init;\n\n /**\n * Maintains a reference to the view DOM element of the `Checkbox`.\n */\n @ViewChild('inputCheckbox', { static: true }) inputCheckbox: ElementRef;\n\n /**\n * Creates an instance of `Checkbox`.\n */\n constructor(protected changeDetectorRef: ChangeDetectorRef) {\n Checkbox.checkboxCount++;\n }\n\n /**\n * Toggle the selected state of the checkbox.\n */\n public toggle() {\n this.checked = !this.checked;\n }\n\n // this is the initial value set to the component\n public writeValue(value: any) {\n this.checked = !!value;\n }\n\n /**\n * Sets a method in order to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the checkbox is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Executes on the event of a change within `Checkbox` to block propagation.\n */\n onChange(event) {\n event.stopPropagation();\n }\n\n /**\n * Handles click events on the `Checkbox` and emits changes to other classes.\n */\n onClick(event) {\n if (!this.disabled) {\n this.toggle();\n this.transitionCheckboxState(this._checked ? CheckboxState.Checked : CheckboxState.Unchecked);\n this.emitChangeEvent();\n }\n }\n\n\n /**\n * Called when checkbox is blurred. Needed to properly implement `ControlValueAccessor`.\n */\n onTouched: () => any = () => { };\n\n /**\n * Handles changes between checkbox states.\n */\n transitionCheckboxState(newState: CheckboxState) {\n const oldState = this.currentCheckboxState;\n\n // Indeterminate has to be set always if it's transitioned to\n // checked has to be set before indeterminate or it overrides\n // indeterminate's dash\n if (newState === CheckboxState.Indeterminate) {\n this.checked = false;\n this.inputCheckbox.nativeElement.indeterminate = true;\n }\n\n if (oldState === newState) {\n return;\n }\n\n this.currentCheckboxState = newState;\n }\n\n /**\n * Creates instance of `CheckboxChange` used to propagate the change event.\n */\n emitChangeEvent() {\n const event = new CheckboxChange();\n event.source = this;\n event.checked = this.checked;\n\n this.propagateChange(this.checked);\n this.change.emit(event);\n }\n\n /**\n * Updates the checkbox if it is in the indeterminate state.\n */\n ngAfterViewInit() {\n if (this.indeterminate) {\n this.inputCheckbox.nativeElement.indeterminate = true;\n this.checked = false;\n }\n }\n\n /**\n * Method set in `registerOnChange` to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Checkbox } from './checkbox.component';\n\n// exports\nexport { Checkbox } from './checkbox.component';\n\n@NgModule({\n declarations: [\n Checkbox\n ],\n exports: [\n Checkbox\n ],\n imports: [\n CommonModule,\n FormsModule\n ]\n})\nexport class CheckboxModule { }\n","// tslint:disable: max-line-length\n\nimport { IconType } from './icon-types';\n\ninterface IconDef {\n name: IconType;\n template: string;\n}\n\nexport const iconDefs: IconDef[] = [\n {\n name: 'activity',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>activity</title>\n <path d=\"M14.667 7.333h-2.667c-0.293 0-0.541 0.189-0.633 0.456l-1.367 4.103-3.367-10.103c-0.117-0.349-0.494-0.538-0.843-0.422-0.207 0.069-0.357 0.229-0.422 0.422l-1.848 5.544h-2.186c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.667c0.282-0.002 0.54-0.178 0.633-0.456l1.367-4.103 3.367 10.103c0.065 0.193 0.215 0.353 0.421 0.421 0.349 0.117 0.727-0.073 0.843-0.421l1.849-5.544h2.186c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'airplay',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>airplay</title>\n <path d=\"M3.333 10.667h-0.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v6.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-0.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h0.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-6.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-10.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v6.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h0.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM8.512 9.573c-0.023-0.029-0.053-0.058-0.085-0.085-0.283-0.236-0.703-0.197-0.939 0.085l-3.333 4c-0.096 0.115-0.155 0.264-0.155 0.427 0 0.368 0.299 0.667 0.667 0.667h6.667c0.15 0.001 0.302-0.050 0.427-0.155 0.283-0.236 0.321-0.656 0.085-0.939zM8 11.041l1.91 2.292h-3.82z\"></path>\n </svg>\n `\n },\n {\n name: 'alert-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>alert-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM7.333 5.333v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM8.667 10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'alert-octagon',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>alert-octagon</title>\n <path d=\"M5.24 0.667c-0.171 0-0.341 0.065-0.471 0.195l-3.907 3.907c-0.121 0.121-0.195 0.287-0.195 0.471v5.52c0 0.171 0.065 0.341 0.195 0.471l3.907 3.907c0.121 0.121 0.287 0.195 0.471 0.195h5.52c0.171 0 0.341-0.065 0.471-0.195l3.907-3.907c0.121-0.121 0.195-0.287 0.195-0.471v-5.52c0-0.171-0.065-0.341-0.195-0.471l-3.907-3.907c-0.121-0.121-0.287-0.195-0.471-0.195zM5.516 2h4.968l3.516 3.516v4.968l-3.516 3.516h-4.968l-3.516-3.516v-4.968zM7.333 5.333v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM8.667 10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'alert-triangle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>alert-triangle</title>\n <path d=\"M7.432 2.916c0.049-0.082 0.123-0.161 0.223-0.221 0.157-0.095 0.337-0.119 0.504-0.077s0.316 0.144 0.409 0.299l5.644 9.422c0.051 0.087 0.085 0.199 0.087 0.321 0.002 0.184-0.070 0.351-0.19 0.473s-0.285 0.199-0.462 0.201h-11.291c-0.101-0.001-0.214-0.027-0.321-0.089-0.159-0.092-0.266-0.239-0.311-0.405s-0.025-0.346 0.061-0.497zM6.288 2.231l-5.647 9.427c-0.281 0.487-0.337 1.033-0.205 1.527s0.453 0.939 0.932 1.215c0.309 0.179 0.651 0.267 0.983 0.268h11.295c0.559-0.006 1.058-0.236 1.415-0.601s0.576-0.869 0.57-1.421c-0.004-0.357-0.102-0.696-0.271-0.983l-5.649-9.431c-0.288-0.475-0.74-0.787-1.236-0.909s-1.041-0.054-1.513 0.233c-0.286 0.173-0.517 0.41-0.675 0.676zM7.333 6v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM8.667 11.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'align-center',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>align-center</title>\n <path d=\"M12 6h-8c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h8c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 3.333h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 8.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM12 11.333h-8c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h8c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'align-justify',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>align-justify</title>\n <path d=\"M14 6h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 3.333h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 8.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 11.333h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'align-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>align-left</title>\n <path d=\"M11.333 6h-9.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h9.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 3.333h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 8.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM11.333 11.333h-9.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h9.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'align-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>align-right</title>\n <path d=\"M14 6h-9.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h9.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 3.333h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 8.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14 11.333h-9.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h9.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'anchor',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>anchor</title>\n <path d=\"M9.333 3.333c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM3.333 7.333h-2c-0.368 0-0.667 0.299-0.667 0.667 0 2.025 0.821 3.859 2.148 5.185s3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185c0-0.368-0.299-0.667-0.667-0.667h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h1.297c-0.153 1.391-0.782 2.637-1.721 3.576s-2.185 1.567-3.576 1.721v-8.047c0.469-0.121 0.888-0.366 1.219-0.697 0.482-0.482 0.781-1.15 0.781-1.886s-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885c0.331 0.331 0.75 0.577 1.219 0.697v8.047c-1.391-0.153-2.637-0.782-3.576-1.721s-1.567-2.185-1.721-3.576h1.297c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'aperture',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>aperture</title>\n <path d=\"M7.615 4.667l1.482-2.567c1.217 0.225 2.305 0.817 3.146 1.657 0.277 0.277 0.528 0.582 0.747 0.909h-3.463zM4.92 6.667l-1.481-2.565c0.102-0.119 0.208-0.234 0.319-0.345 1-1 2.35-1.648 3.85-1.745l-1.728 2.993zM5.305 10h-2.964c-0.221-0.625-0.341-1.299-0.341-2 0-0.953 0.222-1.854 0.617-2.655l1.733 3.003zM11.649 7.652l-0.954-1.652h2.964c0.221 0.625 0.341 1.299 0.341 2 0 0.953-0.222 1.854-0.617 2.655l-1.717-2.975zM8.392 13.987l2.688-4.654 1.481 2.565c-0.102 0.119-0.208 0.234-0.319 0.344-1 1-2.35 1.648-3.85 1.745zM7.133 15.283c0.031 0.005 0.061 0.009 0.093 0.010 0.254 0.027 0.513 0.041 0.774 0.041 2.025 0 3.859-0.821 5.185-2.148 0.244-0.244 0.471-0.505 0.678-0.781 0.028-0.031 0.053-0.065 0.073-0.099 0.879-1.209 1.397-2.697 1.397-4.305 0-1.026-0.211-2.003-0.592-2.891-0.011-0.029-0.023-0.057-0.037-0.084-0.369-0.829-0.887-1.578-1.519-2.211-1.134-1.134-2.64-1.899-4.319-2.097-0.031-0.005-0.061-0.009-0.093-0.010-0.254-0.027-0.513-0.041-0.774-0.041-2.025 0-3.859 0.821-5.185 2.148-0.244 0.243-0.471 0.505-0.678 0.781-0.028 0.031-0.053 0.065-0.074 0.099-0.878 1.209-1.396 2.697-1.396 4.305 0 1.026 0.211 2.003 0.592 2.891 0.011 0.029 0.023 0.057 0.037 0.084 0.369 0.829 0.887 1.578 1.519 2.211 1.134 1.134 2.64 1.899 4.319 2.097zM8.385 11.333l-1.482 2.567c-1.217-0.225-2.305-0.817-3.146-1.657-0.277-0.277-0.528-0.582-0.747-0.909h3.463zM10.31 8l-1.155 2h-2.311l-1.155-2 1.155-2h2.311z\"></path>\n </svg>\n `\n },\n {\n name: 'archive',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>archive</title>\n <path d=\"M2.667 6h10.667v7.333h-10.667zM0.667 1.333c-0.368 0-0.667 0.299-0.667 0.667v3.333c0 0.368 0.299 0.667 0.667 0.667h0.667v8c0 0.368 0.299 0.667 0.667 0.667h12c0.368 0 0.667-0.299 0.667-0.667v-8h0.667c0.368 0 0.667-0.299 0.667-0.667v-3.333c0-0.368-0.299-0.667-0.667-0.667zM1.333 2.667h13.333v2h-13.333zM6.667 8.667h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-down-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-down-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM7.333 5.333v3.724l-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.667 2.667c0.064 0.064 0.137 0.112 0.216 0.145s0.165 0.051 0.255 0.051 0.177-0.018 0.255-0.051c0.079-0.033 0.152-0.081 0.216-0.145l2.667-2.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529v-3.724c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-down-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-down-left</title>\n <path d=\"M11.333 10.667h-5.057l5.529-5.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-5.529 5.529v-5.057c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v6.667c0 0.091 0.018 0.177 0.051 0.255s0.081 0.152 0.144 0.215c0.001 0.001 0.001 0.001 0.001 0.001 0.061 0.061 0.135 0.111 0.215 0.144 0.079 0.033 0.165 0.051 0.255 0.051h6.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-down-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-down-right</title>\n <path d=\"M10.667 4.667v5.057l-5.529-5.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l5.529 5.529h-5.057c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h6.667c0.091 0 0.177-0.018 0.255-0.051s0.152-0.081 0.216-0.145c0.061-0.061 0.111-0.135 0.145-0.216 0.033-0.079 0.051-0.165 0.051-0.255v-6.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-down</title>\n <path d=\"M12.195 7.529l-3.529 3.529v-7.724c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v7.724l-3.529-3.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l4.667 4.667c0.064 0.064 0.137 0.112 0.216 0.145s0.165 0.051 0.255 0.051c0.087 0 0.174-0.017 0.255-0.051 0.079-0.033 0.152-0.081 0.216-0.145l4.667-4.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-left-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-left-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM10.667 7.333h-3.724l1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.667 2.667c-0.064 0.064-0.112 0.137-0.145 0.216s-0.051 0.165-0.051 0.255c0 0.087 0.017 0.174 0.051 0.255 0.033 0.079 0.081 0.152 0.145 0.216l2.667 2.667c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529h3.724c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-left</title>\n <path d=\"M8.471 12.195l-3.529-3.529h7.724c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-7.724l3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-4.667 4.667c-0.064 0.064-0.112 0.137-0.145 0.216-0.034 0.081-0.051 0.169-0.051 0.255 0 0.171 0.065 0.341 0.195 0.471l4.667 4.667c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-right-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-right-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM5.333 8.667h3.724l-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.667-2.667c0.061-0.061 0.111-0.135 0.145-0.216 0.067-0.163 0.067-0.347 0-0.511-0.033-0.079-0.081-0.152-0.145-0.216l-2.667-2.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l1.529 1.529h-3.724c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-right</title>\n <path d=\"M7.529 3.805l3.529 3.529h-7.724c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h7.724l-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l4.667-4.667c0.061-0.061 0.111-0.135 0.145-0.216 0.067-0.163 0.067-0.347 0-0.511-0.033-0.079-0.081-0.152-0.145-0.216l-4.667-4.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-up-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-up-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM8.667 10.667v-3.724l1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2.667-2.667c-0.064-0.064-0.137-0.112-0.216-0.145s-0.165-0.051-0.255-0.051c-0.087 0-0.174 0.017-0.255 0.051-0.079 0.033-0.152 0.081-0.216 0.145l-2.667 2.667c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529v3.724c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-up-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-up-left</title>\n <path d=\"M5.333 11.333v-5.057l5.529 5.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-5.529-5.529h5.057c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-6.667c-0.091 0-0.177 0.018-0.255 0.051s-0.151 0.081-0.215 0.144c-0.001 0.001-0.001 0.001-0.001 0.001-0.061 0.061-0.111 0.134-0.144 0.215-0.033 0.079-0.051 0.165-0.051 0.255v6.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-up-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-up-right</title>\n <path d=\"M4.667 5.333h5.057l-5.529 5.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l5.529-5.529v5.057c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-6.667c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-6.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'arrow-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>arrow-up</title>\n <path d=\"M3.805 8.471l3.529-3.529v7.724c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-7.724l3.529 3.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-4.667-4.667c-0.064-0.064-0.137-0.112-0.216-0.145-0.081-0.034-0.169-0.051-0.255-0.051-0.171 0-0.341 0.065-0.471 0.195l-4.667 4.667c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'at-sign',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>at-sign</title>\n <path d=\"M10 8c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM10.493 10.212c0.087 0.121 0.183 0.235 0.287 0.34 0.482 0.482 1.15 0.781 1.886 0.781s1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885v-0.667c0-2.025-0.822-3.859-2.148-5.185s-3.161-2.148-5.186-2.147-3.859 0.821-5.185 2.148-2.147 3.161-2.147 5.185 0.822 3.859 2.148 5.185 3.161 2.148 5.185 2.147c1.683 0 3.237-0.568 4.46-1.513 0.291-0.225 0.345-0.643 0.121-0.935s-0.643-0.345-0.935-0.121c-0.997 0.769-2.265 1.235-3.645 1.235-1.657 0-3.156-0.671-4.243-1.757s-1.757-2.584-1.757-4.241 0.671-3.156 1.757-4.243 2.585-1.757 4.242-1.757 3.156 0.671 4.243 1.757 1.758 2.585 1.758 4.242v0.667c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943v-3.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667c-0.557-0.418-1.25-0.667-2-0.667-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976c0.047-0.047 0.093-0.095 0.137-0.145z\"></path>\n </svg>\n `\n },\n {\n name: 'award',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>award</title>\n <path d=\"M9.991 10.283l0.5 3.768-2.147-1.289c-0.207-0.123-0.469-0.131-0.686 0l-2.147 1.289 0.501-3.767c0.614 0.247 1.286 0.383 1.989 0.383s1.375-0.137 1.991-0.384zM10.221 8.661c-0.039 0.020-0.075 0.043-0.109 0.070-0.613 0.382-1.337 0.603-2.113 0.603-1.105 0-2.104-0.447-2.829-1.171s-1.171-1.724-1.171-2.829 0.447-2.104 1.171-2.829 1.724-1.171 2.829-1.171 2.104 0.447 2.829 1.171 1.171 1.724 1.171 2.829-0.447 2.104-1.171 2.829c-0.185 0.185-0.389 0.353-0.607 0.499zM4.76 9.57l-0.754 5.675c-0.049 0.365 0.208 0.7 0.573 0.749 0.156 0.021 0.307-0.015 0.431-0.089l2.99-1.794 2.991 1.794c0.316 0.189 0.725 0.087 0.915-0.229 0.081-0.135 0.109-0.287 0.089-0.431l-0.753-5.677c0.187-0.143 0.364-0.299 0.53-0.465 0.964-0.964 1.562-2.298 1.562-3.771s-0.598-2.807-1.562-3.771-2.299-1.562-3.771-1.562-2.807 0.598-3.771 1.562-1.562 2.299-1.562 3.771 0.598 2.807 1.562 3.771c0.167 0.167 0.344 0.322 0.531 0.465z\"></path>\n </svg>\n `\n },\n {\n name: 'bar-chart-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bar-chart-2</title>\n <path d=\"M12.667 13.333v-6.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v6.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM8.667 13.333v-10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v10.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM4.667 13.333v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'bar-chart',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bar-chart</title>\n <path d=\"M8.667 13.333v-6.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v6.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM12.667 13.333v-10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v10.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM4.667 13.333v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'battery-charging',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>battery-charging</title>\n <path d=\"M3.333 11.333h-1.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-5.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.127c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.127c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v5.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM10 4.667h1.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v5.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-2.127c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.127c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-5.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM16 8.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM6.779 3.63l-2.667 4c-0.204 0.307-0.121 0.72 0.185 0.925 0.115 0.077 0.245 0.113 0.37 0.112h2.754l-1.976 2.963c-0.204 0.307-0.121 0.72 0.185 0.925s0.72 0.121 0.925-0.185l2.667-4c0.071-0.104 0.113-0.232 0.113-0.37 0-0.368-0.299-0.667-0.667-0.667h-2.754l1.976-2.963c0.204-0.307 0.121-0.72-0.185-0.925s-0.72-0.121-0.925 0.185z\"></path>\n </svg>\n `\n },\n {\n name: 'battery',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>battery</title>\n <path d=\"M2 3.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v5.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-5.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM2 4.667h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v5.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-5.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM16 8.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'bell-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bell-off</title>\n <path d=\"M8.577 13.665c-0.093 0.159-0.239 0.266-0.405 0.31s-0.347 0.025-0.506-0.067c-0.108-0.063-0.189-0.148-0.239-0.238-0.183-0.32-0.589-0.431-0.909-0.249s-0.431 0.589-0.249 0.909c0.167 0.293 0.415 0.549 0.729 0.731 0.477 0.277 1.023 0.334 1.517 0.203s0.939-0.452 1.216-0.929c0.185-0.319 0.076-0.727-0.242-0.911s-0.727-0.076-0.911 0.242zM12.667 5.331c0.001-1.287-0.52-2.455-1.362-3.299-0.843-0.845-2.009-1.37-3.298-1.372-0.965-0.001-1.866 0.291-2.6 0.787-0.305 0.206-0.385 0.621-0.179 0.926s0.621 0.385 0.926 0.179c0.517-0.349 1.158-0.559 1.852-0.559 0.921 0.001 1.753 0.375 2.355 0.98 0.601 0.603 0.972 1.433 0.973 2.351-0.028 1.105 0.115 2.317 0.443 3.518 0.097 0.355 0.463 0.565 0.819 0.467s0.565-0.463 0.467-0.819c-0.295-1.083-0.421-2.166-0.396-3.138 0-0.003 0-0.007 0-0.011s0-0.005 0-0.008c0-0.001 0-0.002 0-0.003zM4.664 5.607l5.060 5.059h-6.291c0.581-0.952 1.189-2.541 1.231-5.059zM0.195 1.138l3.237 3.237c-0.071 0.329-0.103 0.656-0.099 0.967 0 4.076-1.595 5.356-1.709 5.441-0.302 0.205-0.382 0.616-0.179 0.921 0.128 0.191 0.337 0.295 0.555 0.297h9.057l3.805 3.805c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-14.667-14.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'bell',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bell</title>\n <path d=\"M11.333 5.333c0 2.674 0.631 4.347 1.234 5.333h-9.135c0.603-0.987 1.234-2.659 1.234-5.333 0-0.921 0.373-1.753 0.976-2.357s1.437-0.976 2.357-0.976 1.753 0.373 2.357 0.976 0.976 1.437 0.976 2.357zM12.667 5.333c0-1.289-0.523-2.456-1.367-3.3s-2.011-1.367-3.3-1.367-2.456 0.523-3.3 1.367-1.367 2.011-1.367 3.3c0 4.085-1.595 5.365-1.709 5.449-0.302 0.205-0.382 0.616-0.179 0.921 0.128 0.191 0.337 0.295 0.555 0.297h12c0.368 0 0.667-0.299 0.667-0.667 0-0.226-0.112-0.425-0.286-0.547-0.117-0.087-1.714-1.367-1.714-5.453zM8.577 13.665c-0.093 0.159-0.239 0.266-0.405 0.31s-0.347 0.025-0.506-0.067c-0.108-0.063-0.189-0.148-0.239-0.238-0.183-0.32-0.589-0.431-0.909-0.249s-0.431 0.589-0.249 0.909c0.167 0.293 0.415 0.549 0.729 0.731 0.477 0.277 1.023 0.334 1.517 0.203s0.939-0.452 1.216-0.929c0.185-0.319 0.076-0.727-0.242-0.911s-0.727-0.076-0.911 0.242z\"></path>\n </svg>\n `\n },\n {\n name: 'bluetooth',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bluetooth</title>\n <path d=\"M8.667 6.391v-4.115l2.057 2.057zM8.667 9.609l2.057 2.057-2.057 2.057zM3.862 4.805l3.195 3.195-3.195 3.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.529-2.529v5.724c0 0.171 0.065 0.341 0.195 0.471 0.261 0.261 0.683 0.261 0.943 0l3.667-3.667c0.261-0.261 0.261-0.683 0-0.943l-3.195-3.195 3.195-3.195c0.261-0.261 0.261-0.683 0-0.943l-3.667-3.667c-0.121-0.121-0.287-0.195-0.471-0.195-0.368 0-0.667 0.299-0.667 0.667v5.724l-2.529-2.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'bold',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bold</title>\n <path d=\"M4.667 7.333v-4h4.667c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414-0.223 1.051-0.586 1.414-0.861 0.586-1.414 0.586zM3.333 8v5.333c0 0.368 0.299 0.667 0.667 0.667h6c0.92 0 1.755-0.374 2.357-0.976s0.976-1.437 0.976-2.357-0.374-1.755-0.976-2.357c-0.217-0.217-0.463-0.404-0.733-0.555 0.023-0.021 0.045-0.043 0.067-0.065 0.602-0.602 0.976-1.437 0.976-2.357s-0.374-1.755-0.976-2.357-1.437-0.976-2.357-0.976h-5.333c-0.368 0-0.667 0.299-0.667 0.667zM4.667 8.667h5.333c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414-0.223 1.051-0.586 1.414-0.861 0.586-1.414 0.586h-5.333z\"></path>\n </svg>\n `\n },\n {\n name: 'book-open',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>book-open</title>\n <path d=\"M14 2.667v8.667h-4c-0.485 0-0.941 0.13-1.333 0.357v-7.023c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586zM7.333 11.69c-0.392-0.227-0.848-0.357-1.333-0.357h-4v-8.667h3.333c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414zM14.667 1.333h-4c-0.92 0-1.755 0.374-2.357 0.976-0.111 0.111-0.215 0.231-0.309 0.357-0.095-0.127-0.198-0.246-0.309-0.357-0.603-0.602-1.437-0.976-2.357-0.976h-4c-0.368 0-0.667 0.299-0.667 0.667v10c0 0.368 0.299 0.667 0.667 0.667h4.667c0.369 0 0.701 0.149 0.943 0.391s0.391 0.574 0.391 0.943c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667c0-0.369 0.149-0.701 0.391-0.943s0.574-0.391 0.943-0.391h4.667c0.368 0 0.667-0.299 0.667-0.667v-10c0-0.368-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'book',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>book</title>\n <path d=\"M4.333 0.667c-0.644 0-1.229 0.262-1.65 0.683s-0.683 1.006-0.683 1.65v10c0 0.644 0.262 1.229 0.683 1.65s1.006 0.683 1.65 0.683h9c0.368 0 0.667-0.299 0.667-0.667v-13.333c0-0.368-0.299-0.667-0.667-0.667zM12.667 12v2h-8.333c-0.276 0-0.525-0.111-0.707-0.293s-0.293-0.431-0.293-0.707 0.111-0.525 0.293-0.707 0.431-0.293 0.707-0.293zM4.333 2h8.333v8.667h-8.333c-0.358 0-0.697 0.081-1 0.225v-7.891c0-0.276 0.111-0.525 0.293-0.707s0.431-0.293 0.707-0.293z\"></path>\n </svg>\n `\n },\n {\n name: 'bookmark',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>bookmark</title>\n <path d=\"M12.279 14.543c0.107 0.077 0.242 0.124 0.387 0.124 0.368 0 0.667-0.299 0.667-0.667v-10.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-6.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c-0.001 0.133 0.040 0.269 0.124 0.387 0.214 0.299 0.631 0.369 0.93 0.155l4.279-3.056zM12 12.705l-3.613-2.581c-0.237-0.169-0.546-0.161-0.775 0l-3.613 2.581v-9.371c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h6.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'box',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>box</title>\n <path d=\"M12.641 4.552l-4.641 2.685-4.641-2.685 4.304-2.459c0.075-0.043 0.155-0.070 0.237-0.083 0.145-0.023 0.297 0.002 0.436 0.083zM7.684 15.307c0.094 0.051 0.202 0.079 0.316 0.079 0.115 0 0.224-0.029 0.319-0.081 0.237-0.039 0.467-0.12 0.678-0.24l4.667-2.667c0.412-0.238 0.707-0.599 0.866-1.009 0.089-0.228 0.135-0.471 0.137-0.723v-5.333c0-0.319-0.075-0.621-0.209-0.889-0.015-0.047-0.035-0.093-0.061-0.138-0.031-0.053-0.067-0.099-0.108-0.14-0.021-0.029-0.043-0.057-0.065-0.085-0.153-0.191-0.341-0.352-0.554-0.477l-4.673-2.67c-0.407-0.235-0.867-0.31-1.302-0.243-0.243 0.038-0.477 0.119-0.692 0.242l-4.667 2.667c-0.255 0.147-0.466 0.342-0.627 0.567-0.040 0.040-0.076 0.087-0.106 0.138-0.026 0.045-0.047 0.092-0.061 0.14-0.027 0.054-0.051 0.109-0.072 0.164-0.088 0.229-0.134 0.472-0.136 0.719v5.338c0.001 0.473 0.165 0.909 0.443 1.252 0.153 0.191 0.341 0.352 0.554 0.477l4.673 2.67c0.216 0.125 0.447 0.205 0.681 0.241zM7.333 8.391v5.327l-4.33-2.474c-0.074-0.043-0.138-0.099-0.19-0.163-0.093-0.115-0.147-0.258-0.147-0.415v-4.975zM8.667 13.719v-5.327l4.667-2.699v4.975c-0.001 0.081-0.017 0.164-0.047 0.241-0.053 0.137-0.15 0.256-0.284 0.333z\"></path>\n </svg>\n `\n },\n {\n name: 'briefcase',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>briefcase</title>\n <path d=\"M6 4v-0.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v0.667zM6 13.333v-8h4v8zM4.667 5.333v8h-2c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM11.333 4v-0.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v0.667h-2c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v6.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-6.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM11.333 13.333v-8h2c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v6.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'calendar',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>calendar</title>\n <path d=\"M4.667 1.333v0.667h-1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-1.333v-0.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v0.667h-4v-0.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM13.333 6h-10.667v-2c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h1.333v0.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-0.667h4v0.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-0.667h1.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471zM2.667 7.333h10.667v6c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'camera-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>camera-off</title>\n <path d=\"M6 2.667h3.643l1.135 1.703c0.128 0.191 0.337 0.295 0.555 0.297h2.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v6.227c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-6.227c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.31l-1.135-1.703c-0.121-0.18-0.324-0.297-0.555-0.297h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM5.508 6.451c-0.097 0.109-0.189 0.225-0.273 0.348-0.52 0.759-0.682 1.659-0.525 2.497s0.635 1.617 1.394 2.137 1.659 0.682 2.497 0.525c0.591-0.111 1.153-0.381 1.616-0.798l2.174 2.174h-10.391c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-7.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h1.724zM6.942 5.999l-5.804-5.803c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.195 2.195h-0.391c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v7.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h11.724l1.138 1.138c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-8.845-8.845zM9.271 10.214c-0.267 0.224-0.583 0.37-0.917 0.433-0.504 0.095-1.042-0.003-1.498-0.315s-0.742-0.778-0.837-1.282 0.003-1.042 0.315-1.498c0.037-0.055 0.077-0.107 0.117-0.155z\"></path>\n </svg>\n `\n },\n {\n name: 'camera',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>camera</title>\n <path d=\"M16 12.667v-7.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.31l-1.135-1.703c-0.121-0.18-0.324-0.297-0.555-0.297h-4c-0.217 0.001-0.427 0.105-0.555 0.297l-1.135 1.703h-2.31c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v7.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h12c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414zM14.667 12.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-12c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-7.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.667c0.231 0 0.433-0.117 0.555-0.297l1.135-1.703h3.287l1.135 1.703c0.128 0.191 0.337 0.295 0.555 0.297h2.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471zM11.333 8.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM10 8.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414z\"></path>\n </svg>\n `\n },\n {\n name: 'cast',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cast</title>\n <path d=\"M1.2 11.387c0.625 0.127 1.153 0.463 1.528 0.924 0.27 0.331 0.462 0.729 0.553 1.16 0.076 0.36 0.429 0.591 0.79 0.515s0.591-0.429 0.515-0.79c-0.135-0.64-0.42-1.231-0.823-1.727-0.563-0.692-1.359-1.197-2.295-1.389-0.361-0.073-0.713 0.159-0.787 0.52s0.159 0.713 0.52 0.787zM1.259 8.696c1.334 0.149 2.496 0.775 3.337 1.697 0.746 0.817 1.239 1.866 1.374 3.017 0.043 0.366 0.374 0.627 0.739 0.585s0.627-0.374 0.585-0.739c-0.167-1.433-0.783-2.741-1.713-3.761-1.052-1.153-2.509-1.939-4.175-2.124-0.366-0.041-0.695 0.223-0.736 0.589s0.223 0.695 0.589 0.736zM2 5.333v-1.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v8c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h4c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-10.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM2 13.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'check-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>check-circle</title>\n <path d=\"M14 7.387v0.613c-0.001 1.657-0.673 3.155-1.76 4.241s-2.587 1.756-4.243 1.755-3.156-0.673-4.241-1.76-1.756-2.586-1.755-4.243 0.673-3.155 1.76-4.241 2.587-1.756 4.243-1.755c0.887 0.001 1.724 0.193 2.433 0.517 0.335 0.153 0.731 0.005 0.883-0.329s0.005-0.731-0.329-0.883c-0.885-0.404-1.911-0.637-2.986-0.637-2.025-0.001-3.859 0.819-5.187 2.145s-2.149 3.16-2.151 5.185 0.819 3.859 2.145 5.187 3.159 2.15 5.184 2.151 3.859-0.819 5.187-2.145 2.15-3.159 2.151-5.185v-0.613c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM14.195 2.195l-6.195 6.201-1.529-1.528c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2 2c0.261 0.261 0.683 0.26 0.943 0l6.667-6.673c0.26-0.261 0.26-0.683-0.001-0.943s-0.683-0.26-0.943 0.001z\"></path>\n </svg>\n `\n },\n {\n name: 'check-square',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>check-square</title>\n <path d=\"M5.529 7.805l2 2c0.261 0.261 0.683 0.261 0.943 0l6.667-6.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-6.195 6.195-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM13.333 8v4.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h7.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-7.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'check',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>check</title>\n <path d=\"M12.862 3.529l-6.862 6.862-2.862-2.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0l7.333-7.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'chevron-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevron-down</title>\n <path d=\"M3.529 6.471l4 4c0.261 0.261 0.683 0.261 0.943 0l4-4c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.529 3.529-3.529-3.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'chevron-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevron-left</title>\n <path d=\"M10.471 11.529l-3.529-3.529 3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-4 4c-0.261 0.261-0.261 0.683 0 0.943l4 4c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'chevron-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevron-right</title>\n <path d=\"M6.471 12.471l4-4c0.261-0.261 0.261-0.683 0-0.943l-4-4c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.529 3.529-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'chevron-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevron-up</title>\n <path d=\"M12.471 9.529l-4-4c-0.261-0.261-0.683-0.261-0.943 0l-4 4c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.529-3.529 3.529 3.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'chevrons-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevrons-down</title>\n <path d=\"M4.195 9.138l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.862 2.862-2.862-2.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM4.195 4.471l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.862 2.862-2.862-2.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'chevrons-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevrons-left</title>\n <path d=\"M7.805 10.862l-2.862-2.862 2.862-2.862c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943zM12.471 10.862l-2.862-2.862 2.862-2.862c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'chevrons-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevrons-right</title>\n <path d=\"M9.138 11.805l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.862 2.862-2.862 2.862c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM4.471 11.805l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.862 2.862-2.862 2.862c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'chevrons-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chevrons-up</title>\n <path d=\"M11.805 6.862l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.862-2.862 2.862 2.862c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943zM11.805 11.529l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.862-2.862 2.862 2.862c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'chrome',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>chrome</title>\n <path d=\"M4.935 6.689l-1.496-2.587c0.101-0.119 0.208-0.233 0.319-0.344 1.087-1.087 2.585-1.757 4.243-1.757s3.156 0.671 4.243 1.757c0.277 0.277 0.528 0.582 0.747 0.909h-4.99c-0.92 0-1.755 0.374-2.357 0.976-0.298 0.298-0.54 0.652-0.709 1.046zM7.133 15.283c0.031 0.005 0.061 0.009 0.093 0.010 0.254 0.027 0.513 0.041 0.774 0.041 2.025 0 3.859-0.821 5.185-2.148s2.148-3.161 2.148-5.185c0-1.026-0.211-2.003-0.592-2.891-0.011-0.029-0.023-0.057-0.037-0.084-0.369-0.829-0.887-1.578-1.519-2.211-1.326-1.327-3.161-2.148-5.185-2.148s-3.859 0.821-5.185 2.148c-0.244 0.243-0.471 0.505-0.678 0.781-0.028 0.031-0.053 0.065-0.074 0.099-0.878 1.209-1.396 2.697-1.396 4.305 0 2.025 0.821 3.859 2.148 5.185 1.134 1.134 2.64 1.899 4.319 2.097zM8.397 11.31l-1.494 2.59c-1.217-0.225-2.305-0.817-3.145-1.657-1.087-1.087-1.757-2.585-1.757-4.243 0-0.953 0.222-1.855 0.618-2.655l2.429 4.201c0.157 0.3 0.359 0.573 0.596 0.81 0.603 0.603 1.437 0.977 2.357 0.977 0.134 0 0.267-0.008 0.397-0.023zM9.759 8.954c-0.010 0.015-0.020 0.031-0.029 0.046l-0.051 0.088c-0.077 0.117-0.165 0.227-0.264 0.326-0.363 0.363-0.862 0.586-1.415 0.586s-1.051-0.223-1.414-0.586c-0.111-0.111-0.208-0.234-0.291-0.367-0.007-0.016-0.016-0.031-0.025-0.047l-0.055-0.094c-0.138-0.272-0.216-0.58-0.216-0.906 0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414c0 0.345-0.087 0.671-0.241 0.954zM8.392 13.987l2.427-4.207c0.326-0.515 0.515-1.125 0.515-1.78 0-0.75-0.249-1.443-0.667-2h2.992c0.221 0.625 0.341 1.299 0.341 2 0 1.657-0.671 3.156-1.757 4.243-1 1-2.35 1.648-3.851 1.745z\"></path>\n </svg>\n `\n },\n {\n name: 'circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243z\"></path>\n </svg>\n `\n },\n {\n name: 'clipboard',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>clipboard</title>\n <path d=\"M4.667 3.333c0 0.368 0.15 0.702 0.391 0.943s0.575 0.391 0.943 0.391h4c0.368 0 0.702-0.15 0.943-0.391s0.391-0.575 0.391-0.943h0.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM6 0.667c-0.368 0-0.702 0.15-0.943 0.391s-0.391 0.575-0.391 0.943h-0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-0.667c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391zM6 2h4v1.333h-4z\"></path>\n </svg>\n `\n },\n {\n name: 'clock',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>clock</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM7.333 4v4c0 0.259 0.148 0.485 0.369 0.596l2.667 1.333c0.329 0.165 0.73 0.031 0.895-0.298s0.031-0.73-0.298-0.895l-2.299-1.149v-3.588c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'cloud-drizzle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cloud-drizzle</title>\n <path d=\"M4.667 12.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM4.667 8.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM10 12.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM10 8.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 14v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 10v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM13.601 11.664c1.011-0.443 1.749-1.255 2.121-2.208s0.381-2.049-0.061-3.061c-0.383-0.874-1.042-1.545-1.835-1.95-0.557-0.285-1.18-0.44-1.82-0.445h-0.352c-0.483-1.371-1.429-2.472-2.61-3.169-1.322-0.779-2.943-1.055-4.547-0.641s-2.889 1.441-3.669 2.763-1.055 2.943-0.641 4.547c0.339 1.313 1.089 2.415 2.066 3.189 0.289 0.229 0.708 0.18 0.937-0.109s0.18-0.708-0.109-0.937c-0.755-0.598-1.339-1.453-1.603-2.477-0.322-1.247-0.109-2.507 0.499-3.537s1.605-1.826 2.853-2.149 2.507-0.109 3.537 0.499 1.826 1.605 2.149 2.853c0.077 0.29 0.337 0.5 0.645 0.5h0.835c0.431 0.003 0.85 0.108 1.223 0.299 0.529 0.271 0.966 0.715 1.221 1.298 0.295 0.675 0.29 1.404 0.041 2.041s-0.739 1.177-1.414 1.472c-0.337 0.148-0.491 0.541-0.343 0.878s0.541 0.491 0.878 0.343z\"></path>\n </svg>\n `\n },\n {\n name: 'cloud-lightning',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cloud-lightning</title>\n <path d=\"M12.799 11.92c1.082-0.22 1.974-0.859 2.539-1.711s0.805-1.923 0.585-3.005c-0.202-0.994-0.757-1.828-1.511-2.395-0.679-0.511-1.519-0.807-2.409-0.81h-0.349c-0.483-1.371-1.429-2.472-2.61-3.169-1.322-0.779-2.943-1.055-4.547-0.641s-2.889 1.441-3.669 2.763-1.055 2.943-0.641 4.547c0.398 1.542 1.362 2.789 2.612 3.577 0.095 0.060 0.193 0.117 0.291 0.172 0.322 0.179 0.728 0.062 0.906-0.26s0.062-0.728-0.26-0.906c-0.077-0.043-0.153-0.087-0.227-0.134-0.974-0.614-1.722-1.583-2.032-2.782-0.322-1.248-0.109-2.507 0.498-3.537s1.605-1.826 2.853-2.149 2.507-0.109 3.537 0.498 1.826 1.605 2.149 2.853c0.078 0.29 0.338 0.5 0.647 0.5h0.837c0.597 0.003 1.159 0.2 1.613 0.541 0.503 0.378 0.871 0.931 1.006 1.595 0.147 0.722-0.013 1.433-0.39 2.003s-0.971 0.994-1.693 1.141c-0.361 0.073-0.594 0.425-0.521 0.786s0.425 0.594 0.786 0.521zM8.112 6.963l-2.667 4c-0.204 0.307-0.121 0.72 0.185 0.925 0.115 0.077 0.245 0.113 0.37 0.112h2.754l-1.976 2.963c-0.204 0.307-0.121 0.72 0.185 0.925s0.72 0.121 0.925-0.185l2.667-4c0.071-0.104 0.113-0.232 0.113-0.37 0-0.368-0.299-0.667-0.667-0.667h-2.754l1.976-2.963c0.204-0.307 0.121-0.72-0.185-0.925s-0.72-0.121-0.925 0.185z\"></path>\n </svg>\n `\n },\n {\n name: 'cloud-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cloud-off</title>\n <path d=\"M15.687 11.56c0.431-1.017 0.408-2.113 0.024-3.061s-1.131-1.751-2.147-2.182c-0.517-0.219-1.059-0.322-1.571-0.317h-0.337c-0.413-1.187-1.174-2.173-2.141-2.873-0.865-0.625-1.896-1.021-2.991-1.125-0.367-0.035-0.692 0.234-0.727 0.601s0.234 0.692 0.601 0.727c0.857 0.081 1.662 0.391 2.337 0.878 0.855 0.619 1.501 1.524 1.781 2.623 0.075 0.291 0.335 0.503 0.645 0.503h0.847c0.327-0.003 0.687 0.063 1.037 0.211 0.678 0.287 1.175 0.821 1.432 1.455s0.271 1.363-0.016 2.041c-0.143 0.339 0.015 0.73 0.354 0.874s0.73-0.015 0.874-0.354zM3.236 4.179l8.488 8.488h-5.731c-0.64 0.007-1.269-0.115-1.85-0.351-0.954-0.389-1.779-1.090-2.313-2.056-0.623-1.128-0.731-2.401-0.401-3.549 0.288-1 0.907-1.903 1.806-2.531zM0.195 1.138l2.086 2.087c-1.054 0.8-1.784 1.904-2.133 3.117-0.425 1.475-0.287 3.113 0.515 4.563 0.687 1.242 1.751 2.146 2.977 2.646 0.745 0.303 1.55 0.457 2.367 0.449h5.993c0.326-0.001 0.645-0.040 0.945-0.113l1.917 1.917c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-14.667-14.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'cloud-rain',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cloud-rain</title>\n <path d=\"M10 8.667v5.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-5.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM4.667 8.667v5.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-5.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 10v5.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-5.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM13.601 11.664c1.011-0.443 1.749-1.255 2.121-2.208s0.381-2.049-0.061-3.061c-0.383-0.874-1.042-1.545-1.835-1.95-0.557-0.285-1.18-0.44-1.82-0.445h-0.352c-0.483-1.371-1.429-2.472-2.61-3.169-1.322-0.779-2.943-1.055-4.547-0.641s-2.889 1.441-3.669 2.763-1.055 2.943-0.641 4.547c0.339 1.313 1.089 2.415 2.066 3.189 0.289 0.229 0.708 0.18 0.937-0.109s0.18-0.708-0.109-0.937c-0.755-0.598-1.339-1.453-1.603-2.477-0.322-1.247-0.109-2.507 0.499-3.537s1.605-1.826 2.853-2.149 2.507-0.109 3.537 0.499 1.826 1.605 2.149 2.853c0.077 0.29 0.337 0.5 0.645 0.5h0.835c0.431 0.003 0.85 0.108 1.223 0.299 0.529 0.271 0.966 0.715 1.221 1.298 0.295 0.675 0.29 1.404 0.041 2.041s-0.739 1.177-1.414 1.472c-0.337 0.148-0.491 0.541-0.343 0.878s0.541 0.491 0.878 0.343z\"></path>\n </svg>\n `\n },\n {\n name: 'cloud-snow',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cloud-snow</title>\n <path d=\"M13.601 12.331c1.011-0.443 1.749-1.255 2.121-2.208s0.381-2.049-0.061-3.061c-0.383-0.874-1.042-1.545-1.835-1.95-0.557-0.285-1.18-0.44-1.82-0.445h-0.352c-0.483-1.371-1.429-2.472-2.61-3.169-1.322-0.779-2.943-1.055-4.547-0.641s-2.889 1.441-3.669 2.763-1.055 2.943-0.641 4.547c0.339 1.313 1.089 2.415 2.066 3.189 0.289 0.229 0.708 0.18 0.937-0.109s0.18-0.708-0.109-0.937c-0.755-0.598-1.339-1.453-1.603-2.477-0.322-1.247-0.109-2.507 0.499-3.537s1.605-1.826 2.853-2.149 2.507-0.109 3.537 0.499 1.826 1.605 2.149 2.853c0.077 0.29 0.337 0.5 0.645 0.5h0.835c0.431 0.003 0.85 0.108 1.223 0.299 0.529 0.271 0.966 0.715 1.221 1.298 0.295 0.675 0.29 1.404 0.041 2.041s-0.739 1.177-1.414 1.472c-0.337 0.148-0.491 0.541-0.343 0.878s0.541 0.491 0.878 0.343zM6 10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM6 13.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM8.667 12c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM8.667 14.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM11.333 10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM11.333 13.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'cloud',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cloud</title>\n <path d=\"M12 7.333c0.737 0 1.402 0.298 1.885 0.781s0.781 1.149 0.781 1.885-0.298 1.402-0.781 1.885-1.149 0.781-1.885 0.781h-5.997c-0.975-0.005-1.902-0.307-2.67-0.838-0.889-0.615-1.565-1.537-1.856-2.662-0.322-1.248-0.109-2.507 0.499-3.537s1.605-1.826 2.853-2.149 2.507-0.109 3.537 0.499 1.826 1.605 2.149 2.853c0.077 0.29 0.337 0.5 0.645 0.5zM12 6h-0.347c-0.483-1.371-1.429-2.472-2.61-3.169-1.322-0.779-2.943-1.055-4.547-0.641s-2.889 1.44-3.669 2.762-1.055 2.943-0.641 4.547c0.373 1.446 1.245 2.634 2.389 3.425 0.985 0.681 2.174 1.068 3.421 1.075h6.003c1.105 0 2.105-0.449 2.829-1.171s1.171-1.724 1.171-2.829-0.449-2.105-1.171-2.829-1.724-1.171-2.829-1.171z\"></path>\n </svg>\n `\n },\n {\n name: 'code',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>code</title>\n <path d=\"M11.138 12.471l4-4c0.261-0.261 0.261-0.683 0-0.943l-4-4c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.529 3.529-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM4.862 3.529l-4 4c-0.261 0.261-0.261 0.683 0 0.943l4 4c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.529-3.529 3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'codepen',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>codepen</title>\n <path d=\"M3.504 8l-1.504 1.053v-2.106zM14 9.053l-1.504-1.053 1.504-1.053zM11.333 8.814l2.141 1.499-4.808 3.125v-2.758zM5.829 8l2.171-1.519 2.171 1.519-2.171 1.519zM2.525 10.313l2.141-1.499 2.667 1.867v2.758zM8.371 0.779c-0.106-0.071-0.234-0.113-0.371-0.113s-0.265 0.041-0.371 0.113l-6.646 4.32c-0.075 0.047-0.142 0.109-0.195 0.185-0.083 0.119-0.123 0.255-0.121 0.39v4.651c-0.001 0.123 0.031 0.247 0.099 0.357 0.027 0.045 0.061 0.087 0.099 0.125 0.031 0.031 0.067 0.059 0.105 0.085l0.013 0.008 6.646 4.32c0.106 0.072 0.234 0.113 0.371 0.113s0.265-0.041 0.371-0.113l6.646-4.32c0.075-0.046 0.142-0.108 0.195-0.185 0.083-0.119 0.122-0.255 0.121-0.391v-4.651c0.001-0.123-0.031-0.247-0.099-0.357-0.027-0.045-0.061-0.087-0.099-0.125-0.031-0.031-0.067-0.059-0.105-0.085l-0.013-0.008zM8.667 5.319v-2.757l4.808 3.125-2.141 1.499zM7.333 2.562v2.758l-2.667 1.867-2.141-1.499z\"></path>\n </svg>\n `\n },\n {\n name: 'codesandbox',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>codesandbox</title>\n <path d=\"M9.627 2.83l-1.627 0.94-1.627-0.94 1.291-0.737c0.075-0.043 0.155-0.070 0.237-0.083 0.145-0.023 0.297 0.002 0.436 0.083zM2.667 9.155l1.667 0.963v1.887l-1.33-0.76c-0.074-0.043-0.138-0.099-0.19-0.163-0.093-0.115-0.147-0.258-0.147-0.415zM11.667 12.005v-1.887l1.667-0.963v1.511c-0.001 0.081-0.017 0.164-0.047 0.241-0.053 0.137-0.15 0.256-0.284 0.333zM12.641 4.552l-4.641 2.685-4.641-2.685 1.673-0.957 2.634 1.522c0.213 0.123 0.465 0.115 0.667 0l2.633-1.521zM7.684 15.307c0.094 0.051 0.202 0.079 0.316 0.079 0.115 0 0.224-0.029 0.319-0.081 0.237-0.039 0.467-0.12 0.678-0.24l2.132-1.219c0.145-0.029 0.274-0.105 0.369-0.211l2.166-1.238c0.412-0.238 0.707-0.599 0.866-1.009 0.089-0.228 0.135-0.471 0.137-0.723v-5.333c0-0.319-0.075-0.621-0.209-0.889-0.015-0.047-0.035-0.093-0.061-0.138-0.031-0.053-0.067-0.099-0.108-0.14-0.021-0.029-0.043-0.057-0.065-0.085-0.153-0.191-0.341-0.352-0.554-0.477l-2.172-1.241c-0.098-0.111-0.229-0.184-0.369-0.211l-2.131-1.218c-0.407-0.235-0.867-0.31-1.302-0.243-0.243 0.038-0.477 0.119-0.692 0.242l-2.133 1.219c-0.14 0.027-0.271 0.1-0.369 0.211l-2.166 1.238c-0.255 0.147-0.466 0.342-0.627 0.567-0.040 0.040-0.076 0.087-0.106 0.138-0.026 0.045-0.047 0.092-0.061 0.14-0.027 0.054-0.051 0.109-0.072 0.164-0.088 0.229-0.134 0.472-0.136 0.719v5.338c0.001 0.473 0.165 0.909 0.443 1.252 0.153 0.191 0.341 0.352 0.554 0.477l2.172 1.241c0.095 0.107 0.223 0.183 0.369 0.211l2.131 1.218c0.216 0.125 0.447 0.205 0.681 0.241zM7.333 8.391v5.327l-1.667-0.952v-3.033c0-0.245-0.133-0.46-0.333-0.577l-2.667-1.541v-1.923zM8.667 13.719v-5.327l4.667-2.699v1.923l-2.667 1.541c-0.213 0.123-0.332 0.345-0.333 0.577v3.033z\"></path>\n </svg>\n `\n },\n {\n name: 'coffee',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>coffee</title>\n <path d=\"M12.667 10v-4c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414-0.223 1.051-0.586 1.414-0.861 0.586-1.414 0.586zM1.333 4.667c-0.368 0-0.667 0.299-0.667 0.667v6c0 0.92 0.374 1.755 0.976 2.357s1.437 0.976 2.357 0.976h5.333c0.92 0 1.755-0.374 2.357-0.976s0.976-1.437 0.976-2.357c0.92 0 1.755-0.374 2.357-0.976s0.976-1.437 0.976-2.357-0.374-1.755-0.976-2.357-1.437-0.976-2.357-0.976h-0.667zM2 6h9.333v5.333c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586h-5.333c-0.553 0-1.051-0.223-1.414-0.586s-0.586-0.861-0.586-1.414zM3.333 0.667v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM6 0.667v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM8.667 0.667v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'columns',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>columns</title>\n <path d=\"M7.333 13.333h-4c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h4zM8 1.333c-0.368 0-0.667 0.299-0.667 0.667v0.667h1.333v-0.667c0-0.368-0.299-0.667-0.667-0.667zM8.667 2.667h4c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-4zM8 1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667-0.299-0.667-0.667-0.667h-4.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h4.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667h4.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586z\"></path>\n </svg>\n `\n },\n {\n name: 'command',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>command</title>\n <path d=\"M9.333 6.667v2.667h-2.667v-2.667zM12 2.667c0.369 0 0.701 0.149 0.943 0.391s0.391 0.574 0.391 0.943-0.149 0.701-0.391 0.943-0.574 0.391-0.943 0.391h-1.333v-1.333c0-0.369 0.149-0.701 0.391-0.943s0.574-0.391 0.943-0.391zM9.333 5.333h-2.667v-1.333c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781h1.333v2.667h-1.333c-0.736 0-1.404 0.299-1.885 0.781s-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885v-1.333h2.667v1.333c0 0.736 0.299 1.404 0.781 1.885s1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781h-1.333v-2.667h1.333c0.736 0 1.404-0.299 1.885-0.781s0.781-1.149 0.781-1.885-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885zM5.333 5.333h-1.333c-0.369 0-0.701-0.149-0.943-0.391s-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM5.333 10.667v1.333c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391zM10.667 10.667h1.333c0.369 0 0.701 0.149 0.943 0.391s0.391 0.574 0.391 0.943-0.149 0.701-0.391 0.943-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'compass',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>compass</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM11.459 5.384c0.044-0.131 0.048-0.279 0-0.421-0.117-0.349-0.494-0.538-0.843-0.421l-4.24 1.413c-0.193 0.065-0.353 0.215-0.421 0.421l-1.413 4.24c-0.044 0.131-0.048 0.279 0 0.421 0.117 0.349 0.494 0.538 0.843 0.421l4.24-1.413c0.193-0.065 0.353-0.215 0.421-0.421zM9.773 6.227l-0.887 2.659-2.659 0.887 0.886-2.659z\"></path>\n </svg>\n `\n },\n {\n name: 'copy',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>copy</title>\n <path d=\"M7.333 5.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v6c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h6c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-6c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM7.333 6.667h6c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v6c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-6c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM3.333 9.333h-0.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h6c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v0.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-0.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-6c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v6c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h0.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-down-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-down-left</title>\n <path d=\"M12.667 2.667v4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586h-6.391l2.195-2.195c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.333 3.333c-0.064 0.064-0.112 0.137-0.145 0.216-0.1 0.241-0.052 0.53 0.145 0.727l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2.195-2.195h6.391c0.92 0 1.755-0.374 2.357-0.976s0.976-1.437 0.976-2.357v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-down-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-down-right</title>\n <path d=\"M2 2.667v4.667c0 0.92 0.374 1.755 0.976 2.357s1.437 0.976 2.357 0.976h6.391l-2.195 2.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.333-3.333c0.061-0.061 0.111-0.135 0.145-0.216s0.051-0.169 0.051-0.255c0-0.171-0.065-0.341-0.195-0.471l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.195 2.195h-6.391c-0.553 0-1.051-0.223-1.414-0.586s-0.586-0.861-0.586-1.414v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-left-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-left-down</title>\n <path d=\"M13.333 2h-4.667c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v6.391l-2.195-2.195c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.333 3.333c0.064 0.064 0.137 0.112 0.216 0.145s0.165 0.051 0.255 0.051 0.177-0.018 0.255-0.051c0.079-0.033 0.152-0.081 0.216-0.145l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.195 2.195v-6.391c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h4.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-left-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-left-up</title>\n <path d=\"M13.333 12.667h-4.667c-0.553 0-1.051-0.223-1.414-0.586s-0.586-0.861-0.586-1.414v-6.391l2.195 2.195c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.333-3.333c-0.064-0.064-0.137-0.112-0.216-0.145s-0.165-0.051-0.255-0.051-0.177 0.018-0.255 0.051c-0.079 0.033-0.152 0.081-0.216 0.145l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.195-2.195v6.391c0 0.92 0.374 1.755 0.976 2.357s1.437 0.976 2.357 0.976h4.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-right-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-right-down</title>\n <path d=\"M2.667 3.333h4.667c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v6.391l-2.195-2.195c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.333 3.333c0.064 0.064 0.137 0.112 0.216 0.145s0.165 0.051 0.255 0.051c0.087 0 0.174-0.017 0.255-0.051 0.079-0.033 0.152-0.081 0.216-0.145l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.195 2.195v-6.391c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-4.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-right-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-right-up</title>\n <path d=\"M2.667 14h4.667c0.92 0 1.755-0.374 2.357-0.976s0.976-1.437 0.976-2.357v-6.391l2.195 2.195c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.333-3.333c-0.064-0.064-0.137-0.112-0.216-0.145-0.241-0.1-0.53-0.052-0.727 0.145l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.195-2.195v6.391c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586h-4.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-up-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-up-left</title>\n <path d=\"M14 13.333v-4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-6.391l2.195-2.195c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.333 3.333c-0.064 0.064-0.112 0.137-0.145 0.216s-0.051 0.165-0.051 0.255 0.018 0.177 0.051 0.255c0.033 0.079 0.081 0.152 0.145 0.216l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2.195-2.195h6.391c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v4.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'corner-up-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>corner-up-right</title>\n <path d=\"M3.333 13.333v-4.667c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h6.391l-2.195 2.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.333-3.333c0.064-0.064 0.112-0.137 0.145-0.216s0.051-0.165 0.051-0.255-0.018-0.177-0.051-0.255c-0.033-0.079-0.081-0.152-0.145-0.216l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.195 2.195h-6.391c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v4.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'cpu',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>cpu</title>\n <path d=\"M4 3.333h8c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v8c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-8c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM6 5.333c-0.368 0-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667h4c0.368 0 0.667-0.299 0.667-0.667v-4c0-0.368-0.299-0.667-0.667-0.667zM6.667 6.667h2.667v2.667h-2.667zM0.667 10h1.333v2c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h1.333v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333h2.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333h1.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-2h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-1.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-1.333v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333h-2.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333h-1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v1.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h1.333v2h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'credit-card',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>credit-card</title>\n <path d=\"M2 2c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v8c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h12c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM14.667 6h-13.333v-2c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h12c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471zM1.333 7.333h13.333v4.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-12c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'crop',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>crop</title>\n <path d=\"M4.718 4.718l5.955-0.051c0.179 0 0.344 0.074 0.465 0.195s0.195 0.287 0.195 0.471v6h-6c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.465zM0.673 4.753l2.712-0.023-0.051 5.931c0 0.558 0.225 1.059 0.586 1.42s0.862 0.586 1.414 0.586h6v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.667v-6c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.42-0.586l-5.931 0.051 0.023-2.712c0.003-0.369-0.293-0.669-0.661-0.673s-0.669 0.293-0.673 0.661l-0.024 2.735-2.735 0.024c-0.368 0.003-0.664 0.304-0.661 0.673s0.304 0.664 0.673 0.661z\"></path>\n </svg>\n `\n },\n {\n name: 'crosshair',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>crosshair</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM8.667 13.963v-1.963c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.963c-1.391-0.153-2.637-0.782-3.576-1.721s-1.567-2.185-1.721-3.576h1.963c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.963c0.153-1.391 0.782-2.637 1.721-3.576s2.185-1.567 3.576-1.721v1.963c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.963c1.391 0.153 2.637 0.782 3.576 1.721s1.567 2.185 1.721 3.576h-1.963c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h1.963c-0.153 1.391-0.782 2.637-1.721 3.576s-2.185 1.567-3.576 1.721z\"></path>\n </svg>\n `\n },\n {\n name: 'database',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>database</title>\n <path d=\"M2.667 3.335c0 0 0.002-0.063 0.142-0.192 0.163-0.15 0.447-0.322 0.871-0.487 0.999-0.39 2.547-0.656 4.321-0.656s3.321 0.266 4.321 0.656c0.423 0.165 0.707 0.337 0.871 0.487 0.139 0.128 0.141 0.189 0.141 0.192 0 0-0.002 0.061-0.142 0.189-0.163 0.15-0.447 0.322-0.871 0.487-0.999 0.39-2.547 0.656-4.321 0.656s-3.321-0.266-4.321-0.656c-0.423-0.165-0.707-0.337-0.871-0.487-0.139-0.128-0.141-0.189-0.141-0.189zM13.333 9.688v2.981l-0.011 0.033c-0.016 0.032-0.053 0.088-0.133 0.161-0.163 0.15-0.447 0.321-0.869 0.485-0.997 0.388-2.54 0.652-4.321 0.652s-3.323-0.264-4.32-0.652c-0.422-0.164-0.705-0.335-0.869-0.485-0.080-0.073-0.117-0.129-0.133-0.161l-0.012-0.035v-2.979c0.167 0.085 0.345 0.164 0.529 0.236 1.198 0.466 2.918 0.743 4.804 0.743s3.606-0.277 4.804-0.743c0.185-0.072 0.362-0.15 0.529-0.236zM13.333 5.018v2.975c0 0.003 0 0.005 0 0.009l-0.011 0.033c-0.016 0.032-0.053 0.088-0.133 0.161-0.163 0.15-0.447 0.321-0.869 0.485-0.997 0.388-2.54 0.652-4.321 0.652s-3.323-0.264-4.32-0.652c-0.422-0.164-0.705-0.335-0.869-0.485-0.080-0.073-0.117-0.129-0.133-0.161l-0.012-0.033v-2.984c0.167 0.085 0.344 0.163 0.528 0.235 1.201 0.468 2.925 0.747 4.805 0.747s3.605-0.279 4.805-0.747c0.184-0.072 0.361-0.15 0.528-0.235zM1.333 3.333v9.333c0 0.039 0.001 0.077 0.005 0.116 0.038 0.443 0.283 0.798 0.571 1.063 0.332 0.305 0.783 0.549 1.287 0.745 1.198 0.466 2.918 0.743 4.804 0.743s3.606-0.277 4.804-0.743c0.503-0.196 0.955-0.441 1.287-0.745 0.288-0.265 0.533-0.619 0.571-1.063 0.003-0.039 0.005-0.077 0.005-0.116v-9.333c0-0.037-0.001-0.075-0.005-0.112-0.037-0.443-0.281-0.797-0.568-1.060-0.332-0.306-0.785-0.551-1.289-0.748-1.201-0.468-2.925-0.747-4.805-0.747s-3.605 0.279-4.805 0.747c-0.504 0.197-0.957 0.443-1.289 0.748-0.287 0.263-0.531 0.618-0.568 1.060-0.003 0.037-0.005 0.075-0.005 0.112z\"></path>\n </svg>\n `\n },\n {\n name: 'delete',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>delete</title>\n <path d=\"M14 3.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v8c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8.364l-4.083-4.667 4.083-4.667zM14 2h-8.667c-0.2 0-0.379 0.088-0.502 0.227l-4.667 5.333c-0.222 0.253-0.217 0.628 0 0.878l4.667 5.333c0.132 0.151 0.316 0.227 0.502 0.228h8.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM7.529 6.471l1.529 1.529-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529 1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'disc',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>disc</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM10.667 8c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM9.333 8c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'dollar-sign',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>dollar-sign</title>\n <path d=\"M7.333 7.333h-1c-0.461 0-0.876-0.186-1.179-0.488s-0.488-0.718-0.488-1.179 0.186-0.876 0.488-1.179 0.718-0.488 1.179-0.488h1zM8.667 8.667h1c0.461 0 0.876 0.186 1.179 0.488s0.488 0.718 0.488 1.179-0.186 0.876-0.488 1.179-0.718 0.488-1.179 0.488h-1zM11.333 2.667h-2.667v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2h-1c-0.828 0-1.579 0.337-2.121 0.879s-0.879 1.293-0.879 2.121 0.337 1.579 0.879 2.121 1.293 0.879 2.121 0.879h1v3.333h-3.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h3.333v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2h1c0.828 0 1.579-0.337 2.121-0.879s0.879-1.293 0.879-2.121-0.337-1.579-0.879-2.121-1.293-0.879-2.121-0.879h-1v-3.333h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'download-cloud',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>download-cloud</title>\n <path d=\"M7.333 8v4.391l-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.667 2.667c0.061 0.061 0.135 0.111 0.216 0.145 0.163 0.067 0.347 0.067 0.511 0 0.079-0.033 0.152-0.081 0.216-0.145l2.667-2.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529v-4.391c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM14.303 12.605c0.903-0.635 1.464-1.578 1.64-2.585s-0.033-2.084-0.669-2.987c-0.551-0.783-1.332-1.309-2.191-1.549-0.351-0.098-0.715-0.149-1.081-0.15h-0.349c-0.481-1.372-1.425-2.473-2.605-3.172-1.321-0.781-2.941-1.059-4.546-0.648s-2.892 1.437-3.673 2.757-1.059 2.941-0.648 4.546c0.247 0.964 0.717 1.817 1.322 2.489 0.247 0.273 0.668 0.296 0.941 0.049s0.296-0.668 0.049-0.941c-0.461-0.513-0.828-1.173-1.022-1.929-0.321-1.249-0.105-2.507 0.504-3.536s1.608-1.824 2.857-2.144 2.507-0.105 3.536 0.504 1.824 1.608 2.144 2.857c0.077 0.29 0.337 0.501 0.647 0.501h0.837c0.247 0.001 0.491 0.035 0.727 0.101 0.574 0.161 1.093 0.51 1.46 1.032 0.424 0.603 0.563 1.319 0.446 1.992s-0.491 1.3-1.093 1.723c-0.301 0.212-0.373 0.627-0.162 0.929s0.627 0.373 0.929 0.162z\"></path>\n </svg>\n `\n },\n {\n name: 'download',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>download</title>\n <path d=\"M13.333 10v2.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM8.667 8.391v-6.391c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v6.391l-2.195-2.195c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.333 3.333c0.061 0.061 0.135 0.111 0.216 0.145s0.169 0.051 0.255 0.051c0.171 0 0.341-0.065 0.471-0.195l3.333-3.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'droplet',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>droplet</title>\n <path d=\"M8.471 1.322c-0.261-0.261-0.683-0.26-0.943 0.001l-3.769 3.775c-1.171 1.172-1.757 2.709-1.756 4.243s0.587 3.071 1.759 4.242 2.709 1.757 4.243 1.756 3.071-0.587 4.242-1.759 1.757-2.709 1.756-4.243-0.587-3.071-1.759-4.242zM8.001 2.737l3.301 3.301c0.912 0.911 1.368 2.104 1.368 3.299s-0.455 2.389-1.366 3.3-2.104 1.367-3.299 1.368-2.389-0.455-3.3-1.366-1.367-2.104-1.368-3.299 0.455-2.389 1.366-3.3z\"></path>\n </svg>\n `\n },\n {\n name: 'edit-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>edit-2</title>\n <path d=\"M10.862 1.529l-9 9c-0.078 0.077-0.14 0.179-0.172 0.296l-1 3.667c-0.031 0.109-0.033 0.231 0 0.351 0.097 0.355 0.463 0.565 0.819 0.468l3.667-1c0.106-0.028 0.21-0.086 0.296-0.172l9-9c0.498-0.498 0.747-1.153 0.747-1.805s-0.249-1.307-0.747-1.805-1.153-0.747-1.805-0.747-1.307 0.249-1.805 0.747zM11.805 2.471c0.238-0.238 0.549-0.357 0.862-0.357s0.624 0.119 0.862 0.357 0.357 0.549 0.357 0.861-0.119 0.624-0.357 0.862l-8.875 8.875-2.371 0.647 0.647-2.37z\"></path>\n </svg>\n `\n },\n {\n name: 'edit-3',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>edit-3</title>\n <path d=\"M8 14h6c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-6c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM10.529 1.862l-8.333 8.333c-0.081 0.081-0.145 0.187-0.175 0.31l-0.667 2.667c-0.026 0.1-0.028 0.212 0 0.323 0.089 0.357 0.451 0.575 0.809 0.485l2.667-0.667c0.111-0.027 0.22-0.086 0.31-0.175l8.333-8.333c0.406-0.406 0.609-0.94 0.609-1.471s-0.203-1.065-0.609-1.471-0.941-0.61-1.472-0.61-1.065 0.203-1.471 0.609zM11.471 2.805c0.146-0.146 0.336-0.219 0.529-0.219s0.383 0.073 0.529 0.219 0.219 0.336 0.219 0.529-0.073 0.383-0.219 0.529l-8.203 8.203-1.41 0.353 0.353-1.41z\"></path>\n </svg>\n `\n },\n {\n name: 'edit',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>edit</title>\n <path d=\"M7.333 2h-4.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h4.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM11.862 1.195l-6.333 6.333c-0.081 0.081-0.145 0.187-0.175 0.31l-0.667 2.667c-0.026 0.1-0.028 0.212 0 0.323 0.089 0.357 0.451 0.575 0.809 0.485l2.667-0.667c0.111-0.027 0.22-0.086 0.31-0.175l6.333-6.333c0.406-0.406 0.609-0.94 0.609-1.471s-0.203-1.065-0.609-1.471-0.941-0.61-1.472-0.61-1.065 0.203-1.471 0.609zM12.805 2.138c0.146-0.146 0.336-0.219 0.529-0.219s0.383 0.073 0.529 0.219 0.219 0.336 0.219 0.529-0.073 0.383-0.219 0.529l-6.203 6.203-1.409 0.353 0.353-1.409z\"></path>\n </svg>\n `\n },\n {\n name: 'external-link',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>external-link</title>\n <path d=\"M11.333 8.667v4c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-7.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-7.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v7.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h7.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.138 9.805l6.195-6.195v2.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.391l-6.195 6.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'eye-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>eye-off</title>\n <path d=\"M6.752 3.476c0.434-0.101 0.863-0.147 1.24-0.143 1.172 0 2.206 0.373 3.105 0.929 0.746 0.461 1.393 1.045 1.929 1.632 0.429 0.47 0.783 0.937 1.057 1.334 0.218 0.317 0.38 0.583 0.489 0.77-0.364 0.635-0.773 1.214-1.185 1.695-0.239 0.279-0.207 0.701 0.072 0.94s0.701 0.207 0.94-0.072c0.545-0.636 1.074-1.408 1.522-2.247 0.099-0.186 0.109-0.412 0.009-0.613 0 0-0.264-0.526-0.747-1.229-0.301-0.437-0.692-0.955-1.171-1.479-0.596-0.653-1.336-1.325-2.213-1.867-1.063-0.657-2.337-1.127-3.791-1.127-0.489-0.006-1.027 0.053-1.56 0.177-0.359 0.084-0.581 0.443-0.497 0.801s0.443 0.581 0.801 0.497zM6.685 7.628l1.687 1.687c-0.121 0.041-0.248 0.063-0.375 0.067-0.342 0.012-0.687-0.106-0.956-0.357s-0.411-0.587-0.423-0.929c-0.005-0.159 0.017-0.317 0.067-0.469zM3.989 4.931l1.702 1.702c-0.289 0.461-0.424 0.989-0.405 1.511 0.024 0.681 0.309 1.355 0.847 1.857s1.231 0.738 1.912 0.714c0.461-0.016 0.919-0.152 1.323-0.405l1.548 1.548c-0.919 0.533-1.93 0.797-2.923 0.809-1.156 0-2.19-0.373-3.089-0.929-0.746-0.461-1.393-1.045-1.929-1.632-0.429-0.47-0.783-0.937-1.057-1.334-0.217-0.317-0.38-0.582-0.488-0.769 0.7-1.215 1.584-2.253 2.561-3.071zM0.195 1.138l2.847 2.847c-1.154 0.986-2.179 2.239-2.963 3.699-0.099 0.186-0.109 0.413-0.009 0.613 0 0 0.264 0.526 0.747 1.229 0.301 0.437 0.692 0.955 1.171 1.479 0.596 0.653 1.336 1.325 2.213 1.867 1.063 0.657 2.337 1.128 3.807 1.128 1.329-0.016 2.679-0.401 3.877-1.173l2.977 2.977c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-5.917-5.917c-0.001-0.001-0.003-0.003-0.005-0.005l-2.806-2.807c-0.005-0.005-0.011-0.011-0.016-0.016l-5.923-5.922c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'eye',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>eye</title>\n <path d=\"M0.071 7.702c-0.091 0.183-0.097 0.402 0 0.596 0 0 0.264 0.526 0.747 1.229 0.301 0.437 0.692 0.955 1.171 1.479 0.596 0.653 1.336 1.325 2.213 1.867 1.063 0.657 2.337 1.128 3.799 1.128s2.735-0.471 3.799-1.128c0.877-0.542 1.617-1.214 2.213-1.867 0.479-0.524 0.871-1.041 1.171-1.479 0.483-0.703 0.747-1.229 0.747-1.229 0.091-0.183 0.097-0.402 0-0.596 0 0-0.264-0.526-0.747-1.229-0.301-0.437-0.692-0.955-1.171-1.479-0.596-0.653-1.336-1.325-2.213-1.867-1.063-0.657-2.337-1.128-3.799-1.128s-2.735 0.471-3.799 1.128c-0.877 0.542-1.617 1.214-2.213 1.867-0.479 0.524-0.871 1.041-1.171 1.479-0.483 0.703-0.747 1.229-0.747 1.229zM1.427 8c0.109-0.187 0.271-0.454 0.489-0.772 0.273-0.397 0.627-0.864 1.057-1.334 0.537-0.587 1.183-1.171 1.929-1.632 0.9-0.556 1.934-0.929 3.098-0.929s2.198 0.373 3.097 0.929c0.746 0.461 1.393 1.045 1.929 1.632 0.429 0.47 0.783 0.937 1.057 1.334 0.219 0.318 0.381 0.584 0.489 0.772-0.109 0.187-0.271 0.454-0.489 0.772-0.273 0.397-0.627 0.864-1.057 1.334-0.537 0.587-1.183 1.171-1.929 1.632-0.899 0.556-1.933 0.929-3.097 0.929s-2.198-0.373-3.097-0.929c-0.746-0.461-1.393-1.045-1.929-1.632-0.429-0.47-0.783-0.937-1.057-1.334-0.219-0.318-0.381-0.585-0.49-0.772zM10.667 8c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM9.333 8c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'facebook',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>facebook</title>\n <path d=\"M11.333 2v1.333h-1.333c-0.368 0-0.702 0.15-0.943 0.391s-0.391 0.575-0.391 0.943v2c0 0.368 0.299 0.667 0.667 0.667h1.813l-0.333 1.333h-1.479c-0.368 0-0.667 0.299-0.667 0.667v4.667h-1.333v-4.667c0-0.368-0.299-0.667-0.667-0.667h-1.333v-1.333h1.333c0.368 0 0.667-0.299 0.667-0.667v-2c0-0.737 0.298-1.402 0.781-1.885s1.149-0.781 1.885-0.781zM12 0.667h-2c-1.105 0-2.105 0.449-2.829 1.171s-1.171 1.724-1.171 2.829v1.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667v2.667c0 0.368 0.299 0.667 0.667 0.667h1.333v4.667c0 0.368 0.299 0.667 0.667 0.667h2.667c0.368 0 0.667-0.299 0.667-0.667v-4.667h1.333c0.311 0 0.572-0.213 0.647-0.505l0.667-2.667c0.089-0.357-0.128-0.719-0.485-0.809-0.055-0.014-0.111-0.021-0.161-0.020h-2v-1.333h2c0.368 0 0.667-0.299 0.667-0.667v-2.667c0-0.368-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'fast-forward',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>fast-forward</title>\n <path d=\"M9.333 11.303v-6.607l4.247 3.303zM2 11.303v-6.607l4.247 3.303zM1.743 13.193l6-4.667c0.167-0.13 0.255-0.324 0.257-0.52v4.661c0 0.368 0.299 0.667 0.667 0.667 0.155 0 0.297-0.053 0.409-0.141l6-4.667c0.291-0.226 0.343-0.645 0.117-0.935-0.036-0.046-0.077-0.086-0.117-0.117l-6-4.667c-0.291-0.226-0.709-0.174-0.935 0.117-0.095 0.123-0.141 0.267-0.141 0.409v4.66c-0.001-0.141-0.047-0.283-0.141-0.403-0.036-0.046-0.077-0.086-0.117-0.117l-6-4.667c-0.291-0.226-0.709-0.174-0.935 0.117-0.095 0.123-0.141 0.267-0.141 0.409v9.333c0 0.368 0.299 0.667 0.667 0.667 0.155 0 0.297-0.053 0.409-0.141z\"></path>\n </svg>\n `\n },\n {\n name: 'feather',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>feather</title>\n <path d=\"M12.074 10.528c0.046-0.035 0.087-0.077 0.122-0.123l1.769-1.774c0.911-0.911 1.367-2.107 1.367-3.301s-0.456-2.39-1.367-3.301-2.107-1.367-3.301-1.367-2.39 0.456-3.301 1.367l-4.5 4.5c-0.13 0.13-0.195 0.301-0.195 0.471v5.391l-1.805 1.805c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.805-1.805h5.391c0.185 0 0.351-0.075 0.472-0.196zM6.276 10.667h3.777l-1.329 1.333h-3.781zM11.382 9.333h-3.773l3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-6.195 6.195v-3.781l4.305-4.305c0.651-0.651 1.504-0.977 2.359-0.977s1.707 0.325 2.359 0.977 0.977 1.504 0.977 2.359-0.325 1.707-0.977 2.359z\"></path>\n </svg>\n `\n },\n {\n name: 'figma',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>figma</title>\n <path d=\"M8.667 8.333c0-0.461 0.186-0.876 0.488-1.179s0.718-0.488 1.179-0.488 0.876 0.186 1.179 0.488 0.488 0.718 0.488 1.179-0.186 0.876-0.488 1.179-0.718 0.488-1.179 0.488-0.876-0.186-1.179-0.488-0.488-0.718-0.488-1.179zM5.667 5.333c-0.461 0-0.876-0.186-1.179-0.488s-0.488-0.718-0.488-1.179 0.186-0.876 0.488-1.179 0.718-0.488 1.179-0.488h1.667v3.333zM8.667 5.333v-3.333h1.667c0.461 0 0.876 0.186 1.179 0.488s0.488 0.718 0.488 1.179-0.186 0.876-0.488 1.179-0.718 0.488-1.179 0.488zM7.333 11.333v1.667c0 0.461-0.186 0.876-0.488 1.179s-0.718 0.488-1.179 0.488-0.876-0.186-1.179-0.488-0.488-0.718-0.488-1.179 0.186-0.876 0.488-1.179 0.718-0.488 1.179-0.488zM2.667 8.333c0 0.828 0.337 1.579 0.879 2.121 0.075 0.075 0.153 0.145 0.235 0.212-0.082 0.067-0.161 0.137-0.235 0.212-0.542 0.542-0.879 1.293-0.879 2.121s0.337 1.579 0.879 2.121 1.293 0.879 2.121 0.879 1.579-0.337 2.121-0.879 0.879-1.293 0.879-2.121v-2.172c0.477 0.319 1.050 0.505 1.667 0.505 0.828 0 1.579-0.337 2.121-0.879s0.879-1.293 0.879-2.121-0.337-1.579-0.879-2.121c-0.075-0.075-0.153-0.145-0.235-0.212 0.082-0.067 0.161-0.137 0.235-0.212 0.542-0.542 0.879-1.293 0.879-2.121s-0.337-1.579-0.879-2.121-1.293-0.879-2.121-0.879h-4.667c-0.828 0-1.579 0.337-2.121 0.879s-0.879 1.293-0.879 2.121 0.337 1.579 0.879 2.121c0.075 0.075 0.153 0.145 0.235 0.212-0.082 0.067-0.161 0.137-0.235 0.212-0.542 0.542-0.879 1.293-0.879 2.121zM4 8.333c0-0.461 0.186-0.876 0.488-1.179s0.718-0.488 1.179-0.488h1.667v3.333h-1.667c-0.461 0-0.876-0.186-1.179-0.488s-0.488-0.718-0.488-1.179z\"></path>\n </svg>\n `\n },\n {\n name: 'file-minus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>file-minus</title>\n <path d=\"M9.333 0.667h-5.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8c0-0.184-0.075-0.351-0.195-0.471l-4-4c-0.064-0.064-0.137-0.112-0.216-0.145-0.081-0.034-0.169-0.051-0.255-0.051zM11.724 4.667h-1.724v-1.724zM8.667 2v3.333c0 0.368 0.299 0.667 0.667 0.667h3.333v7.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM6 10.667h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'file-plus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>file-plus</title>\n <path d=\"M9.333 0.667h-5.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8c0-0.184-0.075-0.351-0.195-0.471l-4-4c-0.064-0.064-0.137-0.112-0.216-0.145-0.081-0.034-0.169-0.051-0.255-0.051zM11.724 4.667h-1.724v-1.724zM8.667 2v3.333c0 0.368 0.299 0.667 0.667 0.667h3.333v7.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM6 10.667h1.333v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'file-text',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>file-text</title>\n <path d=\"M9.333 0.667h-5.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8c0-0.184-0.075-0.351-0.195-0.471l-4-4c-0.064-0.064-0.137-0.112-0.216-0.145-0.081-0.034-0.169-0.051-0.255-0.051zM11.724 4.667h-1.724v-1.724zM8.667 2v3.333c0 0.368 0.299 0.667 0.667 0.667h3.333v7.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM10.667 8h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM10.667 10.667h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM6.667 5.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'file',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>file</title>\n <path d=\"M8.667 0.667h-4.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-7.333c0-0.184-0.075-0.351-0.195-0.471l-4.667-4.667c-0.064-0.064-0.137-0.112-0.216-0.145-0.081-0.034-0.169-0.051-0.255-0.051zM11.724 5.333h-2.391v-2.391zM8 2v4c0 0.368 0.299 0.667 0.667 0.667h4v6.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'film',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>film</title>\n <path d=\"M10.667 7.333h-5.333v-5.333h5.333zM5.333 8.667h5.333v5.333h-5.333zM4 4h-2v-1.213c0-0.217 0.087-0.413 0.231-0.556s0.339-0.231 0.556-0.231h1.213zM2 5.333h2v2h-2zM4 10.667h-2v-2h2zM2 12h2v2h-1.213c-0.217 0-0.413-0.087-0.556-0.231s-0.231-0.339-0.231-0.556zM14 10.667h-2v-2h2zM12 12h2v1.213c0 0.217-0.087 0.413-0.231 0.556s-0.339 0.231-0.556 0.231h-1.213zM14 4h-2v-2h1.213c0.217 0 0.413 0.087 0.556 0.231s0.231 0.339 0.231 0.556zM15.333 4.667v-1.88c0-0.585-0.238-1.116-0.621-1.499s-0.914-0.621-1.499-0.621h-10.427c-0.585 0-1.116 0.238-1.499 0.621s-0.621 0.914-0.621 1.499v10.427c0 0.585 0.238 1.116 0.621 1.499s0.914 0.621 1.499 0.621h10.427c0.585 0 1.116-0.238 1.499-0.621s0.621-0.914 0.621-1.499zM12 5.333h2v2h-2z\"></path>\n </svg>\n `\n },\n {\n name: 'filter',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>filter</title>\n <path d=\"M13.23 2.667l-4.406 5.209c-0.098 0.115-0.157 0.266-0.157 0.431v4.615l-1.333-0.667v-3.948c0.001-0.151-0.051-0.305-0.157-0.431l-4.406-5.209zM14.667 1.333h-13.333c-0.368 0-0.667 0.299-0.667 0.667 0 0.165 0.059 0.315 0.157 0.431l5.176 6.12v4.116c0 0.259 0.148 0.485 0.369 0.596l2.667 1.333c0.329 0.165 0.73 0.031 0.895-0.298 0.048-0.097 0.071-0.201 0.070-0.298v-5.449l5.176-6.12c0.238-0.281 0.203-0.702-0.079-0.939-0.126-0.107-0.279-0.159-0.431-0.158z\"></path>\n </svg>\n `\n },\n {\n name: 'flag',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>flag</title>\n <path d=\"M3.333 8.931v-6.573c0.293-0.145 0.91-0.359 2-0.359 0.854 0 1.574 0.281 2.419 0.619 0.821 0.329 1.768 0.715 2.914 0.715 0.865 0 1.519-0.117 2-0.265v6.573c-0.293 0.145-0.91 0.359-2 0.359-0.854 0-1.574-0.281-2.419-0.619-0.821-0.329-1.768-0.715-2.914-0.715-0.865 0-1.519 0.117-2 0.265zM3.333 14.667v-4.308c0.293-0.145 0.91-0.359 2-0.359 0.854 0 1.574 0.281 2.419 0.619 0.821 0.329 1.768 0.715 2.914 0.715 2.165 0 3.005-0.729 3.138-0.862 0.13-0.13 0.195-0.301 0.195-0.471v-8c0-0.368-0.299-0.667-0.667-0.667-0.177 0-0.337 0.069-0.457 0.181-0.064 0.052-0.656 0.485-2.21 0.485-0.854 0-1.574-0.281-2.419-0.619-0.821-0.329-1.768-0.715-2.914-0.715-2.165 0-3.005 0.729-3.138 0.862-0.13 0.13-0.195 0.301-0.195 0.471v12.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'folder-minus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>folder-minus</title>\n <path d=\"M15.333 12.667v-7.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-5.643l-1.135-1.703c-0.121-0.18-0.324-0.297-0.555-0.297h-3.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414zM14 12.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.977l1.135 1.703c0.128 0.191 0.337 0.295 0.555 0.297h6c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471zM6 10h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'folder-plus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>folder-plus</title>\n <path d=\"M15.333 12.667v-7.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-5.643l-1.135-1.703c-0.121-0.18-0.324-0.297-0.555-0.297h-3.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414zM14 12.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.977l1.135 1.703c0.128 0.191 0.337 0.295 0.555 0.297h6c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471zM6 10h1.333v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'folder',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>folder</title>\n <path d=\"M15.333 12.667v-7.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-5.643l-1.135-1.703c-0.121-0.18-0.324-0.297-0.555-0.297h-3.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414zM14 12.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.977l1.135 1.703c0.128 0.191 0.337 0.295 0.555 0.297h6c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'framer',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>framer</title>\n <path d=\"M7.333 11.333v2.391l-2.391-2.391zM8 11.333h0.667v-0.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667-0.299-0.667-0.667-0.667-0.667 0.299-0.667 0.667v0.667zM4 10.391v-0.391h-0.667c-0.091 0-0.177 0.018-0.255 0.051s-0.152 0.081-0.216 0.145-0.112 0.137-0.145 0.216c-0.033 0.079-0.051 0.165-0.051 0.255 0 0.368 0.299 0.667 0.667 0.667h1.609zM8.276 5.333l-3.333-3.333h7.057v3.333z\"></path>\n </svg>\n `\n },\n {\n name: 'frown',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>frown</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM11.2 10.267c0 0-0.087-0.115-0.221-0.255-0.097-0.102-0.225-0.227-0.385-0.36-0.225-0.187-0.515-0.393-0.865-0.569-0.47-0.235-1.053-0.416-1.73-0.416s-1.26 0.181-1.73 0.416c-0.35 0.175-0.64 0.381-0.865 0.569-0.159 0.133-0.288 0.258-0.385 0.36-0.133 0.14-0.221 0.255-0.221 0.255-0.221 0.295-0.161 0.713 0.133 0.933s0.713 0.161 0.933-0.133l0.121-0.137c0.067-0.070 0.158-0.159 0.272-0.255 0.162-0.135 0.366-0.279 0.607-0.4 0.32-0.159 0.7-0.275 1.134-0.275s0.814 0.115 1.134 0.275c0.24 0.12 0.445 0.265 0.607 0.4 0.114 0.095 0.205 0.185 0.272 0.255l0.121 0.137c0.221 0.295 0.639 0.354 0.933 0.133s0.354-0.639 0.133-0.933z\"></path>\n </svg>\n `\n },\n {\n name: 'gift',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>gift</title>\n <path d=\"M7.333 8.667v5.333h-4v-5.333zM8.667 14v-5.333h4v5.333zM5 4c-0.276 0-0.525-0.111-0.707-0.293s-0.293-0.431-0.293-0.707 0.111-0.525 0.293-0.707 0.431-0.293 0.707-0.293c0.419 0 0.761 0.149 1.056 0.391 0.251 0.205 0.467 0.479 0.651 0.785 0.161 0.267 0.289 0.547 0.387 0.802zM8.897 4c0.107-0.277 0.235-0.557 0.395-0.825 0.183-0.306 0.401-0.579 0.651-0.785 0.295-0.242 0.637-0.391 1.057-0.391 0.276 0 0.525 0.111 0.707 0.293s0.293 0.431 0.293 0.707-0.111 0.525-0.293 0.707-0.431 0.293-0.707 0.293zM7.333 5.333v2h-5.333v-2h3zM13.109 4c0.144-0.303 0.225-0.642 0.225-1 0-0.644-0.262-1.229-0.683-1.65s-1.006-0.683-1.65-0.683c-0.773 0-1.406 0.287-1.901 0.693-0.402 0.329-0.712 0.735-0.949 1.129-0.053 0.089-0.103 0.177-0.15 0.265-0.047-0.088-0.097-0.177-0.15-0.265-0.237-0.394-0.547-0.8-0.949-1.129-0.495-0.406-1.128-0.693-1.901-0.693-0.644 0-1.229 0.262-1.65 0.683s-0.683 1.006-0.683 1.65c0 0.358 0.081 0.697 0.225 1h-1.558c-0.368 0-0.667 0.299-0.667 0.667v3.333c0 0.368 0.299 0.667 0.667 0.667h0.667v6c0 0.368 0.299 0.667 0.667 0.667h10.667c0.368 0 0.667-0.299 0.667-0.667v-6h0.667c0.368 0 0.667-0.299 0.667-0.667v-3.333c0-0.368-0.299-0.667-0.667-0.667zM8.667 5.333h5.333v2h-5.333z\"></path>\n </svg>\n `\n },\n {\n name: 'git-branch',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>git-branch</title>\n <path d=\"M13.333 4c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM5.333 12c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM11.303 6.575c-0.133 1.243-0.693 2.358-1.531 3.197s-1.953 1.399-3.197 1.531c-0.123-0.457-0.365-0.865-0.689-1.189-0.331-0.331-0.751-0.576-1.219-0.697v-7.417c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v7.417c-0.469 0.121-0.888 0.366-1.219 0.697-0.482 0.482-0.781 1.15-0.781 1.886s0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781c0.337-0.337 0.585-0.765 0.703-1.245 1.606-0.141 3.049-0.851 4.125-1.927s1.786-2.519 1.927-4.125c0.479-0.118 0.907-0.366 1.245-0.703 0.482-0.481 0.781-1.149 0.781-1.885s-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885c0.324 0.324 0.732 0.565 1.189 0.689z\"></path>\n </svg>\n `\n },\n {\n name: 'git-commit',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>git-commit</title>\n <path d=\"M10 8c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM11.34 8.667h3.967c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-3.967c-0.025 0-0.049 0.001-0.073 0.004-0.132-0.655-0.457-1.24-0.91-1.694-0.603-0.603-1.437-0.977-2.357-0.977s-1.755 0.374-2.357 0.976c-0.454 0.454-0.778 1.039-0.91 1.693-0.021-0.001-0.044-0.003-0.066-0.003h-3.967c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h3.967c0.022 0 0.045-0.001 0.066-0.003 0.132 0.655 0.457 1.24 0.91 1.693 0.603 0.603 1.437 0.977 2.357 0.977s1.755-0.374 2.357-0.976c0.454-0.454 0.778-1.039 0.91-1.694 0.024 0.003 0.048 0.004 0.073 0.004z\"></path>\n </svg>\n `\n },\n {\n name: 'git-merge',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>git-merge</title>\n <path d=\"M13.333 12c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM5.333 4c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM4.667 14v-3.999c0.189 0.253 0.397 0.491 0.619 0.713 1.076 1.076 2.519 1.786 4.125 1.927 0.118 0.479 0.366 0.907 0.703 1.245 0.481 0.482 1.149 0.781 1.885 0.781s1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781c-0.324 0.324-0.565 0.732-0.689 1.189-1.243-0.133-2.358-0.693-3.197-1.531s-1.399-1.953-1.531-3.197c0.455-0.124 0.863-0.366 1.187-0.69 0.482-0.481 0.781-1.149 0.781-1.885s-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885c0.331 0.331 0.75 0.577 1.219 0.697v7.417c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'git-pull-request',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>git-pull-request</title>\n <path d=\"M13.333 12c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM5.333 4c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM8.667 4.667h2c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v4.084c-0.469 0.121-0.888 0.366-1.219 0.697-0.482 0.482-0.781 1.15-0.781 1.886s0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885-0.299-1.404-0.781-1.885c-0.331-0.331-0.75-0.576-1.219-0.697v-4.085c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM3.333 6.583v7.417c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-7.417c0.469-0.121 0.888-0.366 1.219-0.697 0.482-0.482 0.781-1.15 0.781-1.886s-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885c0.331 0.331 0.75 0.577 1.219 0.697z\"></path>\n </svg>\n `\n },\n {\n name: 'github',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>github</title>\n <path d=\"M5.333 12.149c-0.577 0.117-0.969 0.081-1.247-0.007-0.154-0.049-0.287-0.117-0.409-0.201-0.274-0.189-0.485-0.45-0.746-0.781-0.237-0.301-0.567-0.738-1.034-0.984-0.123-0.065-0.257-0.118-0.403-0.155-0.357-0.089-0.719 0.128-0.809 0.485s0.128 0.719 0.485 0.809l0.103 0.040c0.168 0.089 0.325 0.269 0.609 0.631 0.244 0.309 0.571 0.732 1.035 1.053 0.221 0.153 0.474 0.284 0.766 0.376 0.475 0.15 1.017 0.187 1.649 0.090l-0.001 1.163c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.58c0-0.014-0.001-0.030-0.001-0.046-0.004-0.056-0.005-0.112-0.003-0.167 0.013-0.379 0.161-0.751 0.443-1.043 0.097-0.099 0.164-0.231 0.183-0.381 0.045-0.365-0.214-0.699-0.579-0.744-0.227-0.028-0.451-0.063-0.671-0.106-0.527-0.104-1.012-0.257-1.431-0.489-0.879-0.486-1.607-1.396-1.607-3.414-0.005-0.738 0.266-1.479 0.816-2.056 0.171-0.183 0.233-0.448 0.142-0.693-0.187-0.499-0.227-1.053-0.094-1.595 0.327 0.071 0.903 0.277 1.765 0.855 0.157 0.105 0.355 0.143 0.551 0.088 1.331-0.371 2.828-0.401 4.313 0.001 0.181 0.049 0.379 0.022 0.545-0.090 0.862-0.577 1.437-0.783 1.765-0.855 0.126 0.511 0.105 1.063-0.094 1.595-0.086 0.235-0.039 0.503 0.142 0.693 0.505 0.53 0.816 1.248 0.816 2.040 0 2.050-0.743 2.963-1.63 3.442-0.415 0.224-0.895 0.37-1.415 0.467-0.215 0.040-0.434 0.071-0.655 0.095-0.14 0.015-0.279 0.076-0.389 0.183-0.265 0.256-0.272 0.678-0.016 0.943 0.045 0.046 0.087 0.095 0.125 0.146 0.227 0.299 0.348 0.677 0.317 1.079 0 0.016-0.001 0.034-0.002 0.052v2.58c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.528c0.035-0.456-0.037-0.895-0.195-1.295 0.518-0.114 1.042-0.285 1.531-0.549 1.389-0.749 2.331-2.161 2.331-4.615 0-1.002-0.344-1.925-0.919-2.654 0.237-0.897 0.151-1.817-0.195-2.622-0.081-0.189-0.239-0.321-0.423-0.376-0.238-0.071-1.155-0.206-2.915 0.908-1.515-0.361-3.038-0.339-4.431-0.001-1.759-1.113-2.675-0.977-2.913-0.907-0.197 0.059-0.347 0.2-0.423 0.377-0.369 0.861-0.416 1.781-0.195 2.621-0.62 0.785-0.925 1.734-0.919 2.678 0 2.415 0.926 3.815 2.294 4.573 0.501 0.277 1.040 0.457 1.571 0.578-0.123 0.312-0.191 0.641-0.203 0.971-0.003 0.094-0.002 0.188 0.003 0.282z\"></path>\n </svg>\n `\n },\n {\n name: 'gitlab',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>gitlab</title>\n <path d=\"M15.492 10.133c0.174-0.113 0.328-0.297 0.423-0.509 0.115-0.257 0.143-0.554 0.050-0.87l-0.844-2.499-1.621-4.989c-0.045-0.153-0.13-0.295-0.265-0.425-0.177-0.161-0.402-0.245-0.627-0.248-0.234-0.004-0.471 0.079-0.651 0.243-0.11 0.098-0.197 0.223-0.252 0.365-0.004 0.010-0.008 0.022-0.012 0.035l-1.478 4.545h-4.431l-1.471-4.515c-0.045-0.153-0.13-0.295-0.265-0.425-0.177-0.161-0.401-0.245-0.627-0.248-0.234-0.004-0.471 0.079-0.651 0.243-0.111 0.097-0.197 0.223-0.253 0.364-0.004 0.011-0.008 0.023-0.012 0.035l-1.627 5.008-0.813 2.52c-0.071 0.219-0.078 0.451-0.025 0.669 0.065 0.271 0.224 0.522 0.468 0.701l7.1 5.16c0.231 0.165 0.545 0.173 0.784 0zM14.669 9.083l-6.669 4.847-6.643-4.828 2.048-6.32 1.261 3.872c0.091 0.28 0.35 0.458 0.634 0.46h5.4c0.295 0 0.545-0.191 0.634-0.461l1.257-3.869 1.261 3.883z\"></path>\n </svg>\n `\n },\n {\n name: 'globe',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>globe</title>\n <path d=\"M11.301 7.333c-0.143-1.793-0.735-3.569-1.783-5.14 1.047 0.273 1.982 0.821 2.725 1.564 0.939 0.939 1.567 2.185 1.721 3.576zM9.519 13.806c0.989-1.484 1.624-3.235 1.779-5.139h2.665c-0.153 1.391-0.782 2.637-1.721 3.576-0.742 0.742-1.677 1.291-2.723 1.563zM4.699 8.667c0.143 1.793 0.735 3.569 1.783 5.14-1.047-0.273-1.982-0.821-2.725-1.564-0.939-0.939-1.567-2.185-1.721-3.576zM6.481 2.194c-0.988 1.484-1.624 3.235-1.779 5.139h-2.665c0.153-1.391 0.782-2.637 1.721-3.576 0.743-0.742 1.677-1.291 2.723-1.563zM7.998 0.667c-2.024 0.001-3.857 0.822-5.183 2.148s-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185c1.325 1.326 3.159 2.147 5.183 2.148 0.001 0 0.002 0 0.003 0s0.001 0 0.002 0c2.024-0.001 3.857-0.822 5.183-2.148s2.148-3.161 2.148-5.185-0.821-3.859-2.148-5.185c-1.325-1.326-3.159-2.147-5.183-2.148-0.001 0-0.002 0-0.003 0s-0.001 0-0.002 0zM9.964 8.667c-0.168 1.859-0.877 3.573-1.963 4.967-1.153-1.481-1.804-3.212-1.963-4.967zM7.999 2.366c1.153 1.481 1.804 3.212 1.963 4.967h-3.927c0.168-1.859 0.877-3.573 1.963-4.967z\"></path>\n </svg>\n `\n },\n {\n name: 'grid',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>grid</title>\n <path d=\"M2 1.333c-0.368 0-0.667 0.299-0.667 0.667v4.667c0 0.368 0.299 0.667 0.667 0.667h4.667c0.368 0 0.667-0.299 0.667-0.667v-4.667c0-0.368-0.299-0.667-0.667-0.667zM2.667 2.667h3.333v3.333h-3.333zM9.333 1.333c-0.368 0-0.667 0.299-0.667 0.667v4.667c0 0.368 0.299 0.667 0.667 0.667h4.667c0.368 0 0.667-0.299 0.667-0.667v-4.667c0-0.368-0.299-0.667-0.667-0.667zM10 2.667h3.333v3.333h-3.333zM9.333 8.667c-0.368 0-0.667 0.299-0.667 0.667v4.667c0 0.368 0.299 0.667 0.667 0.667h4.667c0.368 0 0.667-0.299 0.667-0.667v-4.667c0-0.368-0.299-0.667-0.667-0.667zM10 10h3.333v3.333h-3.333zM2 8.667c-0.368 0-0.667 0.299-0.667 0.667v4.667c0 0.368 0.299 0.667 0.667 0.667h4.667c0.368 0 0.667-0.299 0.667-0.667v-4.667c0-0.368-0.299-0.667-0.667-0.667zM2.667 10h3.333v3.333h-3.333z\"></path>\n </svg>\n `\n },\n {\n name: 'hard-drive',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>hard-drive</title>\n <path d=\"M14 8.667v3.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-3.333zM4.229 3.705c0.044-0.087 0.107-0.164 0.181-0.225 0.115-0.093 0.258-0.147 0.416-0.147h6.342c0.1 0.001 0.197 0.023 0.284 0.063 0.134 0.061 0.247 0.166 0.318 0.309l1.817 3.628h-11.175zM3.037 3.108l-2.294 4.581c-0.021 0.039-0.037 0.081-0.050 0.125-0.019 0.063-0.027 0.125-0.027 0.186v4c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4c0-0.101-0.022-0.195-0.061-0.278-0.003-0.007-0.007-0.014-0.010-0.021l-0.006-0.012-2.294-4.581c-0.21-0.423-0.553-0.741-0.955-0.925-0.259-0.118-0.541-0.181-0.829-0.183h-6.351c-0.474 0-0.911 0.166-1.255 0.445-0.221 0.179-0.403 0.404-0.534 0.663zM4.667 10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM7.333 10.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'hash',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>hash</title>\n <path d=\"M9.477 6.667l-0.296 2.667h-2.659l0.296-2.667zM10.004 1.927l-0.379 3.407h-2.659l0.362-3.26c0.041-0.366-0.223-0.695-0.589-0.736s-0.695 0.223-0.736 0.589l-0.379 3.407h-2.959c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.811l-0.296 2.667h-2.515c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.366l-0.362 3.26c-0.041 0.366 0.223 0.695 0.589 0.736s0.695-0.223 0.736-0.589l0.379-3.407h2.659l-0.362 3.26c-0.041 0.366 0.223 0.695 0.589 0.736s0.695-0.223 0.736-0.589l0.379-3.407h2.959c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.811l0.296-2.667h2.515c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.366l0.362-3.26c0.041-0.366-0.223-0.695-0.589-0.736s-0.695 0.223-0.736 0.589z\"></path>\n </svg>\n `\n },\n {\n name: 'headphones',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>headphones</title>\n <path d=\"M13.333 12.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-0.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h1.333v2zM2.667 12.667v-2.667h1.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v2c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-0.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471zM1.333 12.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h0.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-1.333v-0.667c0-1.473 0.596-2.805 1.562-3.771s2.299-1.562 3.771-1.562 2.805 0.596 3.771 1.562 1.562 2.299 1.562 3.771v0.667h-1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v2c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h0.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4.667c0-1.841-0.747-3.509-1.953-4.714s-2.873-1.953-4.714-1.953-3.509 0.747-4.714 1.953-1.953 2.873-1.953 4.714v4z\"></path>\n </svg>\n `\n },\n {\n name: 'heart',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>heart</title>\n <path d=\"M13.422 3.545c0.587 0.587 0.879 1.354 0.879 2.123s-0.293 1.535-0.879 2.121l-5.422 5.422-5.422-5.422c-0.586-0.586-0.879-1.353-0.879-2.122s0.293-1.536 0.879-2.122 1.353-0.879 2.122-0.879 1.536 0.293 2.122 0.879l0.707 0.707c0.261 0.261 0.683 0.261 0.943 0l0.708-0.708c0.586-0.586 1.353-0.879 2.121-0.878s1.535 0.293 2.121 0.879zM14.365 2.602c-0.846-0.846-1.956-1.269-3.064-1.27s-2.218 0.423-3.065 1.269l-0.236 0.237-0.235-0.235c-0.846-0.846-1.957-1.269-3.065-1.269s-2.219 0.423-3.065 1.269-1.269 1.957-1.269 3.065 0.423 2.219 1.269 3.065l5.893 5.893c0.261 0.261 0.683 0.261 0.943 0l5.893-5.893c0.846-0.846 1.269-1.956 1.27-3.064s-0.423-2.218-1.27-3.065z\"></path>\n </svg>\n `\n },\n {\n name: 'help-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>help-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM6.689 6.221c0.122-0.347 0.373-0.612 0.681-0.76s0.671-0.178 1.019-0.055c0.305 0.107 0.546 0.313 0.7 0.573 0.122 0.205 0.19 0.443 0.191 0.691 0 0.103-0.026 0.206-0.078 0.309-0.053 0.107-0.135 0.217-0.245 0.327-0.473 0.473-1.221 0.728-1.221 0.728-0.349 0.117-0.538 0.494-0.421 0.843s0.494 0.538 0.843 0.421c0 0 1.029-0.337 1.742-1.050 0.186-0.186 0.363-0.409 0.495-0.673 0.133-0.267 0.219-0.572 0.219-0.913-0.003-0.487-0.136-0.958-0.378-1.366-0.309-0.519-0.793-0.935-1.403-1.149-0.695-0.244-1.423-0.183-2.038 0.111s-1.119 0.825-1.363 1.52c-0.123 0.347 0.060 0.728 0.407 0.85s0.728-0.061 0.85-0.407zM8.667 11.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'hexagon',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>hexagon</title>\n <path d=\"M13.333 10.667c-0.001 0.081-0.017 0.164-0.047 0.241-0.053 0.137-0.15 0.256-0.284 0.333l-4.666 2.666c-0.075 0.043-0.155 0.070-0.237 0.083-0.145 0.023-0.297-0.002-0.436-0.083l-4.661-2.663c-0.074-0.043-0.138-0.099-0.19-0.163-0.093-0.115-0.147-0.258-0.147-0.415v-5.329c0.001-0.085 0.017-0.169 0.047-0.246 0.053-0.137 0.15-0.256 0.284-0.333l4.666-2.666c0.075-0.043 0.155-0.070 0.237-0.083 0.145-0.023 0.297 0.002 0.436 0.083l4.661 2.663c0.074 0.043 0.138 0.099 0.19 0.163 0.093 0.115 0.147 0.258 0.147 0.415zM14.667 10.667v-5.333c-0.001-0.473-0.165-0.909-0.443-1.252-0.153-0.191-0.341-0.352-0.554-0.477l-4.673-2.67c-0.407-0.235-0.867-0.31-1.302-0.243-0.243 0.038-0.477 0.119-0.692 0.242l-4.667 2.667c-0.412 0.237-0.707 0.598-0.866 1.009-0.089 0.228-0.135 0.471-0.137 0.718v5.338c0.001 0.473 0.165 0.909 0.443 1.252 0.153 0.191 0.341 0.352 0.554 0.477l4.673 2.67c0.407 0.235 0.867 0.31 1.302 0.243 0.243-0.038 0.477-0.119 0.692-0.242l4.667-2.667c0.412-0.238 0.707-0.599 0.866-1.009 0.089-0.228 0.135-0.471 0.137-0.723z\"></path>\n </svg>\n `\n },\n {\n name: 'home',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>home</title>\n <path d=\"M1.591 5.474c-0.157 0.123-0.257 0.313-0.257 0.526v7.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-7.333c-0.001-0.2-0.089-0.395-0.257-0.526l-6-4.667c-0.239-0.183-0.574-0.19-0.819 0zM10.667 14v-6c0-0.368-0.299-0.667-0.667-0.667h-4c-0.368 0-0.667 0.299-0.667 0.667v6h-2c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-7.007l5.333-4.148 5.333 4.148v7.007c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195zM6.667 14v-5.333h2.667v5.333z\"></path>\n </svg>\n `\n },\n {\n name: 'image',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>image</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM7.333 5.667c0-0.46-0.187-0.877-0.488-1.179s-0.719-0.488-1.179-0.488-0.877 0.187-1.179 0.488-0.488 0.719-0.488 1.179 0.187 0.877 0.488 1.179 0.719 0.488 1.179 0.488 0.877-0.187 1.179-0.488 0.488-0.719 0.488-1.179zM6 5.667c0 0.092-0.037 0.175-0.097 0.236s-0.144 0.097-0.236 0.097-0.175-0.037-0.236-0.097-0.097-0.144-0.097-0.236 0.037-0.175 0.097-0.236 0.144-0.097 0.236-0.097 0.175 0.037 0.236 0.097 0.097 0.144 0.097 0.236zM4.943 13.333l5.724-5.724 2.667 2.667v2.391c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195zM13.333 8.391l-2.195-2.195c-0.261-0.261-0.683-0.261-0.943 0l-7.096 7.096c-0.090-0.033-0.17-0.086-0.237-0.153-0.121-0.121-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'inbox',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>inbox</title>\n <path d=\"M14 8.667v3.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-3.333h2.977l1.135 1.703c0.121 0.18 0.324 0.297 0.555 0.297h2.667c0.217-0.001 0.427-0.105 0.555-0.297l1.135-1.703zM4.229 3.705c0.044-0.087 0.107-0.164 0.181-0.225 0.115-0.093 0.258-0.147 0.416-0.147h6.342c0.1 0.001 0.197 0.023 0.284 0.063 0.134 0.061 0.247 0.166 0.318 0.309l1.817 3.628h-2.921c-0.231 0-0.433 0.117-0.555 0.297l-1.135 1.703h-1.953l-1.135-1.703c-0.128-0.191-0.337-0.295-0.555-0.297h-2.921zM3.037 3.108l-2.294 4.581c-0.021 0.039-0.037 0.081-0.050 0.125-0.019 0.063-0.027 0.125-0.027 0.186v4c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4c0-0.101-0.022-0.195-0.061-0.278-0.003-0.007-0.007-0.014-0.010-0.021l-0.006-0.012-2.294-4.581c-0.21-0.423-0.553-0.741-0.955-0.925-0.259-0.118-0.541-0.181-0.829-0.183h-6.351c-0.474 0-0.911 0.166-1.255 0.445-0.221 0.179-0.403 0.404-0.534 0.663z\"></path>\n </svg>\n `\n },\n {\n name: 'info',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>info</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM8.667 10.667v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM8.667 5.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'instagram',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>instagram</title>\n <path d=\"M4.667 0.667c-1.105 0-2.105 0.449-2.829 1.171s-1.171 1.724-1.171 2.829v6.667c0 1.105 0.449 2.105 1.171 2.829s1.724 1.171 2.829 1.171h6.667c1.105 0 2.105-0.449 2.829-1.171s1.171-1.724 1.171-2.829v-6.667c0-1.105-0.449-2.105-1.171-2.829s-1.724-1.171-2.829-1.171zM4.667 2h6.667c0.737 0 1.402 0.298 1.885 0.781s0.781 1.149 0.781 1.885v6.667c0 0.737-0.298 1.402-0.781 1.885s-1.149 0.781-1.885 0.781h-6.667c-0.737 0-1.402-0.298-1.885-0.781s-0.781-1.149-0.781-1.885v-6.667c0-0.737 0.298-1.402 0.781-1.885s1.149-0.781 1.885-0.781zM11.326 7.482c-0.1-0.648-0.381-1.238-0.796-1.711-0.503-0.574-1.203-0.977-2.006-1.096-0.309-0.049-0.647-0.051-0.985-0.001-0.911 0.135-1.681 0.627-2.188 1.311s-0.755 1.565-0.62 2.475 0.627 1.681 1.311 2.188 1.565 0.755 2.475 0.62 1.681-0.627 2.188-1.311 0.755-1.565 0.62-2.475zM10.007 7.678c0.081 0.547-0.067 1.073-0.372 1.485s-0.767 0.706-1.313 0.787-1.073-0.067-1.485-0.372-0.706-0.767-0.787-1.313 0.067-1.073 0.372-1.485 0.767-0.706 1.313-0.787c0.209-0.031 0.41-0.028 0.58-0.001 0.493 0.073 0.911 0.313 1.212 0.657 0.25 0.285 0.42 0.642 0.48 1.029zM12.333 4.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'italic',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>italic</title>\n <path d=\"M9.038 3.333l-3.5 9.333h-2.205c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h6c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.371l3.5-9.333h2.205c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-6c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'key',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>key</title>\n <path d=\"M12.667 3.609l1.057 1.057-1.391 1.391-1.057-1.057zM7.125 8.215c0.589 0.582 0.887 1.347 0.893 2.115s-0.283 1.537-0.865 2.127-1.347 0.888-2.115 0.893-1.537-0.283-2.127-0.865l-0.028-0.028c-0.583-0.59-0.87-1.359-0.865-2.127s0.303-1.533 0.893-2.115c0.586-0.578 1.349-0.866 2.113-0.864 0.761 0.001 1.519 0.29 2.101 0.864zM12.195 2.195c-0.261 0.261-0.261 0.683 0 0.943l0.471 0.471 0.943-0.943-0.471-0.471c-0.261-0.261-0.683-0.261-0.943 0zM12.195 2.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0 0.261-0.683 0-0.943-0.683-0.261-0.943 0l-2.333 2.333c-0.261 0.261-0.261 0.683 0 0.943l0.471 0.471 0.943-0.943-0.471-0.471c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943 0.683 0.261 0.943 0 0.261-0.683 0-0.943-0.683-0.261-0.943 0l-2.307 2.307c-0.753-0.544-1.641-0.817-2.529-0.819-1.101-0.002-2.205 0.413-3.051 1.249-0.851 0.84-1.282 1.947-1.29 3.055s0.409 2.221 1.249 3.073l0.041 0.041c0.851 0.84 1.965 1.256 3.073 1.249s2.215-0.438 3.055-1.29 1.256-1.965 1.249-3.073c-0.006-0.897-0.289-1.793-0.849-2.547l1.831-1.831 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0l2.333-2.333c0.261-0.261 0.261-0.683 0-0.943l-1.529-1.529 0.862-0.862c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'layers',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>layers</title>\n <path d=\"M8 2.079l5.176 2.588-5.176 2.588-5.176-2.588zM7.702 0.737l-6.667 3.333c-0.329 0.165-0.463 0.565-0.298 0.894 0.067 0.135 0.174 0.237 0.298 0.298l6.667 3.333c0.195 0.097 0.413 0.091 0.596 0l6.667-3.333c0.329-0.165 0.463-0.565 0.298-0.895-0.067-0.135-0.175-0.237-0.298-0.298l-6.667-3.333c-0.195-0.097-0.413-0.091-0.596 0zM1.035 11.929l6.667 3.333c0.195 0.097 0.413 0.091 0.596 0l6.667-3.333c0.329-0.165 0.463-0.565 0.298-0.895s-0.565-0.463-0.895-0.298l-6.368 3.185-6.369-3.184c-0.329-0.165-0.73-0.031-0.895 0.298s-0.031 0.73 0.298 0.895zM1.035 8.596l6.667 3.333c0.195 0.097 0.413 0.091 0.596 0l6.667-3.333c0.329-0.165 0.463-0.565 0.298-0.895s-0.565-0.463-0.895-0.298l-6.368 3.185-6.369-3.184c-0.329-0.165-0.73-0.031-0.895 0.298s-0.031 0.73 0.298 0.895z\"></path>\n </svg>\n `\n },\n {\n name: 'layout',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>layout</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM13.333 5.333h-10.667v-2c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471zM5.333 6.667v6.667h-2c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6zM6.667 13.333v-6.667h6.667v6c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'life-buoy',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>life-buoy</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM10 8c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM11.745 3.312l-1.907 1.907c0 0 0 0 0 0-0.527-0.349-1.159-0.552-1.839-0.552s-1.311 0.203-1.838 0.553l-1.907-1.907c1.026-0.822 2.328-1.313 3.745-1.313s2.719 0.491 3.745 1.312zM12.688 4.255c0.821 1.027 1.312 2.329 1.312 3.745s-0.491 2.719-1.312 3.745l-1.907-1.907c0.349-0.527 0.552-1.159 0.552-1.839s-0.203-1.311-0.553-1.838zM5.219 9.838l-1.907 1.907c-0.822-1.026-1.313-2.328-1.313-3.745s0.491-2.719 1.312-3.745l1.907 1.907c-0.349 0.527-0.552 1.159-0.552 1.839s0.203 1.311 0.553 1.838zM4.255 12.688l1.907-1.907c0.527 0.349 1.159 0.552 1.839 0.552s1.311-0.203 1.838-0.553l1.907 1.907c-1.026 0.822-2.328 1.313-3.745 1.313s-2.719-0.491-3.745-1.312z\"></path>\n </svg>\n `\n },\n {\n name: 'link-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>link-2</title>\n <path d=\"M10 5.333h2c0.737 0 1.402 0.298 1.885 0.781s0.781 1.149 0.781 1.885-0.298 1.402-0.781 1.885-1.149 0.781-1.885 0.781h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2c1.105 0 2.105-0.449 2.829-1.171s1.171-1.724 1.171-2.829-0.449-2.105-1.171-2.829-1.724-1.171-2.829-1.171h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM6 10.667h-2c-0.737 0-1.402-0.298-1.885-0.781s-0.781-1.149-0.781-1.885 0.298-1.402 0.781-1.885 1.149-0.781 1.885-0.781h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2c-1.105 0-2.105 0.449-2.829 1.171s-1.171 1.724-1.171 2.829 0.449 2.105 1.171 2.829 1.724 1.171 2.829 1.171h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM5.333 8.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'link',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>link</title>\n <path d=\"M6.133 9.066c0.661 0.885 1.62 1.417 2.632 1.563s2.082-0.095 2.967-0.756c0.159-0.119 0.31-0.25 0.437-0.379l1.997-1.996c0.775-0.803 1.148-1.834 1.131-2.857s-0.426-2.041-1.221-2.807c-0.781-0.755-1.793-1.128-2.799-1.122-0.995 0.005-1.989 0.381-2.758 1.122l-1.154 1.147c-0.261 0.259-0.263 0.682-0.003 0.943s0.682 0.263 0.943 0.003l1.139-1.133c0.513-0.495 1.175-0.745 1.84-0.749 0.673-0.004 1.345 0.245 1.865 0.748 0.53 0.512 0.802 1.189 0.814 1.872s-0.237 1.369-0.74 1.891l-2.003 2.004c-0.076 0.077-0.175 0.165-0.285 0.247-0.59 0.441-1.301 0.601-1.978 0.504s-1.314-0.452-1.755-1.042c-0.221-0.295-0.638-0.355-0.933-0.135s-0.355 0.638-0.135 0.933zM9.867 6.934c-0.661-0.885-1.62-1.417-2.632-1.563s-2.083 0.095-2.967 0.756c-0.159 0.119-0.309 0.25-0.437 0.379l-1.997 1.996c-0.775 0.803-1.148 1.834-1.131 2.857s0.426 2.041 1.221 2.807c0.781 0.755 1.793 1.128 2.799 1.122 0.995-0.005 1.989-0.381 2.758-1.122l1.149-1.149c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.131 1.133c-0.513 0.495-1.175 0.745-1.84 0.749-0.673 0.004-1.345-0.245-1.865-0.748-0.53-0.512-0.802-1.189-0.814-1.872s0.237-1.369 0.74-1.891l2.003-2.004c0.076-0.077 0.175-0.165 0.285-0.247 0.59-0.441 1.301-0.601 1.978-0.504s1.314 0.452 1.755 1.042c0.221 0.295 0.638 0.355 0.933 0.135s0.355-0.638 0.135-0.933z\"></path>\n </svg>\n `\n },\n {\n name: 'linkedin',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>linkedin</title>\n <path d=\"M10.667 4.667c-1.289 0-2.456 0.523-3.3 1.367s-1.367 2.011-1.367 3.3v4.667c0 0.368 0.299 0.667 0.667 0.667h2.667c0.368 0 0.667-0.299 0.667-0.667v-4.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195 0.35 0.074 0.471 0.195 0.195 0.287 0.195 0.471v4.667c0 0.368 0.299 0.667 0.667 0.667h2.667c0.368 0 0.667-0.299 0.667-0.667v-4.667c0-1.289-0.523-2.456-1.367-3.3s-2.011-1.367-3.3-1.367zM10.667 6c0.921 0 1.753 0.373 2.357 0.976s0.976 1.437 0.976 2.357v4h-1.333v-4c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414v4h-1.333v-4c0-0.921 0.373-1.753 0.976-2.357s1.437-0.976 2.357-0.976zM1.333 5.333c-0.368 0-0.667 0.299-0.667 0.667v8c0 0.368 0.299 0.667 0.667 0.667h2.667c0.368 0 0.667-0.299 0.667-0.667v-8c0-0.368-0.299-0.667-0.667-0.667zM2 6.667h1.333v6.667h-1.333zM4.667 2.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM3.333 2.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195-0.35-0.074-0.471-0.195-0.195-0.287-0.195-0.471 0.074-0.35 0.195-0.471 0.287-0.195 0.471-0.195 0.35 0.074 0.471 0.195 0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'list',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>list</title>\n <path d=\"M5.333 4.667h8.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-8.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM5.333 8.667h8.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-8.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM5.333 12.667h8.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-8.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM2.667 4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM2.667 8c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM2.667 12c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'loader',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>loader</title>\n <path d=\"M7.333 1.333v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 12v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM2.815 3.758l1.887 1.887c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.887-1.887c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM10.355 11.298l1.887 1.887c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.887-1.887c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM1.333 8.667h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM12 8.667h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM3.758 13.185l1.887-1.887c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.887 1.887c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM11.298 5.645l1.887-1.887c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.887 1.887c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'lock',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>lock</title>\n <path d=\"M3.333 8h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v4.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-4.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM12 6.667v-2c0-1.105-0.449-2.105-1.171-2.829s-1.724-1.171-2.829-1.171-2.105 0.449-2.829 1.171-1.171 1.724-1.171 2.829v2h-0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v4.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM5.333 6.667v-2c0-0.737 0.298-1.402 0.781-1.885s1.149-0.781 1.885-0.781 1.402 0.298 1.885 0.781 0.781 1.149 0.781 1.885v2z\"></path>\n </svg>\n `\n },\n {\n name: 'log-in',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>log-in</title>\n <path d=\"M10 2.667h2.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM8.391 7.333h-6.391c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h6.391l-2.195 2.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.333-3.333c0.064-0.064 0.112-0.137 0.145-0.216s0.051-0.165 0.051-0.255c0-0.087-0.017-0.174-0.051-0.255-0.033-0.079-0.081-0.152-0.145-0.216l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'log-out',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>log-out</title>\n <path d=\"M6 13.333h-2.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h2.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM12.391 7.333h-6.391c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h6.391l-2.195 2.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.333-3.333c0.064-0.064 0.112-0.137 0.145-0.216 0.1-0.241 0.052-0.53-0.145-0.727l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'mail',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>mail</title>\n <path d=\"M2 5.281l5.618 3.933c0.227 0.157 0.53 0.164 0.765 0l5.617-3.933v6.719c0 0.181-0.073 0.347-0.197 0.47s-0.289 0.197-0.47 0.197h-10.667c-0.181 0-0.347-0.073-0.47-0.197s-0.197-0.289-0.197-0.47zM0.667 4.008v7.992c0 0.552 0.227 1.053 0.587 1.413s0.861 0.587 1.413 0.587h10.667c0.552 0 1.053-0.227 1.413-0.587s0.587-0.861 0.587-1.413v-7.992c0-0.007 0-0.013 0-0.020-0.003-0.547-0.229-1.043-0.587-1.401-0.361-0.36-0.861-0.587-1.413-0.587h-10.667c-0.552 0-1.053 0.227-1.413 0.587-0.358 0.358-0.583 0.854-0.587 1.402 0 0.003 0 0.007 0 0.011zM13.929 3.703l-5.929 4.15-5.929-4.15c0.032-0.064 0.075-0.122 0.125-0.173 0.123-0.123 0.289-0.197 0.471-0.197h10.667c0.181 0 0.347 0.073 0.47 0.197 0.051 0.051 0.093 0.109 0.125 0.173z\"></path>\n </svg>\n `\n },\n {\n name: 'map-pin',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>map-pin</title>\n <path d=\"M14.667 6.667c0-1.841-0.747-3.509-1.953-4.714s-2.873-1.953-4.714-1.953-3.509 0.747-4.714 1.953-1.953 2.873-1.953 4.714c0 0.379 0.035 0.752 0.1 1.117 0.183 1.032 0.599 2.003 1.121 2.88 1.821 3.061 5.075 5.224 5.075 5.224 0.221 0.145 0.51 0.153 0.739 0 0 0 3.255-2.163 5.075-5.224 0.522-0.877 0.939-1.848 1.121-2.88 0.065-0.365 0.101-0.738 0.101-1.117zM13.333 6.667c0 0.296-0.027 0.591-0.079 0.885-0.147 0.833-0.491 1.652-0.955 2.431-1.301 2.187-3.444 3.901-4.299 4.533-0.856-0.632-2.998-2.346-4.299-4.533-0.463-0.779-0.807-1.597-0.955-2.431-0.052-0.294-0.079-0.589-0.079-0.885 0-1.473 0.596-2.805 1.562-3.771s2.299-1.562 3.771-1.562 2.805 0.596 3.771 1.562 1.562 2.299 1.562 3.771zM10.667 6.667c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM9.333 6.667c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'map',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>map</title>\n <path d=\"M4.667 2.482v9.131l-3.333 1.905v-9.131zM11.333 13.518v-9.131l3.333-1.905v9.131zM10.357 15.257c0.055 0.029 0.113 0.050 0.176 0.063 0.044 0.009 0.089 0.014 0.134 0.014 0.115 0 0.229-0.031 0.331-0.088l0.010-0.006 4.657-2.661c0.214-0.122 0.335-0.345 0.336-0.579v-10.667c0-0.368-0.299-0.667-0.667-0.667-0.122 0-0.236 0.033-0.331 0.088l-4.357 2.489-5.002-2.501c-0.055-0.028-0.114-0.050-0.176-0.063-0.045-0.009-0.090-0.013-0.135-0.013-0.116 0-0.23 0.031-0.331 0.088l-0.010 0.005-4.657 2.661c-0.214 0.122-0.335 0.345-0.336 0.579v10.667c0 0.368 0.299 0.667 0.667 0.667 0.122 0 0.236-0.033 0.331-0.088l4.357-2.489zM10 4.412v9.176l-4-2v-9.176z\"></path>\n </svg>\n `\n },\n {\n name: 'maximize-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>maximize-2</title>\n <path d=\"M12.391 2.667l-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.529-3.529v2.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM3.609 13.333l3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.529 3.529v-2.391c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4c0 0.091 0.018 0.177 0.051 0.255s0.081 0.152 0.144 0.215c0.001 0.001 0.001 0.001 0.001 0.001 0.061 0.061 0.135 0.111 0.215 0.144 0.079 0.033 0.165 0.051 0.255 0.051h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'maximize',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>maximize</title>\n <path d=\"M5.333 1.333h-2c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM14.667 5.333v-2c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM10.667 14.667h2c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM1.333 10.667v2c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'meh',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>meh</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM5.333 10.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'menu',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>menu</title>\n <path d=\"M2 8.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM2 4.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM2 12.667h12c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-12c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'message-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>message-circle</title>\n <path d=\"M14.667 7.665v-0.331c0-0.011-0.001-0.025-0.001-0.039-0.091-1.559-0.742-2.974-1.762-4.034-1.068-1.111-2.543-1.835-4.201-1.926-0.010-0.001-0.023-0.001-0.036-0.001h-0.326c-0.937-0.011-1.921 0.207-2.843 0.672-0.815 0.415-1.527 0.993-2.093 1.691-0.881 1.089-1.405 2.469-1.405 3.963-0.009 0.85 0.169 1.74 0.549 2.585l-1.181 3.545c-0.044 0.131-0.048 0.279 0 0.421 0.117 0.349 0.494 0.538 0.843 0.421l3.543-1.181c0.773 0.351 1.656 0.551 2.584 0.549 0.915-0.006 1.81-0.205 2.627-0.577 1.275-0.581 2.36-1.582 3.027-2.917 0.429-0.833 0.677-1.81 0.674-2.841zM13.333 7.669c0.002 0.817-0.195 1.583-0.526 2.226-0.534 1.068-1.388 1.856-2.395 2.315-0.647 0.295-1.357 0.453-2.084 0.458-0.814 0.002-1.581-0.195-2.223-0.526-0.166-0.086-0.352-0.095-0.517-0.040l-2.535 0.845 0.845-2.535c0.059-0.175 0.040-0.358-0.037-0.511-0.368-0.73-0.536-1.503-0.528-2.226 0.001-1.193 0.413-2.279 1.108-3.139 0.447-0.552 1.012-1.011 1.661-1.34 0.728-0.368 1.501-0.536 2.224-0.528h0.304c1.308 0.071 2.469 0.641 3.313 1.517 0.801 0.834 1.315 1.944 1.391 3.169z\"></path>\n </svg>\n `\n },\n {\n name: 'message-square',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>message-square</title>\n <path d=\"M14.667 10v-6.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-9.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.171 0.065 0.341 0.195 0.471 0.261 0.261 0.683 0.261 0.943 0l2.471-2.471h7.724c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414zM13.333 10c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.351 0.075-0.471 0.195l-1.529 1.529v-9.057c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'mic-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>mic-off</title>\n <path d=\"M8.344 9.287c-0.109 0.029-0.224 0.045-0.343 0.045-0.369 0-0.701-0.148-0.943-0.39s-0.391-0.573-0.391-0.941v-0.391zM10.667 6.227v-3.56c0.001-0.735-0.298-1.403-0.779-1.886s-1.149-0.782-1.885-0.783c-0.676-0.001-1.295 0.251-1.766 0.668-0.424 0.375-0.728 0.885-0.849 1.465-0.075 0.361 0.156 0.713 0.517 0.789s0.713-0.156 0.789-0.517c0.061-0.293 0.215-0.55 0.427-0.738 0.235-0.209 0.543-0.333 0.881-0.333 0.369 0.001 0.701 0.149 0.943 0.391s0.39 0.575 0.389 0.944v3.56c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM12 6.667v1.333c0 0.251-0.023 0.493-0.062 0.697-0.068 0.362 0.17 0.711 0.532 0.779s0.711-0.17 0.779-0.532c0.055-0.29 0.085-0.615 0.085-0.943v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM5.333 16h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2v-1.341c0.935-0.117 1.845-0.482 2.623-1.093l3.572 3.572c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.892-3.892c-0.030-0.053-0.067-0.102-0.113-0.146-0.042-0.041-0.088-0.075-0.137-0.103l-10.525-10.525c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l5.138 5.138v1.724c0.001 0.737 0.301 1.404 0.783 1.885s1.15 0.78 1.886 0.779c0.493-0.001 0.955-0.135 1.351-0.369l0.985 0.985c-0.639 0.462-1.385 0.712-2.141 0.749-0.063-0.019-0.129-0.029-0.197-0.029s-0.134 0.010-0.197 0.029c-0.945-0.046-1.875-0.425-2.603-1.138-0.769-0.753-1.169-1.738-1.199-2.737l-0.001-1.488c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667l0.003 1.528c0.040 1.329 0.574 2.645 1.599 3.649 0.865 0.849 1.949 1.342 3.065 1.482v1.341h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'mic',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>mic</title>\n <path d=\"M8 1.333c0.369 0 0.701 0.149 0.943 0.391s0.391 0.574 0.391 0.943v5.333c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943v-5.333c0-0.369 0.149-0.701 0.391-0.943s0.574-0.391 0.943-0.391zM8 0c-0.736 0-1.404 0.299-1.885 0.781s-0.781 1.149-0.781 1.885v5.333c0 0.736 0.299 1.404 0.781 1.885s1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885v-5.333c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781zM5.333 16h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2v-1.375c1.206-0.151 2.288-0.704 3.105-1.521 0.964-0.965 1.562-2.299 1.562-3.771v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333c0 1.105-0.447 2.104-1.171 2.829s-1.724 1.171-2.829 1.171-2.104-0.447-2.829-1.171-1.171-1.724-1.171-2.829v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333c0 1.473 0.598 2.807 1.562 3.771 0.817 0.817 1.898 1.37 3.105 1.521v1.375h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'minimize-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>minimize-2</title>\n <path d=\"M10.943 6l3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.529 3.529v-2.391c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4c0 0.091 0.018 0.177 0.051 0.255s0.081 0.152 0.144 0.215c0.001 0.001 0.001 0.001 0.001 0.001 0.061 0.061 0.135 0.111 0.215 0.144 0.079 0.033 0.165 0.051 0.255 0.051h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM2.471 14.471l3.529-3.529v2.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.391l-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'minimize',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>minimize</title>\n <path d=\"M4.667 2v2c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM14 4.667h-2c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM11.333 14v-2c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM2 11.333h2c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'minus-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>minus-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM5.333 8.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'minus-square',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>minus-square</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM3.333 2.667h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM5.333 8.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'minus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>minus</title>\n <path d=\"M3.333 8.667h9.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-9.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'monitor',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>monitor</title>\n <path d=\"M8 10.667h-5.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v6.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195zM7.333 12v1.333h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2v-1.333h4.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-6.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-10.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v6.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586z\"></path>\n </svg>\n `\n },\n {\n name: 'moon',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>moon</title>\n <path d=\"M14.664 8.588c0.015-0.155-0.025-0.317-0.125-0.454-0.217-0.297-0.634-0.363-0.931-0.146-0.633 0.462-1.373 0.724-2.125 0.775-0.912 0.061-1.844-0.189-2.633-0.772-0.889-0.657-1.426-1.61-1.578-2.623s0.083-2.083 0.739-2.971c0.095-0.127 0.144-0.29 0.127-0.461-0.035-0.367-0.361-0.635-0.728-0.599-1.505 0.147-2.876 0.787-3.93 1.767-1.157 1.077-1.935 2.565-2.091 4.257-0.169 1.833 0.421 3.562 1.511 4.874s2.681 2.209 4.515 2.378 3.562-0.421 4.874-1.511 2.209-2.681 2.378-4.515zM13.045 9.783c-0.327 0.909-0.89 1.695-1.611 2.294-1.051 0.873-2.432 1.344-3.899 1.209s-2.739-0.852-3.611-1.903-1.344-2.432-1.209-3.899c0.125-1.355 0.745-2.543 1.671-3.404 0.521-0.485 1.14-0.867 1.821-1.115-0.304 0.843-0.385 1.737-0.256 2.599 0.202 1.349 0.92 2.623 2.104 3.498 1.053 0.778 2.299 1.112 3.515 1.030 0.501-0.033 0.997-0.138 1.473-0.31z\"></path>\n </svg>\n `\n },\n {\n name: 'more-horizontal',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>more-horizontal</title>\n <path d=\"M9.333 8c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943zM14 8c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943zM4.667 8c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'more-vertical',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>more-vertical</title>\n <path d=\"M9.333 8c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943zM9.333 3.333c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943zM9.333 12.667c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'mouse-pointer',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>mouse-pointer</title>\n <path d=\"M3.238 3.238l8.189 3.412-3.255 1.105c-0.19 0.065-0.348 0.213-0.417 0.417l-1.105 3.255zM8.673 9.616l3.522 3.522c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.522-3.522 3.912-1.329c0.349-0.119 0.535-0.497 0.417-0.845-0.064-0.189-0.204-0.329-0.375-0.401l-11.313-4.713c-0.34-0.141-0.73 0.019-0.872 0.359-0.071 0.171-0.066 0.355 0 0.513l4.713 11.313c0.141 0.34 0.532 0.501 0.872 0.359 0.183-0.077 0.315-0.225 0.375-0.401z\"></path>\n </svg>\n `\n },\n {\n name: 'move',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>move</title>\n <path d=\"M7.333 2.943v4.391h-4.391l0.862-0.862c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2 2c-0.064 0.064-0.112 0.137-0.145 0.216-0.034 0.081-0.051 0.169-0.051 0.255 0 0.171 0.065 0.341 0.195 0.471l2 2c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-0.862-0.862h4.391v4.391l-0.862-0.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2 2c0.064 0.064 0.137 0.112 0.216 0.145s0.165 0.051 0.255 0.051c0.087 0 0.174-0.017 0.255-0.051 0.079-0.033 0.152-0.081 0.216-0.145l2-2c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-0.862 0.862v-4.391h4.391l-0.862 0.862c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2-2c0.064-0.064 0.112-0.137 0.145-0.216 0.1-0.241 0.052-0.53-0.145-0.727l-2-2c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l0.862 0.862h-4.391v-4.391l0.862 0.862c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2-2c-0.064-0.064-0.137-0.112-0.216-0.145s-0.165-0.051-0.255-0.051c-0.087 0-0.174 0.017-0.255 0.051-0.079 0.033-0.152 0.081-0.216 0.145l-2 2c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'music',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>music</title>\n <path d=\"M5.333 12c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM14.667 10.667v-8.667c0-0.033-0.003-0.071-0.009-0.109-0.061-0.363-0.404-0.609-0.767-0.548l-8 1.333c-0.317 0.054-0.557 0.328-0.557 0.657v6.357c-0.392-0.227-0.848-0.357-1.333-0.357-0.736 0-1.404 0.299-1.885 0.781s-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885v-8.102l6.667-1.111v5.57c-0.392-0.227-0.848-0.357-1.333-0.357-0.736 0-1.404 0.299-1.885 0.781s-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM13.333 10.667c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'navigation-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>navigation-2</title>\n <path d=\"M8.625 1.103c-0.066-0.177-0.205-0.325-0.395-0.395-0.345-0.127-0.729 0.049-0.856 0.395l-4.667 12.667c-0.065 0.179-0.055 0.384 0.047 0.561 0.183 0.32 0.59 0.431 0.909 0.248l4.337-2.477 4.336 2.477c0.166 0.094 0.369 0.117 0.561 0.047 0.345-0.127 0.523-0.511 0.395-0.856zM8 3.262l3.409 9.251-3.078-1.759c-0.211-0.121-0.461-0.113-0.661 0l-3.078 1.759z\"></path>\n </svg>\n `\n },\n {\n name: 'navigation',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>navigation</title>\n <path d=\"M1.715 6.731c-0.175 0.083-0.311 0.24-0.361 0.441-0.089 0.357 0.128 0.719 0.485 0.809l4.945 1.236 1.236 4.945c0.047 0.187 0.174 0.352 0.361 0.441 0.333 0.157 0.73 0.015 0.888-0.317l6-12.667c0.083-0.175 0.089-0.383 0-0.571-0.157-0.333-0.555-0.475-0.888-0.317zM3.969 7.139l9.297-4.404-4.404 9.297-0.881-3.527c-0.061-0.246-0.252-0.425-0.485-0.485z\"></path>\n </svg>\n `\n },\n {\n name: 'octagon',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>octagon</title>\n <path d=\"M5.24 0.667c-0.171 0-0.341 0.065-0.471 0.195l-3.907 3.907c-0.121 0.121-0.195 0.287-0.195 0.471v5.52c0 0.171 0.065 0.341 0.195 0.471l3.907 3.907c0.121 0.121 0.287 0.195 0.471 0.195h5.52c0.171 0 0.341-0.065 0.471-0.195l3.907-3.907c0.121-0.121 0.195-0.287 0.195-0.471v-5.52c0-0.171-0.065-0.341-0.195-0.471l-3.907-3.907c-0.121-0.121-0.287-0.195-0.471-0.195zM5.516 2h4.968l3.516 3.516v4.968l-3.516 3.516h-4.968l-3.516-3.516v-4.968z\"></path>\n </svg>\n `\n },\n {\n name: 'package',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>package</title>\n <path d=\"M9.671 6.27l-1.671 0.967-4.641-2.685 1.674-0.957zM12.641 4.552l-1.637 0.947-4.629-2.67 1.289-0.737c0.075-0.043 0.155-0.070 0.237-0.083 0.145-0.023 0.297 0.002 0.436 0.083zM7.684 15.307c0.094 0.051 0.202 0.079 0.316 0.079 0.115 0 0.224-0.029 0.319-0.081 0.237-0.039 0.467-0.12 0.678-0.24l4.667-2.667c0.412-0.238 0.707-0.599 0.866-1.009 0.089-0.228 0.135-0.471 0.137-0.723v-5.333c0-0.319-0.075-0.621-0.209-0.889-0.015-0.047-0.035-0.093-0.061-0.138-0.031-0.053-0.067-0.099-0.108-0.14-0.021-0.029-0.043-0.057-0.065-0.085-0.153-0.191-0.341-0.352-0.554-0.477l-4.673-2.67c-0.407-0.235-0.867-0.31-1.302-0.243-0.243 0.038-0.477 0.119-0.692 0.242l-2.133 1.219c-0.14 0.027-0.271 0.1-0.369 0.211l-2.166 1.238c-0.255 0.147-0.466 0.342-0.627 0.567-0.040 0.040-0.076 0.087-0.106 0.138-0.026 0.045-0.047 0.092-0.061 0.14-0.027 0.054-0.051 0.109-0.072 0.164-0.088 0.229-0.134 0.472-0.136 0.719v5.338c0.001 0.473 0.165 0.909 0.443 1.252 0.153 0.191 0.341 0.352 0.554 0.477l4.673 2.67c0.216 0.125 0.447 0.205 0.681 0.241zM7.333 8.391v5.327l-4.33-2.474c-0.074-0.043-0.138-0.099-0.19-0.163-0.093-0.115-0.147-0.258-0.147-0.415v-4.975zM8.667 13.719v-5.327l4.667-2.699v4.975c-0.001 0.081-0.017 0.164-0.047 0.241-0.053 0.137-0.15 0.256-0.284 0.333z\"></path>\n </svg>\n `\n },\n {\n name: 'paperclip',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>paperclip</title>\n <path d=\"M13.822 6.895l-6.127 6.127c-0.651 0.651-1.504 0.977-2.359 0.977s-1.707-0.325-2.359-0.977-0.977-1.504-0.977-2.359 0.325-1.707 0.977-2.359l6.127-6.127c0.391-0.391 0.902-0.586 1.415-0.586s1.024 0.195 1.415 0.586 0.586 0.902 0.586 1.415-0.195 1.024-0.586 1.415l-6.133 6.127c-0.131 0.131-0.301 0.196-0.472 0.196s-0.341-0.065-0.472-0.195-0.195-0.3-0.195-0.472 0.065-0.341 0.195-0.472l5.66-5.653c0.261-0.26 0.261-0.682 0.001-0.943s-0.682-0.261-0.943-0.001l-5.66 5.653c-0.391 0.391-0.586 0.904-0.586 1.415s0.195 1.024 0.586 1.415 0.904 0.586 1.415 0.586 1.024-0.195 1.415-0.586l6.133-6.127c0.651-0.651 0.977-1.505 0.977-2.358s-0.326-1.707-0.977-2.358-1.505-0.977-2.358-0.977-1.707 0.326-2.358 0.977l-6.127 6.127c-0.911 0.911-1.367 2.107-1.367 3.301s0.456 2.39 1.367 3.301 2.107 1.367 3.301 1.367 2.39-0.456 3.301-1.367l6.127-6.127c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'pause-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>pause-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM7.333 10v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM10 10v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'pause',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>pause</title>\n <path d=\"M4 2c-0.368 0-0.667 0.299-0.667 0.667v10.667c0 0.368 0.299 0.667 0.667 0.667h2.667c0.368 0 0.667-0.299 0.667-0.667v-10.667c0-0.368-0.299-0.667-0.667-0.667zM4.667 3.333h1.333v9.333h-1.333zM9.333 2c-0.368 0-0.667 0.299-0.667 0.667v10.667c0 0.368 0.299 0.667 0.667 0.667h2.667c0.368 0 0.667-0.299 0.667-0.667v-10.667c0-0.368-0.299-0.667-0.667-0.667zM10 3.333h1.333v9.333h-1.333z\"></path>\n </svg>\n `\n },\n {\n name: 'pen-tool',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>pen-tool</title>\n <path d=\"M12.471 9.138l0.195-0.195 1.057 1.057-3.724 3.724-1.057-1.057 0.195-0.195zM1.501 0.688c-0.023-0.006-0.047-0.011-0.071-0.014-0.095-0.015-0.189-0.007-0.278 0.017s-0.173 0.068-0.247 0.13c-0.061 0.051-0.114 0.114-0.154 0.186-0.040 0.071-0.066 0.147-0.077 0.225-0.013 0.085-0.010 0.17 0.008 0.247 0.001 0.003 0.002 0.007 0.003 0.011l0.003 0.011 2.331 9.655c0.063 0.259 0.269 0.446 0.517 0.497l3.843 0.769c-0.094 0.239-0.045 0.522 0.149 0.715l2 2c0.261 0.261 0.683 0.261 0.943 0l4.667-4.667c0.261-0.261 0.261-0.683 0-0.943l-2-2c-0.193-0.193-0.476-0.243-0.715-0.149l-0.769-3.843c-0.052-0.261-0.251-0.456-0.497-0.517zM9.333 7.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586c-0.309 0-0.601 0.070-0.862 0.195l-2.991-2.991 6.95 1.677 0.847 4.233-2.829 2.829-4.233-0.847-1.678-6.949 2.991 2.991c-0.125 0.261-0.195 0.553-0.195 0.862 0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM8 7.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195-0.35-0.074-0.471-0.195-0.195-0.287-0.195-0.471c0-0.18 0.071-0.343 0.187-0.463 0.003-0.003 0.005-0.005 0.009-0.008s0.005-0.005 0.008-0.009c0.12-0.116 0.283-0.187 0.463-0.187 0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'percent',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>percent</title>\n <path d=\"M12.195 2.862l-9.333 9.333c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l9.333-9.333c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0zM6.667 4.333c0-0.644-0.262-1.229-0.683-1.65s-1.006-0.683-1.65-0.683-1.229 0.262-1.65 0.683-0.683 1.006-0.683 1.65 0.262 1.229 0.683 1.65 1.006 0.683 1.65 0.683 1.229-0.262 1.65-0.683 0.683-1.006 0.683-1.65zM5.333 4.333c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293-0.525-0.111-0.707-0.293-0.293-0.431-0.293-0.707 0.111-0.525 0.293-0.707 0.431-0.293 0.707-0.293 0.525 0.111 0.707 0.293 0.293 0.431 0.293 0.707zM14 11.667c0-0.644-0.262-1.229-0.683-1.65s-1.006-0.683-1.65-0.683-1.229 0.262-1.65 0.683-0.683 1.006-0.683 1.65 0.262 1.229 0.683 1.65 1.006 0.683 1.65 0.683 1.229-0.262 1.65-0.683 0.683-1.006 0.683-1.65zM12.667 11.667c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293-0.525-0.111-0.707-0.293-0.293-0.431-0.293-0.707 0.111-0.525 0.293-0.707 0.431-0.293 0.707-0.293 0.525 0.111 0.707 0.293 0.293 0.431 0.293 0.707z\"></path>\n </svg>\n `\n },\n {\n name: 'phone-call',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone-call</title>\n <path d=\"M9.906 3.987c0.629 0.123 1.16 0.455 1.54 0.916 0.28 0.34 0.478 0.749 0.568 1.195 0.073 0.361 0.425 0.594 0.785 0.521s0.594-0.425 0.521-0.785c-0.133-0.661-0.427-1.271-0.846-1.779-0.569-0.691-1.371-1.193-2.313-1.376-0.361-0.071-0.711 0.165-0.782 0.527s0.165 0.711 0.527 0.782zM9.96 1.329c1.333 0.148 2.495 0.775 3.337 1.696 0.745 0.816 1.239 1.863 1.375 3.013 0.043 0.365 0.375 0.627 0.74 0.584s0.627-0.375 0.584-0.74c-0.169-1.431-0.784-2.737-1.714-3.756-1.052-1.152-2.508-1.937-4.174-2.122-0.366-0.041-0.695 0.223-0.736 0.589s0.223 0.695 0.589 0.736zM15.333 11.28c0.011-0.476-0.157-0.936-0.449-1.295-0.307-0.377-0.753-0.645-1.283-0.72-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-1.18-0.745-2.24-1.778-3.055-3.059l0.484-0.484c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.323-0.837-0.519-1.351-0.513h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.466c0.2 2.051 0.91 4.162 2.144 6.068 1.001 1.609 2.432 3.082 4.199 4.204 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414zM14 11.28v2c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-1.619-1.029-2.906-2.359-3.801-3.796-1.131-1.747-1.77-3.654-1.949-5.492-0.016-0.179 0.043-0.351 0.153-0.483s0.269-0.22 0.452-0.237l2.058-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.216 0.216-0.253 0.543-0.108 0.801 1.056 1.857 2.559 3.305 4.254 4.252 0.265 0.148 0.588 0.096 0.797-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.161 0.023 0.308 0.111 0.41 0.237 0.098 0.121 0.154 0.275 0.151 0.455z\"></path>\n </svg>\n `\n },\n {\n name: 'phone-forwarded',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone-forwarded</title>\n <path d=\"M10 4h3.724l-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.667-2.667c0.064-0.064 0.112-0.137 0.145-0.216s0.051-0.165 0.051-0.255-0.018-0.177-0.051-0.255c-0.033-0.079-0.081-0.152-0.145-0.216l-2.667-2.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l1.529 1.529h-3.724c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM15.333 11.28c0.011-0.476-0.157-0.936-0.449-1.295-0.307-0.377-0.753-0.645-1.283-0.72-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-1.18-0.745-2.24-1.778-3.055-3.059l0.484-0.484c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.323-0.837-0.519-1.351-0.513h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.466c0.2 2.051 0.91 4.162 2.144 6.068 1.001 1.609 2.432 3.082 4.199 4.204 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414zM14 11.28v2c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-1.619-1.029-2.906-2.359-3.801-3.796-1.131-1.747-1.77-3.654-1.949-5.492-0.016-0.179 0.043-0.351 0.153-0.483s0.269-0.22 0.452-0.237l2.058-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.216 0.216-0.253 0.543-0.108 0.801 1.056 1.857 2.559 3.305 4.254 4.252 0.265 0.148 0.588 0.096 0.797-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.161 0.023 0.308 0.111 0.41 0.237 0.098 0.121 0.154 0.275 0.151 0.455z\"></path>\n </svg>\n `\n },\n {\n name: 'phone-incoming',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone-incoming</title>\n <path d=\"M14.862 0.195l-3.529 3.529v-2.391c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4c0 0.278 0.17 0.516 0.411 0.616 0.079 0.033 0.165 0.051 0.255 0.051h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2.391l3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0zM15.333 11.28c0.011-0.476-0.157-0.936-0.449-1.295-0.307-0.377-0.753-0.645-1.283-0.72-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-1.18-0.745-2.24-1.778-3.055-3.059l0.484-0.484c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.323-0.837-0.519-1.351-0.513h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.466c0.2 2.051 0.91 4.162 2.144 6.068 1.001 1.609 2.432 3.082 4.199 4.204 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414zM14 11.28v2c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-1.619-1.029-2.906-2.359-3.801-3.796-1.131-1.747-1.77-3.654-1.949-5.492-0.016-0.179 0.043-0.351 0.153-0.483s0.269-0.22 0.452-0.237l2.058-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.216 0.216-0.253 0.543-0.108 0.801 1.056 1.857 2.559 3.305 4.254 4.252 0.265 0.148 0.588 0.096 0.797-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.161 0.023 0.308 0.111 0.41 0.237 0.098 0.121 0.154 0.275 0.151 0.455z\"></path>\n </svg>\n `\n },\n {\n name: 'phone-missed',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone-missed</title>\n <path d=\"M10.862 1.138l1.529 1.529-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529 1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM15.333 11.28c0.011-0.476-0.157-0.936-0.449-1.295-0.307-0.377-0.753-0.645-1.283-0.72-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-1.18-0.745-2.24-1.778-3.055-3.059l0.484-0.484c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.323-0.837-0.519-1.351-0.513h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.466c0.2 2.051 0.91 4.162 2.144 6.068 1.001 1.609 2.432 3.082 4.199 4.204 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414zM14 11.28v2c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-1.619-1.029-2.906-2.359-3.801-3.796-1.131-1.747-1.77-3.654-1.949-5.492-0.016-0.179 0.043-0.351 0.153-0.483s0.269-0.22 0.452-0.237l2.058-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.216 0.216-0.253 0.543-0.108 0.801 1.056 1.857 2.559 3.305 4.254 4.252 0.265 0.148 0.588 0.096 0.797-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.161 0.023 0.308 0.111 0.41 0.237 0.098 0.121 0.154 0.275 0.151 0.455z\"></path>\n </svg>\n `\n },\n {\n name: 'phone-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone-off</title>\n <path d=\"M4.019 8.177c-1.121-1.729-1.76-3.627-1.943-5.457-0.016-0.177 0.043-0.349 0.153-0.481s0.269-0.22 0.452-0.237l2.059-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l0.853-0.853c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.324-0.837-0.519-1.351-0.514h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.467c0.204 2.041 0.914 4.143 2.151 6.050 0.2 0.309 0.613 0.397 0.922 0.197s0.397-0.613 0.197-0.922zM6.19 10.753l0.947-0.947c0.619 0.552 1.279 1.021 1.933 1.383 0.265 0.147 0.587 0.095 0.795-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.16 0.023 0.305 0.109 0.408 0.235 0.097 0.119 0.154 0.27 0.153 0.433v2.004c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-0.605-0.384-1.159-0.807-1.638-1.237zM14.862 0.195l-8.154 8.153c-0.021 0.016-0.041 0.034-0.059 0.053s-0.037 0.039-0.053 0.060l-6.4 6.4c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l4.108-4.108c0.549 0.499 1.176 0.98 1.847 1.406 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414v-1.996c0.003-0.482-0.166-0.933-0.455-1.286-0.307-0.374-0.75-0.639-1.278-0.713-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-0.406-0.258-0.814-0.563-1.207-0.907l7.723-7.722c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'phone-outgoing',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone-outgoing</title>\n <path d=\"M11.138 5.805l3.529-3.529v2.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.391l-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM15.333 11.28c0.011-0.476-0.157-0.936-0.449-1.295-0.307-0.377-0.753-0.645-1.283-0.72-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-1.18-0.745-2.24-1.778-3.055-3.059l0.484-0.484c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.323-0.837-0.519-1.351-0.513h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.466c0.2 2.051 0.91 4.162 2.144 6.068 1.001 1.609 2.432 3.082 4.199 4.204 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414zM14 11.28v2c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-1.619-1.029-2.906-2.359-3.801-3.796-1.131-1.747-1.77-3.654-1.949-5.492-0.016-0.179 0.043-0.351 0.153-0.483s0.269-0.22 0.452-0.237l2.058-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.216 0.216-0.253 0.543-0.108 0.801 1.056 1.857 2.559 3.305 4.254 4.252 0.265 0.148 0.588 0.096 0.797-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.161 0.023 0.308 0.111 0.41 0.237 0.098 0.121 0.154 0.275 0.151 0.455z\"></path>\n </svg>\n `\n },\n {\n name: 'phone',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>phone</title>\n <path d=\"M15.333 11.28c0.011-0.476-0.157-0.936-0.449-1.295-0.307-0.377-0.753-0.645-1.283-0.72-0.533-0.065-1.13-0.209-1.724-0.431-0.289-0.106-0.595-0.145-0.896-0.116-0.442 0.043-0.871 0.233-1.213 0.57l-0.48 0.48c-1.18-0.745-2.24-1.778-3.055-3.059l0.484-0.484c0.215-0.22 0.375-0.484 0.471-0.771 0.141-0.421 0.143-0.891-0.026-1.341-0.193-0.502-0.345-1.096-0.429-1.73-0.069-0.477-0.303-0.898-0.642-1.203-0.359-0.323-0.837-0.519-1.351-0.513h-1.997c-0.059 0-0.121 0.003-0.182 0.008-0.549 0.050-1.028 0.319-1.355 0.711s-0.505 0.911-0.455 1.466c0.2 2.051 0.91 4.162 2.144 6.068 1.001 1.609 2.432 3.082 4.199 4.204 1.712 1.131 3.789 1.908 6.057 2.154 0.061 0.006 0.127 0.009 0.192 0.009 0.552-0.002 1.052-0.229 1.412-0.591s0.582-0.865 0.58-1.414zM14 11.28v2c0.001 0.187-0.073 0.353-0.193 0.475s-0.286 0.197-0.471 0.197l-0.059-0.003c-2.040-0.222-3.915-0.925-5.449-1.939-1.619-1.029-2.906-2.359-3.801-3.796-1.131-1.747-1.77-3.654-1.949-5.492-0.016-0.179 0.043-0.351 0.153-0.483s0.269-0.22 0.452-0.237l2.058-0.003c0.181-0.002 0.338 0.063 0.458 0.171 0.113 0.103 0.192 0.244 0.215 0.405 0.095 0.715 0.272 1.411 0.505 2.017 0.054 0.144 0.053 0.298 0.007 0.439-0.033 0.097-0.087 0.187-0.161 0.263l-0.841 0.841c-0.216 0.216-0.253 0.543-0.108 0.801 1.056 1.857 2.559 3.305 4.254 4.252 0.265 0.148 0.588 0.096 0.797-0.111l0.847-0.847c0.111-0.109 0.251-0.171 0.399-0.186 0.101-0.010 0.207 0.003 0.306 0.040 0.681 0.254 1.38 0.424 2.023 0.503 0.161 0.023 0.308 0.111 0.41 0.237 0.098 0.121 0.154 0.275 0.151 0.455z\"></path>\n </svg>\n `\n },\n {\n name: 'pie-chart',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>pie-chart</title>\n <path d=\"M13.526 10.334c-0.645 1.526-1.847 2.645-3.271 3.223s-3.066 0.611-4.592-0.034-2.645-1.847-3.223-3.271-0.612-3.067 0.033-4.593c0.624-1.476 1.768-2.571 3.126-3.162 0.337-0.147 0.492-0.54 0.345-0.877s-0.54-0.492-0.877-0.345c-1.659 0.723-3.059 2.063-3.822 3.865-0.789 1.865-0.746 3.875-0.041 5.613s2.075 3.209 3.939 3.998 3.875 0.746 5.613 0.041 3.209-2.075 3.998-3.939c0.143-0.339-0.015-0.73-0.355-0.874s-0.73 0.015-0.874 0.355zM13.963 7.333h-5.297v-5.297c1.391 0.153 2.637 0.782 3.576 1.721s1.567 2.185 1.721 3.576zM15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148c-0.368 0-0.667 0.299-0.667 0.667v6.667c0 0.368 0.299 0.667 0.667 0.667h6.667c0.368 0 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'play-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>play-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM7.037 4.779c-0.104-0.070-0.232-0.112-0.37-0.112-0.368 0-0.667 0.299-0.667 0.667v5.333c-0.001 0.125 0.035 0.255 0.112 0.37 0.204 0.307 0.618 0.389 0.925 0.185l4-2.667c0.069-0.045 0.133-0.108 0.185-0.185 0.204-0.307 0.121-0.72-0.185-0.925zM7.333 6.579l2.131 1.421-2.131 1.421z\"></path>\n </svg>\n `\n },\n {\n name: 'play',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>play</title>\n <path d=\"M3.694 1.439c-0.102-0.067-0.227-0.106-0.361-0.106-0.368 0-0.667 0.299-0.667 0.667v12c-0.001 0.121 0.033 0.248 0.106 0.361 0.199 0.31 0.611 0.399 0.921 0.2l9.333-6c0.076-0.048 0.146-0.116 0.2-0.2 0.199-0.31 0.109-0.722-0.2-0.921zM4 3.221l7.434 4.779-7.434 4.779z\"></path>\n </svg>\n `\n },\n {\n name: 'plus-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>plus-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM5.333 8.667h2v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'plus-square',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>plus-square</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM3.333 2.667h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM5.333 8.667h2v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2h2c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-2v-2c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2h-2c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'plus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>plus</title>\n <path d=\"M3.333 8.667h4v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'pocket',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>pocket</title>\n <path d=\"M2.667 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v4c0 2.025 0.821 3.859 2.148 5.185s3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185v-4c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM2.667 2.667h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v4c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243v-4c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM4.862 7.138l2.667 2.667c0.261 0.261 0.683 0.261 0.943 0l2.667-2.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.195 2.195-2.195-2.195c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'power',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>power</title>\n <path d=\"M11.769 4.898c1.041 1.042 1.562 2.405 1.561 3.771s-0.521 2.729-1.563 3.771-2.405 1.562-3.771 1.561-2.729-0.521-3.771-1.563c-1.041-1.041-1.561-2.405-1.561-3.771s0.521-2.729 1.561-3.771c0.26-0.261 0.26-0.683 0-0.943s-0.683-0.26-0.943 0c-1.301 1.301-1.952 3.008-1.952 4.713s0.651 3.412 1.952 4.713c1.301 1.302 3.009 1.953 4.714 1.953s3.413-0.651 4.715-1.952 1.953-3.009 1.953-4.714-0.651-3.413-1.952-4.715c-0.26-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM7.333 1.333v6.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-6.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'printer',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>printer</title>\n <path d=\"M11.333 5.333h-6.667v-3.333h6.667zM3.333 12.667v2c0 0.368 0.299 0.667 0.667 0.667h8c0.368 0 0.667-0.299 0.667-0.667v-2h0.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-3.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-0.667v-4c0-0.368-0.299-0.667-0.667-0.667h-8c-0.368 0-0.667 0.299-0.667 0.667v4h-0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v3.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586zM4 8.667c-0.368 0-0.667 0.299-0.667 0.667v2h-0.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-3.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v3.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-0.667v-2c0-0.368-0.299-0.667-0.667-0.667zM4.667 10h6.667v4h-6.667z\"></path>\n </svg>\n `\n },\n {\n name: 'radio',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>radio</title>\n <path d=\"M10 8c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM8.667 8c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195-0.35-0.074-0.471-0.195-0.195-0.287-0.195-0.471 0.074-0.35 0.195-0.471 0.287-0.195 0.471-0.195 0.35 0.074 0.471 0.195 0.195 0.287 0.195 0.471zM10.355 5.645c0.651 0.651 0.977 1.503 0.977 2.357s-0.325 1.706-0.975 2.357c-0.26 0.261-0.26 0.683 0.001 0.943s0.683 0.26 0.943-0.001c0.911-0.911 1.365-2.107 1.365-3.301s-0.457-2.389-1.369-3.299c-0.261-0.26-0.683-0.26-0.943 0.001s-0.26 0.683 0.001 0.943zM5.645 10.355c-0.651-0.65-0.977-1.502-0.978-2.356s0.325-1.706 0.975-2.357c0.26-0.261 0.26-0.683-0.001-0.943s-0.683-0.26-0.943 0.001c-0.91 0.911-1.365 2.107-1.365 3.3s0.457 2.389 1.369 3.299c0.261 0.26 0.683 0.26 0.943-0.001s0.26-0.683-0.001-0.943zM12.242 3.758c1.171 1.172 1.757 2.706 1.757 4.242s-0.585 3.070-1.757 4.242c-0.26 0.261-0.26 0.683 0 0.943s0.683 0.26 0.943 0c1.431-1.431 2.147-3.309 2.147-5.185s-0.716-3.753-2.147-5.185c-0.26-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM3.758 12.242c-1.171-1.172-1.757-2.706-1.757-4.242s0.585-3.070 1.757-4.242c0.26-0.261 0.26-0.683 0-0.943s-0.683-0.26-0.943 0c-1.431 1.431-2.147 3.309-2.147 5.185s0.716 3.753 2.147 5.185c0.26 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'refresh-ccw',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>refresh-ccw</title>\n <path d=\"M14.289 5.777c-0.614-1.735-1.875-3.058-3.413-3.793s-3.36-0.882-5.095-0.268c-0.981 0.347-1.835 0.903-2.496 1.576l-1.951 1.833v-2.459c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v3.999c0 0.010 0 0.020 0.001 0.029 0.003 0.077 0.019 0.15 0.046 0.217s0.065 0.132 0.115 0.19c0.008 0.009 0.016 0.018 0.024 0.026 0.061 0.063 0.134 0.115 0.216 0.15 0.079 0.034 0.166 0.053 0.257 0.055 0.003 0 0.005 0 0.007 0h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.666-0.667-0.666h-2.317l1.887-1.773c0.518-0.528 1.198-0.973 1.989-1.253 1.389-0.491 2.843-0.374 4.076 0.215s2.239 1.645 2.731 3.034c0.123 0.347 0.504 0.529 0.851 0.406s0.529-0.504 0.406-0.851zM13.65 10l-1.867 1.754c-1.056 1.057-2.42 1.577-3.786 1.577s-2.73-0.52-3.771-1.561c-0.593-0.593-1.015-1.287-1.255-1.987-0.12-0.348-0.499-0.533-0.847-0.414s-0.533 0.499-0.414 0.847c0.307 0.893 0.838 1.761 1.574 2.497 1.302 1.301 3.009 1.952 4.715 1.951s3.412-0.652 4.699-1.939l1.97-1.85v2.459c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-3.999c0-0.010 0-0.020-0.001-0.029-0.003-0.077-0.019-0.15-0.046-0.217s-0.065-0.132-0.115-0.19c-0.008-0.009-0.016-0.018-0.024-0.026-0.061-0.063-0.134-0.115-0.216-0.15-0.079-0.034-0.166-0.053-0.257-0.055-0.003 0-0.005 0-0.007 0h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'refresh-cw',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>refresh-cw</title>\n <path d=\"M2.969 6.223c0.491-1.389 1.498-2.446 2.731-3.035s2.688-0.706 4.076-0.215c0.791 0.28 1.471 0.725 1.989 1.253l1.887 1.773h-2.317c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h3.998c0.003 0 0.006 0 0.009 0 0.091-0.001 0.179-0.021 0.257-0.055s0.153-0.084 0.216-0.15c0.008-0.009 0.016-0.017 0.024-0.026 0.050-0.058 0.089-0.122 0.115-0.19s0.043-0.141 0.046-0.217c0.001-0.010 0.001-0.019 0.001-0.029v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.459l-1.951-1.833c-0.661-0.673-1.514-1.229-2.495-1.576-1.735-0.614-3.557-0.466-5.095 0.268s-2.799 2.057-3.413 3.793c-0.123 0.347 0.059 0.727 0.405 0.851s0.728-0.059 0.851-0.406zM1.333 10.875l1.97 1.851c1.286 1.287 2.993 1.939 4.699 1.939s3.413-0.65 4.715-1.951c0.736-0.736 1.267-1.605 1.574-2.497 0.12-0.348-0.065-0.727-0.414-0.847s-0.727 0.065-0.847 0.414c-0.241 0.7-0.662 1.394-1.255 1.987-1.042 1.041-2.406 1.561-3.771 1.561s-2.729-0.521-3.786-1.577l-1.867-1.755h2.317c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-3.998c-0.003 0-0.006 0-0.009 0-0.091 0.001-0.179 0.021-0.257 0.055s-0.153 0.084-0.216 0.15c-0.008 0.009-0.016 0.017-0.024 0.026-0.050 0.058-0.089 0.122-0.115 0.19s-0.043 0.141-0.046 0.217c-0.001 0.010-0.001 0.019-0.001 0.029v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'repeat',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>repeat</title>\n <path d=\"M2.667 7.333v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h7.724l-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l2.667-2.667c0.064-0.064 0.112-0.137 0.145-0.216s0.051-0.165 0.051-0.255c0-0.087-0.017-0.174-0.051-0.255-0.033-0.079-0.081-0.152-0.145-0.216l-2.667-2.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l1.529 1.529h-7.724c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM13.333 8.667v1.333c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586h-7.724l1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.667 2.667c-0.064 0.064-0.112 0.137-0.145 0.216-0.1 0.241-0.052 0.53 0.145 0.727l2.667 2.667c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529h7.724c0.92 0 1.755-0.374 2.357-0.976s0.976-1.437 0.976-2.357v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'rewind',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>rewind</title>\n <path d=\"M6.667 11.303l-4.247-3.303 4.247-3.303zM14.257 13.193c0.112 0.088 0.255 0.141 0.409 0.141 0.368 0 0.667-0.299 0.667-0.667v-9.333c0.001-0.142-0.045-0.287-0.141-0.409-0.226-0.291-0.645-0.343-0.935-0.117l-6 4.667c-0.041 0.031-0.081 0.071-0.117 0.117-0.093 0.12-0.139 0.261-0.141 0.403v-4.66c0.001-0.142-0.045-0.287-0.141-0.409-0.226-0.291-0.645-0.343-0.935-0.117l-6 4.667c-0.041 0.031-0.081 0.071-0.117 0.117-0.226 0.291-0.174 0.709 0.117 0.935l6 4.667c0.112 0.088 0.255 0.141 0.409 0.141 0.368 0 0.667-0.299 0.667-0.667v-4.661c0.002 0.197 0.090 0.39 0.257 0.52zM14 11.303l-4.247-3.303 4.247-3.303z\"></path>\n </svg>\n `\n },\n {\n name: 'rotate-ccw',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>rotate-ccw</title>\n <path d=\"M1.711 10.221c0.612 1.736 1.87 3.061 3.408 3.797s3.359 0.887 5.095 0.275 3.061-1.87 3.797-3.408 0.887-3.359 0.275-5.095-1.87-3.061-3.408-3.797-3.359-0.887-5.095-0.275c-0.983 0.347-1.837 0.901-2.499 1.575l-1.951 1.833v-2.459c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v3.999c0 0.010 0 0.020 0.001 0.029 0.003 0.077 0.019 0.15 0.046 0.217s0.065 0.132 0.115 0.19c0.008 0.009 0.016 0.018 0.024 0.026 0.061 0.063 0.134 0.115 0.216 0.15 0.079 0.034 0.166 0.053 0.257 0.055 0.003 0 0.005 0 0.007 0h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.666-0.667-0.666h-2.317l1.886-1.773c0.519-0.528 1.2-0.973 1.991-1.251 1.389-0.489 2.844-0.37 4.076 0.22s2.237 1.649 2.727 3.038 0.37 2.844-0.22 4.076-1.649 2.237-3.038 2.727-2.844 0.37-4.076-0.22-2.237-1.649-2.727-3.038c-0.123-0.347-0.503-0.529-0.85-0.407s-0.529 0.503-0.407 0.85z\"></path>\n </svg>\n `\n },\n {\n name: 'rotate-cw',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>rotate-cw</title>\n <path d=\"M13.031 9.778c-0.491 1.389-1.497 2.447-2.729 3.035s-2.687 0.707-4.076 0.217-2.447-1.497-3.035-2.729-0.707-2.687-0.217-4.076 1.497-2.447 2.729-3.035 2.687-0.707 4.076-0.217c0.792 0.28 1.473 0.725 1.991 1.255l1.883 1.773h-2.32c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h3.998c0.003 0 0.006 0 0.009 0 0.091-0.001 0.178-0.020 0.257-0.055s0.153-0.084 0.216-0.15c0.008-0.008 0.015-0.017 0.023-0.025 0.051-0.058 0.089-0.123 0.117-0.191s0.043-0.142 0.046-0.219c0.001-0.009 0.001-0.017 0.001-0.027v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.457l-1.944-1.83c-0.662-0.675-1.516-1.231-2.499-1.577-1.736-0.614-3.557-0.465-5.096 0.27s-2.798 2.059-3.411 3.795-0.464 3.557 0.271 5.095 2.059 2.798 3.795 3.411 3.557 0.465 5.095-0.271 2.798-2.059 3.411-3.795c0.123-0.347-0.059-0.728-0.407-0.851s-0.728 0.059-0.851 0.407z\"></path>\n </svg>\n `\n },\n {\n name: 'rss',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>rss</title>\n <path d=\"M2.667 8c1.473 0 2.805 0.596 3.771 1.562s1.562 2.299 1.562 3.771c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667c0-1.841-0.747-3.509-1.953-4.714s-2.873-1.953-4.714-1.953c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM2.667 3.333c2.761 0 5.261 1.119 7.071 2.929s2.929 4.31 2.929 7.071c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667c0-3.129-1.269-5.964-3.319-8.014s-4.885-3.319-8.014-3.319c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM4.667 12.667c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'save',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>save</title>\n <path d=\"M12.667 14.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-7.333c0-0.171-0.065-0.341-0.195-0.471l-3.333-3.333c-0.121-0.121-0.287-0.195-0.471-0.195h-7.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586zM5.333 13.333v-4h5.333v4zM4 2.667v2.667c0 0.368 0.299 0.667 0.667 0.667h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4.667v-2h5.057l2.943 2.943v7.057c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-0.667v-4.667c0-0.368-0.299-0.667-0.667-0.667h-6.667c-0.368 0-0.667 0.299-0.667 0.667v4.667h-0.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'scissors',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>scissors</title>\n <path d=\"M4.919 11.034c0.007 0.008 0.015 0.017 0.023 0.024s0.016 0.015 0.024 0.023c0.229 0.239 0.367 0.562 0.367 0.919 0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391c0.357 0 0.679 0.139 0.919 0.367zM9.176 10.125l3.687 3.68c0.261 0.26 0.683 0.26 0.943-0.001s0.26-0.683-0.001-0.943l-3.687-3.68c-0.261-0.26-0.683-0.26-0.943 0.001s-0.26 0.683 0.001 0.943zM4.966 4.919c-0.008 0.007-0.016 0.015-0.024 0.023s-0.016 0.016-0.023 0.024c-0.239 0.229-0.562 0.367-0.919 0.367-0.369 0-0.701-0.149-0.943-0.391s-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943c0 0.357-0.139 0.679-0.367 0.919zM5.355 6.297l1.703 1.703-1.703 1.703c-0.397-0.235-0.861-0.369-1.355-0.369-0.736 0-1.404 0.299-1.885 0.781s-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885c0-0.494-0.135-0.957-0.369-1.355l7.507-7.507c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-4.862 4.862-1.703-1.703c0.235-0.397 0.369-0.861 0.369-1.355 0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781c0.494 0 0.957-0.135 1.355-0.369z\"></path>\n </svg>\n `\n },\n {\n name: 'search',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>search</title>\n <path d=\"M10.694 10.571c-0.023 0.017-0.045 0.037-0.066 0.058s-0.040 0.043-0.058 0.066c-0.839 0.809-1.979 1.305-3.237 1.305-1.289 0-2.455-0.521-3.3-1.367s-1.367-2.011-1.367-3.3 0.521-2.455 1.367-3.3 2.011-1.367 3.3-1.367 2.455 0.521 3.3 1.367 1.367 2.011 1.367 3.3c0 1.257-0.497 2.398-1.306 3.237zM14.471 13.529l-2.45-2.45c0.821-1.027 1.312-2.329 1.312-3.745 0-1.657-0.672-3.157-1.757-4.243s-2.586-1.757-4.243-1.757-3.157 0.672-4.243 1.757-1.757 2.586-1.757 4.243 0.672 3.157 1.757 4.243 2.586 1.757 4.243 1.757c1.417 0 2.719-0.491 3.745-1.312l2.45 2.45c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'send',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>send</title>\n <path d=\"M15.309 1.513c0.029-0.101 0.033-0.209 0.010-0.317-0.016-0.075-0.045-0.149-0.087-0.217s-0.097-0.127-0.159-0.175c-0.078-0.060-0.166-0.1-0.257-0.121s-0.188-0.023-0.284-0.003c-0.028 0.006-0.057 0.014-0.084 0.023l-0.014 0.005-13.32 4.662c-0.168 0.059-0.311 0.184-0.389 0.359-0.149 0.337 0.002 0.731 0.339 0.88l5.766 2.563 2.563 5.766c0.072 0.162 0.209 0.295 0.389 0.359 0.347 0.121 0.728-0.061 0.849-0.409l4.662-13.319c0.007-0.018 0.013-0.036 0.018-0.055zM7.186 7.871l-4.045-1.797 8.989-3.147zM13.073 3.871l-3.147 8.989-1.797-4.045z\"></path>\n </svg>\n `\n },\n {\n name: 'server',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>server</title>\n <path d=\"M2.667 0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v2.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM2.667 2h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v2.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM2.667 8.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v2.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM2.667 10h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v2.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM4.667 4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667zM4.667 12c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'settings',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>settings</title>\n <path d=\"M10.667 8c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM9.333 8c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943zM13.543 10.269c0.031-0.070 0.075-0.127 0.128-0.171 0.075-0.061 0.167-0.097 0.269-0.098h0.060c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414-0.225-1.053-0.586-1.414-0.862-0.586-1.414-0.586h-0.106c-0.073-0.001-0.143-0.019-0.205-0.051-0.085-0.044-0.153-0.115-0.195-0.208-0.002-0.019-0.003-0.039-0.003-0.059-0.031-0.071-0.043-0.146-0.036-0.219 0.008-0.097 0.048-0.189 0.116-0.258l0.041-0.041c0.39-0.391 0.585-0.904 0.585-1.415s-0.196-1.024-0.587-1.415c-0.391-0.39-0.904-0.585-1.415-0.585s-1.024 0.196-1.413 0.586l-0.031 0.031c-0.055 0.053-0.122 0.091-0.192 0.111-0.093 0.026-0.194 0.021-0.291-0.022-0.067-0.029-0.125-0.073-0.169-0.127-0.062-0.075-0.098-0.167-0.099-0.269v-0.060c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414v0.106c-0.001 0.073-0.019 0.143-0.051 0.205-0.044 0.085-0.115 0.153-0.208 0.195-0.019 0.002-0.039 0.003-0.059 0.003-0.071 0.031-0.146 0.043-0.219 0.036-0.097-0.009-0.189-0.048-0.259-0.116l-0.041-0.041c-0.391-0.39-0.903-0.585-1.415-0.585s-1.023 0.196-1.415 0.588c-0.39 0.391-0.585 0.903-0.585 1.415s0.196 1.024 0.586 1.413l0.032 0.031c0.053 0.055 0.091 0.122 0.111 0.192 0.026 0.093 0.021 0.194-0.021 0.289-0.004 0.011-0.009 0.023-0.014 0.035-0.027 0.073-0.072 0.135-0.127 0.183-0.073 0.063-0.167 0.102-0.255 0.104h-0.060c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.863-0.586 1.415 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586h0.106c0.073 0.001 0.143 0.019 0.205 0.051 0.085 0.045 0.155 0.116 0.197 0.214 0.031 0.071 0.043 0.146 0.036 0.219-0.008 0.097-0.048 0.189-0.116 0.258l-0.041 0.041c-0.39 0.391-0.585 0.904-0.585 1.415s0.196 1.024 0.587 1.415c0.391 0.39 0.904 0.585 1.415 0.585s1.024-0.196 1.413-0.586l0.031-0.032c0.055-0.053 0.122-0.091 0.192-0.111 0.093-0.026 0.194-0.021 0.289 0.021 0.011 0.004 0.023 0.009 0.035 0.014 0.073 0.027 0.135 0.072 0.183 0.127 0.063 0.073 0.102 0.167 0.104 0.255v0.061c0 0.552 0.225 1.053 0.586 1.414s0.863 0.586 1.415 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414v-0.106c0.001-0.073 0.019-0.143 0.051-0.205 0.045-0.085 0.116-0.155 0.214-0.197 0.071-0.031 0.146-0.043 0.219-0.036 0.097 0.008 0.189 0.048 0.258 0.116l0.041 0.041c0.391 0.39 0.904 0.585 1.415 0.585s1.024-0.196 1.415-0.587c0.39-0.391 0.585-0.904 0.585-1.415s-0.196-1.024-0.586-1.413l-0.032-0.031c-0.053-0.055-0.091-0.122-0.111-0.192-0.026-0.093-0.021-0.194 0.021-0.289zM12.323 9.731c-0.171 0.388-0.192 0.807-0.085 1.188 0.079 0.282 0.227 0.543 0.435 0.758l0.048 0.049c0.131 0.131 0.196 0.3 0.196 0.471s-0.065 0.341-0.195 0.471c-0.131 0.131-0.301 0.197-0.473 0.197s-0.341-0.065-0.471-0.195l-0.041-0.041c-0.309-0.302-0.693-0.468-1.087-0.501-0.291-0.025-0.588 0.023-0.862 0.141-0.385 0.165-0.685 0.455-0.867 0.804-0.129 0.247-0.199 0.523-0.202 0.807v0.121c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.194-0.471 0.194-0.35-0.074-0.471-0.195-0.195-0.287-0.195-0.471v-0.060c-0.010-0.44-0.17-0.828-0.429-1.128-0.189-0.219-0.431-0.39-0.705-0.497-0.383-0.164-0.795-0.183-1.171-0.077-0.282 0.079-0.543 0.227-0.758 0.435l-0.049 0.048c-0.131 0.131-0.3 0.196-0.471 0.196s-0.341-0.065-0.471-0.195c-0.131-0.131-0.197-0.301-0.197-0.473s0.065-0.341 0.195-0.471l0.041-0.041c0.302-0.309 0.468-0.693 0.501-1.087 0.025-0.291-0.023-0.588-0.141-0.862-0.165-0.385-0.455-0.685-0.804-0.867-0.247-0.129-0.523-0.199-0.807-0.202l-0.119 0.001c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471 0.074-0.35 0.195-0.471 0.287-0.195 0.471-0.195h0.060c0.44-0.010 0.828-0.17 1.128-0.429 0.219-0.189 0.39-0.431 0.497-0.705 0.164-0.383 0.182-0.795 0.077-1.171-0.079-0.282-0.227-0.543-0.435-0.757l-0.049-0.049c-0.131-0.131-0.196-0.3-0.196-0.471s0.065-0.341 0.195-0.471c0.131-0.131 0.301-0.197 0.473-0.197s0.341 0.065 0.471 0.195l0.041 0.041c0.309 0.302 0.693 0.468 1.087 0.501 0.247 0.021 0.497-0.009 0.734-0.091 0.064-0.008 0.125-0.025 0.179-0.049 0.388-0.166 0.687-0.456 0.869-0.805 0.129-0.247 0.199-0.523 0.203-0.807v-0.121c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195 0.35 0.074 0.471 0.195 0.195 0.287 0.195 0.471v0.060c0.002 0.425 0.152 0.813 0.402 1.117 0.177 0.215 0.405 0.387 0.664 0.501 0.385 0.17 0.804 0.191 1.185 0.084 0.282-0.079 0.543-0.227 0.758-0.435l0.049-0.048c0.131-0.131 0.3-0.196 0.471-0.196s0.341 0.065 0.471 0.195c0.131 0.131 0.197 0.301 0.197 0.473s-0.065 0.341-0.195 0.471l-0.041 0.041c-0.302 0.309-0.468 0.693-0.501 1.087-0.021 0.247 0.009 0.497 0.091 0.734 0.008 0.064 0.025 0.125 0.049 0.179 0.166 0.388 0.456 0.687 0.805 0.869 0.247 0.129 0.523 0.199 0.807 0.202h0.12c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471-0.074 0.35-0.195 0.471-0.287 0.195-0.471 0.195h-0.060c-0.425 0.002-0.813 0.152-1.117 0.402-0.215 0.177-0.387 0.405-0.5 0.662z\"></path>\n </svg>\n `\n },\n {\n name: 'share-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>share-2</title>\n <path d=\"M10.809 12.065c0.017-0.022 0.032-0.045 0.047-0.069 0.013-0.023 0.025-0.047 0.036-0.071 0.049-0.072 0.104-0.139 0.165-0.201 0.242-0.242 0.574-0.391 0.943-0.391s0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943-0.149 0.701-0.391 0.943-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943c0-0.217 0.051-0.421 0.143-0.601zM10.867 4.037c-0.006-0.011-0.012-0.023-0.019-0.034s-0.013-0.023-0.021-0.033c-0.103-0.189-0.161-0.405-0.161-0.637 0-0.369 0.149-0.701 0.391-0.943s0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943-0.149 0.701-0.391 0.943-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391c-0.072-0.072-0.136-0.152-0.19-0.239zM5.133 7.296c0.006 0.011 0.012 0.023 0.019 0.034s0.013 0.023 0.021 0.033c0.103 0.189 0.161 0.405 0.161 0.637s-0.059 0.448-0.162 0.637c-0.007 0.011-0.014 0.022-0.021 0.033s-0.013 0.022-0.018 0.033c-0.054 0.087-0.118 0.167-0.19 0.239-0.242 0.242-0.574 0.391-0.943 0.391s-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391c0.072 0.072 0.136 0.152 0.19 0.239zM9.433 4.059l-3.539 2.065c-0.003-0.003-0.006-0.006-0.009-0.009-0.481-0.481-1.149-0.781-1.885-0.781s-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781c0.003-0.003 0.006-0.006 0.009-0.009l3.539 2.063c-0.065 0.231-0.101 0.476-0.101 0.728 0 0.736 0.299 1.404 0.781 1.885s1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781c-0.002 0.002-0.005 0.005-0.007 0.007l-3.541-2.063c0.065-0.231 0.1-0.473 0.1-0.725s-0.035-0.495-0.1-0.725l3.539-2.065c0.003 0.003 0.006 0.006 0.009 0.009 0.481 0.482 1.149 0.781 1.885 0.781s1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885-0.299-1.404-0.781-1.885-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885c0 0.251 0.035 0.495 0.1 0.725z\"></path>\n </svg>\n `\n },\n {\n name: 'share',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>share</title>\n <path d=\"M2 8v5.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-5.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v5.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-5.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 2.943v7.057c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-7.057l1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2.667-2.667c-0.261-0.261-0.683-0.261-0.943 0l-2.667 2.667c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'shield-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>shield-off</title>\n <path d=\"M13.763 9.531c0.161-0.517 0.239-1.045 0.237-1.533v-4.664c0-0.284-0.178-0.527-0.433-0.624l-5.333-2c-0.157-0.059-0.323-0.055-0.467 0l-2.107 0.787c-0.345 0.128-0.52 0.512-0.391 0.857s0.513 0.52 0.858 0.391l1.873-0.699 4.667 1.75v4.207c0.001 0.348-0.055 0.741-0.177 1.133-0.109 0.351 0.087 0.725 0.439 0.834s0.725-0.087 0.834-0.439zM3.333 4.276l7.487 7.487c-0.787 0.8-1.741 1.537-2.821 2.145-0.789-0.449-2.946-1.797-4.033-3.699-0.053-0.092-0.102-0.184-0.149-0.278-0.305-0.608-0.485-1.253-0.485-1.931zM0.195 1.138l1.883 1.883c-0.050 0.095-0.077 0.201-0.078 0.312v4.667c0 0.921 0.246 1.77 0.625 2.527 0.058 0.117 0.119 0.231 0.184 0.343 1.567 2.743 4.893 4.393 4.893 4.393 0.199 0.099 0.424 0.090 0.609-0.007 1.323-0.698 2.493-1.577 3.452-2.55l3.099 3.099c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-14.667-14.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'shield',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>shield</title>\n <path d=\"M8 13.908c-0.789-0.448-2.947-1.797-4.033-3.699-0.053-0.092-0.102-0.184-0.149-0.278-0.304-0.607-0.485-1.252-0.485-1.931v-4.205l4.667-1.75 4.667 1.75v4.205c0 0.679-0.181 1.323-0.484 1.931-0.047 0.093-0.097 0.186-0.149 0.278-1.087 1.903-3.245 3.251-4.033 3.699zM8.298 15.263c0 0 3.326-1.65 4.893-4.393 0.064-0.112 0.125-0.227 0.184-0.343 0.379-0.757 0.625-1.605 0.625-2.527v-4.667c0-0.284-0.178-0.527-0.433-0.624l-5.333-2c-0.157-0.059-0.323-0.055-0.468 0l-5.333 2c-0.266 0.099-0.431 0.351-0.433 0.624v4.667c0 0.921 0.246 1.77 0.625 2.527 0.058 0.117 0.119 0.231 0.184 0.343 1.567 2.743 4.893 4.393 4.893 4.393 0.195 0.097 0.413 0.091 0.596 0z\"></path>\n </svg>\n `\n },\n {\n name: 'shopping-bag',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>shopping-bag</title>\n <path d=\"M12.667 3.333h-9.333l1-1.333h7.333zM14.529 3.595l-1.996-2.661c-0.131-0.174-0.329-0.266-0.533-0.267h-8c-0.217 0-0.411 0.104-0.533 0.267l-1.996 2.661c-0.029 0.037-0.054 0.079-0.074 0.122-0.043 0.091-0.064 0.188-0.063 0.283v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.146-0.047-0.281-0.126-0.39-0.003-0.003-0.005-0.007-0.007-0.010zM2.667 4.667h10.667v8.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471zM10 6.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667c0 0.92 0.374 1.755 0.976 2.357s1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'shopping-cart',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>shopping-cart</title>\n <path d=\"M7.333 14c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943zM14.667 14c0-0.368-0.15-0.702-0.391-0.943s-0.575-0.391-0.943-0.391-0.702 0.15-0.943 0.391-0.391 0.575-0.391 0.943 0.15 0.702 0.391 0.943 0.575 0.391 0.943 0.391 0.702-0.15 0.943-0.391 0.391-0.575 0.391-0.943zM4.814 4.667h9.713l-0.914 4.794c-0.031 0.152-0.111 0.283-0.221 0.379-0.12 0.104-0.275 0.164-0.459 0.161h-6.489c-0.155 0.002-0.301-0.047-0.417-0.135-0.127-0.095-0.219-0.234-0.253-0.402zM0.667 1.333h2.12l0.565 2.826c0.072 0.291 0.335 0.507 0.648 0.507h0.814l-0.267-1.333h-0.547c-0.368 0-0.667 0.299-0.667 0.667 0 0.035 0.003 0.070 0.008 0.103 0.003 0.019 0.007 0.038 0.011 0.056l1.114 5.565c0.099 0.501 0.379 0.922 0.76 1.207 0.347 0.261 0.78 0.409 1.236 0.402h6.471c0.499 0.010 0.97-0.174 1.33-0.485 0.329-0.284 0.565-0.675 0.657-1.122l1.068-5.601c0.069-0.362-0.168-0.711-0.53-0.78-0.043-0.009-0.087-0.013-0.125-0.012h-10.787l-0.56-2.797c-0.063-0.308-0.331-0.536-0.653-0.536h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'shuffle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>shuffle</title>\n <path d=\"M3.138 13.805l10.195-10.195v1.724c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-3.333c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-3.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h1.724l-10.195 10.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM9.529 10.471l2.862 2.862h-1.724c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h3.333c0.087 0 0.174-0.017 0.255-0.051s0.155-0.083 0.216-0.145c0.064-0.064 0.112-0.137 0.145-0.216s0.051-0.165 0.051-0.255v-3.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.724l-2.862-2.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM2.195 3.138l3.333 3.333c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.333-3.333c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'sidebar',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>sidebar</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM6.667 13.333v-10.667h6c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195zM5.333 2.667v10.667h-2c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'skip-back',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>skip-back</title>\n <path d=\"M12.25 13.854c0.113 0.091 0.259 0.146 0.417 0.146 0.368 0 0.667-0.299 0.667-0.667v-10.667c0.001-0.145-0.047-0.293-0.146-0.417-0.23-0.287-0.649-0.334-0.937-0.104l-6.667 5.333c-0.035 0.028-0.072 0.063-0.104 0.104-0.23 0.287-0.183 0.707 0.104 0.937zM12 11.946l-4.933-3.946 4.933-3.946zM4 12.667v-9.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v9.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'skip-forward',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>skip-forward</title>\n <path d=\"M3.75 2.146c-0.113-0.091-0.259-0.146-0.417-0.146-0.368 0-0.667 0.299-0.667 0.667v10.667c-0.001 0.145 0.047 0.293 0.146 0.417 0.23 0.287 0.649 0.334 0.937 0.104l6.667-5.333c0.035-0.028 0.072-0.063 0.104-0.104 0.23-0.287 0.183-0.707-0.104-0.937zM4 4.054l4.933 3.946-4.933 3.946zM12 3.333v9.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-9.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'slack',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>slack</title>\n <path d=\"M9.667 7.333c0.46 0 0.877-0.187 1.179-0.488s0.488-0.719 0.488-1.179v-3.333c0-0.46-0.187-0.877-0.488-1.179s-0.719-0.488-1.179-0.488-0.877 0.187-1.179 0.488-0.488 0.719-0.488 1.179v3.333c0 0.46 0.187 0.877 0.488 1.179s0.719 0.488 1.179 0.488zM9.667 6c-0.093 0-0.176-0.037-0.236-0.097s-0.097-0.143-0.097-0.236v-3.333c0-0.093 0.037-0.176 0.097-0.236s0.143-0.097 0.236-0.097 0.176 0.037 0.236 0.097 0.097 0.143 0.097 0.236v3.333c0 0.093-0.037 0.176-0.097 0.236s-0.143 0.097-0.236 0.097zM13.667 7.333c0.46 0 0.877-0.187 1.179-0.488s0.488-0.719 0.488-1.179-0.187-0.877-0.488-1.179-0.719-0.488-1.179-0.488-0.877 0.187-1.179 0.488-0.488 0.719-0.488 1.179v1c0 0.368 0.299 0.667 0.667 0.667zM13.667 6h-0.333v-0.333c0-0.093 0.037-0.176 0.097-0.236s0.143-0.097 0.236-0.097 0.176 0.037 0.236 0.097 0.097 0.143 0.097 0.236-0.037 0.176-0.097 0.236-0.143 0.097-0.236 0.097zM6.333 8.667c-0.46 0-0.877 0.187-1.179 0.488s-0.488 0.719-0.488 1.179v3.333c0 0.46 0.187 0.877 0.488 1.179s0.719 0.488 1.179 0.488 0.877-0.187 1.179-0.488 0.488-0.719 0.488-1.179v-3.333c0-0.46-0.187-0.877-0.488-1.179s-0.719-0.488-1.179-0.488zM6.333 10c0.093 0 0.176 0.037 0.236 0.097s0.097 0.143 0.097 0.236v3.333c0 0.093-0.037 0.176-0.097 0.236s-0.143 0.097-0.236 0.097-0.176-0.037-0.236-0.097-0.097-0.143-0.097-0.236v-3.333c0-0.093 0.037-0.176 0.097-0.236s0.143-0.097 0.236-0.097zM2.333 8.667c-0.46 0-0.877 0.187-1.179 0.488s-0.488 0.719-0.488 1.179 0.187 0.877 0.488 1.179 0.719 0.488 1.179 0.488 0.877-0.187 1.179-0.488 0.488-0.719 0.488-1.179v-1c0-0.368-0.299-0.667-0.667-0.667zM2.333 10h0.333v0.333c0 0.093-0.037 0.176-0.097 0.236s-0.143 0.097-0.236 0.097-0.176-0.037-0.236-0.097-0.097-0.143-0.097-0.236 0.037-0.176 0.097-0.236 0.143-0.097 0.236-0.097zM8.667 9.667c0 0.46 0.187 0.877 0.488 1.179s0.719 0.488 1.179 0.488h3.333c0.46 0 0.877-0.187 1.179-0.488s0.488-0.719 0.488-1.179-0.187-0.877-0.488-1.179-0.719-0.488-1.179-0.488h-3.333c-0.46 0-0.877 0.187-1.179 0.488s-0.488 0.719-0.488 1.179zM10 9.667c0-0.093 0.037-0.176 0.097-0.236s0.143-0.097 0.236-0.097h3.333c0.093 0 0.176 0.037 0.236 0.097s0.097 0.143 0.097 0.236-0.037 0.176-0.097 0.236-0.143 0.097-0.236 0.097h-3.333c-0.093 0-0.176-0.037-0.236-0.097s-0.097-0.143-0.097-0.236zM10.333 13.333c0.093 0 0.176 0.037 0.236 0.097s0.097 0.143 0.097 0.236-0.037 0.176-0.097 0.236-0.143 0.097-0.236 0.097-0.176-0.037-0.236-0.097-0.097-0.143-0.097-0.236v-0.333zM10.333 12h-1c-0.368 0-0.667 0.299-0.667 0.667v1c0 0.46 0.187 0.877 0.488 1.179s0.719 0.488 1.179 0.488 0.877-0.187 1.179-0.488 0.488-0.719 0.488-1.179-0.187-0.877-0.488-1.179-0.719-0.488-1.179-0.488zM6 6.333c0 0.093-0.037 0.176-0.097 0.236s-0.143 0.097-0.236 0.097h-3.333c-0.093 0-0.176-0.037-0.236-0.097s-0.097-0.143-0.097-0.236 0.037-0.176 0.097-0.236 0.143-0.097 0.236-0.097h3.333c0.093 0 0.176 0.037 0.236 0.097s0.097 0.143 0.097 0.236zM7.333 6.333c0-0.46-0.187-0.877-0.488-1.179s-0.719-0.488-1.179-0.488h-3.333c-0.46 0-0.877 0.187-1.179 0.488s-0.488 0.719-0.488 1.179 0.187 0.877 0.488 1.179 0.719 0.488 1.179 0.488h3.333c0.46 0 0.877-0.187 1.179-0.488s0.488-0.719 0.488-1.179zM5.667 2.667c-0.093 0-0.176-0.037-0.236-0.097s-0.097-0.143-0.097-0.236 0.037-0.176 0.097-0.236 0.143-0.097 0.236-0.097 0.176 0.037 0.236 0.097 0.097 0.143 0.097 0.236v0.333zM5.667 4h1c0.368 0 0.667-0.299 0.667-0.667v-1c0-0.46-0.187-0.877-0.488-1.179s-0.719-0.488-1.179-0.488-0.877 0.187-1.179 0.488-0.488 0.719-0.488 1.179 0.187 0.877 0.488 1.179 0.719 0.488 1.179 0.488z\"></path>\n </svg>\n `\n },\n {\n name: 'slash',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>slash</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM12.688 11.745l-8.433-8.433c1.027-0.821 2.329-1.312 3.745-1.312 1.657 0 3.156 0.671 4.243 1.757s1.757 2.585 1.757 4.243c0 1.417-0.491 2.719-1.312 3.745zM3.312 4.255l8.433 8.433c-1.027 0.821-2.329 1.312-3.745 1.312-1.657 0-3.156-0.671-4.243-1.757s-1.757-2.585-1.757-4.243c0-1.417 0.491-2.719 1.312-3.745z\"></path>\n </svg>\n `\n },\n {\n name: 'sliders',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>sliders</title>\n <path d=\"M3.333 6.667v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM8.667 14v-6c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v6c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM14 8v-6c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v6c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM0.667 10h1.333v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM6 6h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM11.333 11.333h1.333v2.667c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'smartphone',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>smartphone</title>\n <path d=\"M4.667 0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h6.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-10.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM4.667 2h6.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v10.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-6.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM8.667 12c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'smile',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>smile</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM4.8 9.733c0 0 0.087 0.115 0.221 0.255 0.097 0.102 0.225 0.227 0.385 0.36 0.225 0.187 0.515 0.393 0.865 0.569 0.47 0.235 1.053 0.416 1.73 0.416s1.26-0.181 1.73-0.416c0.35-0.175 0.64-0.381 0.865-0.569 0.159-0.133 0.288-0.258 0.385-0.36 0.133-0.14 0.221-0.255 0.221-0.255 0.221-0.295 0.161-0.713-0.133-0.933s-0.713-0.161-0.933 0.133l-0.121 0.137c-0.067 0.070-0.158 0.159-0.272 0.255-0.162 0.135-0.366 0.279-0.607 0.4-0.32 0.159-0.7 0.275-1.134 0.275s-0.814-0.115-1.134-0.275c-0.24-0.12-0.445-0.265-0.607-0.4-0.114-0.095-0.205-0.185-0.272-0.255l-0.121-0.137c-0.221-0.295-0.639-0.354-0.933-0.133s-0.354 0.639-0.133 0.933z\"></path>\n </svg>\n `\n },\n {\n name: 'speaker',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>speaker</title>\n <path d=\"M4 0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h8c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-10.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM4 2h8c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v10.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM11.333 9.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM10 9.333c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM8.667 4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'square',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>square</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM3.333 2.667h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'star',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>star</title>\n <path d=\"M8.598 1.038c-0.061-0.126-0.165-0.235-0.303-0.303-0.33-0.163-0.73-0.027-0.893 0.303l-1.905 3.859-4.261 0.623c-0.139 0.019-0.274 0.085-0.381 0.194-0.257 0.264-0.251 0.686 0.012 0.943l3.082 3.002-0.727 4.241c-0.024 0.138-0.004 0.287 0.067 0.423 0.171 0.326 0.575 0.451 0.901 0.28l3.809-2.003 3.81 2.003c0.124 0.066 0.272 0.093 0.423 0.067 0.363-0.062 0.607-0.407 0.545-0.77l-0.727-4.241 3.082-3.002c0.101-0.097 0.173-0.229 0.195-0.381 0.053-0.364-0.199-0.703-0.563-0.756l-4.26-0.623zM8 2.839l1.462 2.963c0.101 0.203 0.291 0.333 0.501 0.365l3.271 0.478-2.366 2.305c-0.163 0.159-0.227 0.379-0.192 0.59l0.558 3.255-2.924-1.538c-0.201-0.105-0.431-0.099-0.621 0l-2.924 1.538 0.558-3.255c0.039-0.224-0.039-0.441-0.192-0.59l-2.366-2.305 3.271-0.479c0.224-0.033 0.406-0.173 0.501-0.364z\"></path>\n </svg>\n `\n },\n {\n name: 'stop-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>stop-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM6 5.333c-0.368 0-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667h4c0.368 0 0.667-0.299 0.667-0.667v-4c0-0.368-0.299-0.667-0.667-0.667zM6.667 6.667h2.667v2.667h-2.667z\"></path>\n </svg>\n `\n },\n {\n name: 'sun',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>sun</title>\n <path d=\"M12 8c0-1.105-0.449-2.105-1.171-2.829s-1.724-1.171-2.829-1.171-2.105 0.449-2.829 1.171-1.171 1.724-1.171 2.829 0.449 2.105 1.171 2.829 1.724 1.171 2.829 1.171 2.105-0.449 2.829-1.171 1.171-1.724 1.171-2.829zM10.667 8c0 0.737-0.298 1.402-0.781 1.885s-1.149 0.781-1.885 0.781-1.402-0.298-1.885-0.781-0.781-1.149-0.781-1.885 0.298-1.402 0.781-1.885 1.149-0.781 1.885-0.781 1.402 0.298 1.885 0.781 0.781 1.149 0.781 1.885zM7.333 0.667v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 14v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM2.342 3.285l0.947 0.947c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-0.947-0.947c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM11.769 12.711l0.947 0.947c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-0.947-0.947c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM0.667 8.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM14 8.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM3.285 13.658l0.947-0.947c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-0.947 0.947c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM12.711 4.231l0.947-0.947c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-0.947 0.947c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'sunrise',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>sunrise</title>\n <path d=\"M12 12c0-1.105-0.449-2.105-1.171-2.829s-1.724-1.171-2.829-1.171-2.105 0.449-2.829 1.171-1.171 1.724-1.171 2.829c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667c0-0.737 0.298-1.402 0.781-1.885s1.149-0.781 1.885-0.781 1.402 0.298 1.885 0.781 0.781 1.149 0.781 1.885c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM2.342 7.285l0.947 0.947c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-0.947-0.947c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM0.667 12.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM14 12.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM12.711 8.231l0.947-0.947c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-0.947 0.947c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM15.333 14h-14.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h14.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM5.805 4.471l1.529-1.529v3.057c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-3.057l1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2.667-2.667c-0.064-0.064-0.137-0.112-0.216-0.145s-0.165-0.051-0.255-0.051c-0.087 0-0.174 0.017-0.255 0.051-0.079 0.033-0.152 0.081-0.216 0.145l-2.667 2.667c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'sunset',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>sunset</title>\n <path d=\"M12 12c0-1.105-0.449-2.105-1.171-2.829s-1.724-1.171-2.829-1.171-2.105 0.449-2.829 1.171-1.171 1.724-1.171 2.829c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667c0-0.737 0.298-1.402 0.781-1.885s1.149-0.781 1.885-0.781 1.402 0.298 1.885 0.781 0.781 1.149 0.781 1.885c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM2.342 7.285l0.947 0.947c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-0.947-0.947c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM0.667 12.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM14 12.667h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM12.711 8.231l0.947-0.947c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-0.947 0.947c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM15.333 14h-14.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h14.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM10.195 2.862l-1.529 1.529v-3.057c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v3.057l-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.667 2.667c0.064 0.064 0.137 0.112 0.216 0.145s0.165 0.051 0.255 0.051c0.087 0 0.174-0.017 0.255-0.051 0.079-0.033 0.152-0.081 0.216-0.145l2.667-2.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'tablet',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>tablet</title>\n <path d=\"M12 15.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-10.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-8c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v10.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586zM12 14h-8c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-10.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h8c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v10.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195zM8.667 12c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'tag',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>tag</title>\n <path d=\"M14.198 9.411c0.389-0.391 0.583-0.901 0.583-1.41s-0.193-1.021-0.583-1.413l-5.727-5.727c-0.121-0.12-0.287-0.195-0.471-0.195h-6.667c-0.368 0-0.667 0.299-0.667 0.667v6.667c0 0.171 0.065 0.341 0.195 0.472l5.728 5.721c0.391 0.39 0.904 0.585 1.415 0.585s1.024-0.196 1.413-0.586zM13.255 8.469l-4.78 4.78c-0.131 0.131-0.3 0.196-0.471 0.196s-0.341-0.065-0.471-0.195l-5.533-5.527v-5.723h5.724l5.531 5.531c0.128 0.129 0.193 0.298 0.193 0.469s-0.065 0.339-0.193 0.468zM5.333 4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'target',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>target</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM12.667 8c0-1.289-0.523-2.456-1.367-3.3s-2.011-1.367-3.3-1.367-2.456 0.523-3.3 1.367-1.367 2.011-1.367 3.3 0.523 2.456 1.367 3.3 2.011 1.367 3.3 1.367 2.456-0.523 3.3-1.367 1.367-2.011 1.367-3.3zM11.333 8c0 0.921-0.373 1.753-0.976 2.357s-1.437 0.976-2.357 0.976-1.753-0.373-2.357-0.976-0.976-1.437-0.976-2.357 0.373-1.753 0.976-2.357 1.437-0.976 2.357-0.976 1.753 0.373 2.357 0.976 0.976 1.437 0.976 2.357zM10 8c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586-1.053 0.225-1.414 0.586-0.586 0.862-0.586 1.414 0.225 1.053 0.586 1.414 0.862 0.586 1.414 0.586 1.053-0.225 1.414-0.586 0.586-0.862 0.586-1.414zM8.667 8c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195-0.35-0.074-0.471-0.195-0.195-0.287-0.195-0.471 0.074-0.35 0.195-0.471 0.287-0.195 0.471-0.195 0.35 0.074 0.471 0.195 0.195 0.287 0.195 0.471z\"></path>\n </svg>\n `\n },\n {\n name: 'terminal',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>terminal</title>\n <path d=\"M3.138 11.805l4-4c0.261-0.261 0.261-0.683 0-0.943l-4-4c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l3.529 3.529-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM8 13.333h5.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-5.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'thermometer',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>thermometer</title>\n <path d=\"M8.667 9.84c0.001 0.219 0.107 0.431 0.302 0.558 0.233 0.152 0.457 0.369 0.639 0.64 0.358 0.536 0.465 1.165 0.349 1.751s-0.456 1.127-0.992 1.485-1.165 0.465-1.751 0.349-1.127-0.456-1.485-0.992-0.465-1.165-0.349-1.751 0.456-1.127 0.992-1.485c0.179-0.121 0.295-0.325 0.295-0.555v-7.507c0-0.276 0.111-0.525 0.293-0.707s0.431-0.293 0.707-0.293 0.525 0.111 0.707 0.293 0.293 0.431 0.293 0.707zM10 9.504v-7.171c0-0.644-0.262-1.229-0.683-1.65s-1.006-0.683-1.65-0.683-1.229 0.262-1.65 0.683-0.683 1.006-0.683 1.65v7.173c-0.671 0.553-1.103 1.307-1.263 2.113-0.183 0.919-0.015 1.911 0.547 2.753s1.414 1.376 2.333 1.559 1.911 0.015 2.753-0.547 1.376-1.414 1.559-2.333 0.015-1.911-0.547-2.753c-0.205-0.306-0.449-0.573-0.715-0.793z\"></path>\n </svg>\n `\n },\n {\n name: 'thumbs-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>thumbs-down</title>\n <path d=\"M12 8v-6h1.113c0.241-0.004 0.449 0.079 0.607 0.221 0.142 0.127 0.243 0.3 0.279 0.497v4.525c-0.025 0.227-0.139 0.42-0.303 0.555-0.157 0.129-0.358 0.204-0.574 0.201zM6 10.667v2c0 0.736 0.299 1.404 0.781 1.885s1.149 0.781 1.885 0.781c0.27 0 0.503-0.161 0.609-0.396l2.491-5.604h1.337c0.54 0.008 1.046-0.18 1.44-0.504 0.415-0.341 0.706-0.834 0.783-1.407 0.004-0.027 0.006-0.058 0.006-0.089v-4.667c0-0.028-0.002-0.059-0.006-0.091-0.074-0.535-0.337-1.007-0.717-1.347-0.4-0.358-0.931-0.571-1.497-0.561h-9.3c-0.511-0.006-0.988 0.187-1.347 0.509-0.337 0.301-0.571 0.717-0.645 1.189l-0.92 6.001c-0.083 0.547 0.064 1.076 0.367 1.487s0.765 0.709 1.31 0.791c0.11 0.016 0.222 0.024 0.328 0.022zM7.333 10c0-0.368-0.299-0.667-0.667-0.667l-3.83-0.001-0.059-0.007c-0.182-0.027-0.335-0.125-0.437-0.264s-0.15-0.313-0.123-0.495l0.92-5.999c0.025-0.159 0.104-0.299 0.217-0.4 0.12-0.107 0.277-0.17 0.458-0.168h6.853v6.525l-2.405 5.412c-0.205-0.065-0.388-0.179-0.537-0.328-0.242-0.242-0.391-0.574-0.391-0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'thumbs-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>thumbs-up</title>\n <path d=\"M4 8v6h-1.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-4.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM10 5.333v-2c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781c-0.27 0-0.503 0.161-0.609 0.396l-2.491 5.604h-1.567c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v4.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.52c0.511 0.006 0.988-0.187 1.347-0.509 0.337-0.301 0.571-0.717 0.645-1.189l0.92-6.001c0.083-0.547-0.064-1.076-0.367-1.487s-0.765-0.709-1.31-0.791c-0.11-0.017-0.222-0.025-0.328-0.023zM8.667 6c0 0.368 0.299 0.667 0.667 0.667l3.83 0.001 0.059 0.007c0.182 0.027 0.335 0.125 0.437 0.264s0.15 0.313 0.123 0.495l-0.92 5.999c-0.025 0.159-0.104 0.299-0.217 0.4-0.12 0.107-0.277 0.171-0.457 0.169l-6.854-0.001v-6.525l2.405-5.412c0.205 0.065 0.388 0.179 0.537 0.328 0.242 0.242 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'toggle-left',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>toggle-left</title>\n <path d=\"M5.333 2.667c-1.473 0-2.807 0.598-3.771 1.562s-1.562 2.299-1.562 3.771 0.598 2.807 1.562 3.771 2.299 1.562 3.771 1.562h5.333c1.473 0 2.807-0.598 3.771-1.562s1.562-2.299 1.562-3.771-0.598-2.807-1.562-3.771-2.299-1.562-3.771-1.562zM5.333 4h5.333c1.105 0 2.104 0.447 2.829 1.171s1.171 1.724 1.171 2.829-0.447 2.104-1.171 2.829-1.724 1.171-2.829 1.171h-5.333c-1.105 0-2.104-0.447-2.829-1.171s-1.171-1.724-1.171-2.829 0.447-2.104 1.171-2.829 1.724-1.171 2.829-1.171zM8 8c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM6.667 8c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'toggle-right',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>toggle-right</title>\n <path d=\"M5.333 2.667c-1.473 0-2.807 0.598-3.771 1.562s-1.562 2.299-1.562 3.771 0.598 2.807 1.562 3.771 2.299 1.562 3.771 1.562h5.333c1.473 0 2.807-0.598 3.771-1.562s1.562-2.299 1.562-3.771-0.598-2.807-1.562-3.771-2.299-1.562-3.771-1.562zM5.333 4h5.333c1.105 0 2.104 0.447 2.829 1.171s1.171 1.724 1.171 2.829-0.447 2.104-1.171 2.829-1.724 1.171-2.829 1.171h-5.333c-1.105 0-2.104-0.447-2.829-1.171s-1.171-1.724-1.171-2.829 0.447-2.104 1.171-2.829 1.724-1.171 2.829-1.171zM13.333 8c0-0.736-0.299-1.404-0.781-1.885s-1.149-0.781-1.885-0.781-1.404 0.299-1.885 0.781-0.781 1.149-0.781 1.885 0.299 1.404 0.781 1.885 1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885zM12 8c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943 0.149-0.701 0.391-0.943 0.574-0.391 0.943-0.391 0.701 0.149 0.943 0.391 0.391 0.574 0.391 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'trash-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>trash-2</title>\n <path d=\"M12 4.667v8.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-6.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-8.667zM11.333 3.333v-0.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v0.667h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h0.667v8.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h6.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8.667h0.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM6 3.333v-0.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v0.667zM6 7.333v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM8.667 7.333v4c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'trash',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>trash</title>\n <path d=\"M12 4.667v8.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-6.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-8.667zM11.333 3.333v-0.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v0.667h-2.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h0.667v8.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h6.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-8.667h0.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667zM6 3.333v-0.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195h2.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'trello',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>trello</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM3.333 2.667h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM4.667 4c-0.368 0-0.667 0.299-0.667 0.667v6c0 0.368 0.299 0.667 0.667 0.667h2c0.368 0 0.667-0.299 0.667-0.667v-6c0-0.368-0.299-0.667-0.667-0.667zM5.333 5.333h0.667v4.667h-0.667zM9.333 4c-0.368 0-0.667 0.299-0.667 0.667v3.333c0 0.368 0.299 0.667 0.667 0.667h2c0.368 0 0.667-0.299 0.667-0.667v-3.333c0-0.368-0.299-0.667-0.667-0.667zM10 5.333h0.667v2h-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'trending-down',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>trending-down</title>\n <path d=\"M11.333 12.667h4c0.091 0 0.177-0.018 0.255-0.051s0.152-0.081 0.216-0.145 0.112-0.137 0.145-0.216c0.033-0.079 0.051-0.165 0.051-0.255v-4c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.391l-5.195-5.195c-0.261-0.261-0.683-0.261-0.943 0l-2.862 2.862-4.529-4.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l5 5c0.261 0.261 0.683 0.261 0.943 0l2.862-2.862 4.724 4.724h-2.391c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'trending-up',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>trending-up</title>\n <path d=\"M11.333 4.667h2.391l-4.724 4.724-2.862-2.862c-0.261-0.261-0.683-0.261-0.943 0l-5 5c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l4.529-4.529 2.862 2.862c0.261 0.261 0.683 0.261 0.943 0l5.195-5.195v2.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4c0-0.091-0.018-0.177-0.051-0.255s-0.081-0.152-0.144-0.215c-0.001-0.001-0.001-0.001-0.001-0.001-0.061-0.061-0.135-0.111-0.215-0.144-0.079-0.033-0.165-0.051-0.255-0.051h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'triangle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>triangle</title>\n <path d=\"M7.432 2.916c0.049-0.082 0.123-0.161 0.223-0.221 0.157-0.095 0.337-0.119 0.504-0.077s0.316 0.144 0.409 0.299l5.644 9.422c0.051 0.087 0.085 0.199 0.087 0.321 0.002 0.184-0.070 0.351-0.19 0.473s-0.285 0.199-0.462 0.201h-11.291c-0.101-0.001-0.214-0.027-0.321-0.089-0.159-0.092-0.266-0.239-0.311-0.405s-0.025-0.346 0.061-0.497zM6.288 2.231l-5.647 9.427c-0.281 0.487-0.337 1.033-0.205 1.527s0.453 0.939 0.932 1.215c0.309 0.179 0.651 0.267 0.983 0.268h11.295c0.559-0.006 1.058-0.236 1.415-0.601s0.576-0.869 0.57-1.421c-0.004-0.357-0.102-0.696-0.271-0.983l-5.649-9.431c-0.288-0.475-0.74-0.787-1.236-0.909s-1.041-0.054-1.513 0.233c-0.286 0.173-0.517 0.41-0.675 0.676z\"></path>\n </svg>\n `\n },\n {\n name: 'truck',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>truck</title>\n <path d=\"M10 10h-8.667v-7.333h8.667v2.667zM11.333 6h1.724l1.609 1.609v2.391h-3.333zM4.667 12.333c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293-0.525-0.111-0.707-0.293-0.293-0.431-0.293-0.707 0.111-0.525 0.293-0.707 0.431-0.293 0.707-0.293 0.525 0.111 0.707 0.293 0.293 0.431 0.293 0.707zM14.667 12.333c0-0.358-0.081-0.697-0.225-1h0.891c0.368 0 0.667-0.299 0.667-0.667v-3.333c0-0.171-0.065-0.341-0.195-0.471l-2-2c-0.121-0.121-0.287-0.195-0.471-0.195h-2v-2.667c0-0.368-0.299-0.667-0.667-0.667h-10c-0.368 0-0.667 0.299-0.667 0.667v8.667c0 0.368 0.299 0.667 0.667 0.667h0.891c-0.144 0.303-0.225 0.642-0.225 1 0 0.644 0.262 1.229 0.683 1.65s1.006 0.683 1.65 0.683 1.229-0.262 1.65-0.683 0.683-1.006 0.683-1.65c0-0.358-0.081-0.697-0.225-1h4.449c-0.144 0.303-0.225 0.642-0.225 1 0 0.644 0.262 1.229 0.683 1.65s1.006 0.683 1.65 0.683 1.229-0.262 1.65-0.683 0.683-1.006 0.683-1.65zM13.333 12.333c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293-0.525-0.111-0.707-0.293-0.293-0.431-0.293-0.707 0.111-0.525 0.293-0.707 0.431-0.293 0.707-0.293 0.525 0.111 0.707 0.293 0.293 0.431 0.293 0.707z\"></path>\n </svg>\n `\n },\n {\n name: 'tv',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>tv</title>\n <path d=\"M2.667 5.333h10.667c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v7.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-10.667c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-7.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM10.862 0.862l-2.862 2.862-2.862-2.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.195 2.195h-3.724c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v7.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h10.667c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-7.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-3.724l2.195-2.195c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'twitter',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>twitter</title>\n <path d=\"M13.889 3.508c-0.124 0.161-0.261 0.317-0.411 0.464-0.155 0.155-0.231 0.378-0.185 0.605 0.025 0.121 0.040 0.269 0.041 0.423 0 3.504-1.619 5.981-3.873 7.265-1.765 1.006-3.959 1.303-6.148 0.747 0.83-0.241 1.64-0.614 2.395-1.127 0.098-0.066 0.182-0.162 0.235-0.281 0.149-0.337-0.002-0.731-0.339-0.88-1.849-0.822-2.753-1.954-3.179-3.062-0.278-0.723-0.364-1.465-0.347-2.151 0.014-0.541 0.092-1.040 0.185-1.455 0.263 0.228 0.536 0.47 0.824 0.691 1.367 1.051 3.083 1.653 4.931 1.605 0.361-0.010 0.649-0.305 0.649-0.667v-0.674c-0.001-0.119 0.006-0.238 0.023-0.356 0.075-0.537 0.336-1.046 0.775-1.427 0.483-0.421 1.091-0.605 1.684-0.564s1.169 0.309 1.589 0.792c0.168 0.191 0.433 0.277 0.689 0.203 0.154-0.045 0.309-0.095 0.463-0.152zM14.949 1.455c-0.493 0.348-1.015 0.617-1.525 0.803-0.621-0.557-1.394-0.868-2.184-0.923-0.932-0.065-1.891 0.226-2.651 0.888-0.691 0.601-1.101 1.405-1.22 2.248-0.025 0.177-0.037 0.355-0.036 0.533-1.281-0.095-2.463-0.567-3.434-1.314-0.517-0.397-0.974-0.873-1.356-1.41-0.213-0.3-0.629-0.371-0.929-0.158-0.103 0.073-0.178 0.169-0.223 0.273 0 0-0.088 0.199-0.19 0.507-0.075 0.225-0.161 0.517-0.238 0.86-0.109 0.481-0.201 1.068-0.217 1.714-0.021 0.818 0.080 1.741 0.435 2.664 0.455 1.183 1.311 2.319 2.765 3.215-1.046 0.484-2.163 0.693-3.249 0.645-0.368-0.016-0.679 0.269-0.695 0.637-0.011 0.259 0.127 0.491 0.342 0.612 3.27 1.817 6.951 1.785 9.777 0.174 2.694-1.534 4.547-4.467 4.547-8.423-0.001-0.111-0.005-0.22-0.015-0.326 0.671-0.743 1.117-1.619 1.331-2.521 0.085-0.358-0.137-0.717-0.495-0.802-0.193-0.046-0.387-0.002-0.538 0.104z\"></path>\n </svg>\n `\n },\n {\n name: 'type',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>type</title>\n <path d=\"M7.333 3.333v9.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-9.333h4v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-2c0-0.368-0.299-0.667-0.667-0.667h-10.667c-0.368 0-0.667 0.299-0.667 0.667v2c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333z\"></path>\n </svg>\n `\n },\n {\n name: 'umbrella',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>umbrella</title>\n <path d=\"M15.997 7.937c-0.211-2.208-1.297-4.123-2.882-5.431s-3.67-2.013-5.878-1.803c-2.035 0.194-3.821 1.133-5.113 2.526-1.173 1.265-1.939 2.905-2.12 4.705-0.037 0.367 0.231 0.693 0.597 0.73 0.023 0.003 0.047 0.003 0.067 0.003h6.667v4c0 0.736 0.299 1.404 0.781 1.885s1.149 0.781 1.885 0.781 1.404-0.299 1.885-0.781 0.781-1.149 0.781-1.885c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667c0 0.369-0.149 0.701-0.391 0.943s-0.574 0.391-0.943 0.391-0.701-0.149-0.943-0.391-0.391-0.574-0.391-0.943v-4h6.667c0.368 0 0.667-0.299 0.667-0.667 0-0.022-0.001-0.045-0.003-0.063zM14.56 7.333h-13.116c0.258-1.216 0.839-2.316 1.657-3.197 1.078-1.163 2.565-1.943 4.263-2.105 1.842-0.176 3.579 0.411 4.903 1.503 1.145 0.945 1.977 2.267 2.294 3.8z\"></path>\n </svg>\n `\n },\n {\n name: 'underline',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>underline</title>\n <path d=\"M3.333 2v4.667c0 1.289 0.523 2.456 1.367 3.3s2.011 1.367 3.3 1.367 2.456-0.523 3.3-1.367 1.367-2.011 1.367-3.3v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v4.667c0 0.921-0.373 1.753-0.976 2.357s-1.437 0.976-2.357 0.976-1.753-0.373-2.357-0.976-0.976-1.437-0.976-2.357v-4.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM2.667 14.667h10.667c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-10.667c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'unlock',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>unlock</title>\n <path d=\"M3.333 8h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v4.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-4.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM5.333 6.667v-2c-0.001-0.737 0.297-1.403 0.779-1.887s1.148-0.782 1.885-0.783c0.677-0.001 1.293 0.25 1.763 0.667 0.425 0.377 0.731 0.888 0.853 1.473 0.075 0.361 0.428 0.592 0.789 0.517s0.592-0.428 0.517-0.789c-0.181-0.871-0.639-1.636-1.275-2.199-0.707-0.625-1.635-1.003-2.649-1.002-1.105 0.001-2.105 0.451-2.827 1.175s-1.17 1.725-1.169 2.829v2h-0.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v4.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-4.667c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586z\"></path>\n </svg>\n `\n },\n {\n name: 'upload-cloud',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>upload-cloud</title>\n <path d=\"M7.333 9.609v4.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-4.391l1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-2.667-2.667c-0.064-0.064-0.137-0.112-0.216-0.145-0.081-0.034-0.169-0.051-0.255-0.051-0.171 0-0.341 0.065-0.471 0.195l-2.667 2.667c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0zM13.913 12.845c0.969-0.529 1.634-1.401 1.923-2.383s0.203-2.075-0.325-3.044c-0.453-0.83-1.158-1.437-1.973-1.775-0.483-0.2-1.003-0.306-1.532-0.31h-0.351c-0.483-1.371-1.429-2.472-2.611-3.168-1.322-0.779-2.943-1.054-4.547-0.639s-2.889 1.441-3.668 2.763-1.054 2.943-0.639 4.547c0.248 0.958 0.715 1.807 1.317 2.475 0.246 0.274 0.668 0.296 0.941 0.050s0.296-0.668 0.050-0.941c-0.459-0.51-0.823-1.167-1.017-1.918-0.323-1.248-0.109-2.507 0.497-3.537s1.605-1.827 2.853-2.149 2.507-0.109 3.537 0.497 1.827 1.605 2.149 2.853c0.077 0.29 0.337 0.5 0.646 0.5h0.835c0.357 0.003 0.707 0.074 1.030 0.208 0.543 0.225 1.012 0.629 1.313 1.182 0.353 0.647 0.41 1.374 0.217 2.029s-0.635 1.236-1.282 1.588c-0.323 0.176-0.443 0.581-0.266 0.905s0.581 0.443 0.905 0.266z\"></path>\n </svg>\n `\n },\n {\n name: 'upload',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>upload</title>\n <path d=\"M13.333 10v2.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v2.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2.667c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM7.333 3.609v6.391c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-6.391l2.195 2.195c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.333-3.333c-0.064-0.064-0.137-0.112-0.216-0.145s-0.165-0.051-0.255-0.051c-0.087 0-0.174 0.017-0.255 0.051-0.079 0.033-0.152 0.081-0.216 0.145l-3.333 3.333c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'user-check',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>user-check</title>\n <path d=\"M11.333 14v-1.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-4.667c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h4.667c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM9 4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM7.667 4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM10.862 7.805l1.333 1.333c0.261 0.261 0.683 0.261 0.943 0l2.667-2.667c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-2.195 2.195-0.862-0.862c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'user-minus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>user-minus</title>\n <path d=\"M11.333 14v-1.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-4.667c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h4.667c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM9 4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM7.667 4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM15.333 6.667h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'user-plus',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>user-plus</title>\n <path d=\"M11.333 14v-1.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-4.667c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h4.667c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM9 4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM7.667 4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM15.333 6.667h-1.333v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h1.333v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'user-x',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>user-x</title>\n <path d=\"M11.333 14v-1.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-4.667c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h4.667c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM9 4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM7.667 4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM14.862 4.862l-1.195 1.195-1.195-1.195c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l1.195 1.195-1.195 1.195c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.195-1.195 1.195 1.195c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.195-1.195 1.195-1.195c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'user',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>user</title>\n <path d=\"M14 14v-1.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-5.333c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h5.333c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM11.333 4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM10 4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414z\"></path>\n </svg>\n `\n },\n {\n name: 'users',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>users</title>\n <path d=\"M12 14v-1.333c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976h-5.333c-0.92 0-1.755 0.374-2.357 0.976s-0.976 1.437-0.976 2.357v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333c0-0.553 0.223-1.051 0.586-1.414s0.861-0.586 1.414-0.586h5.333c0.553 0 1.051 0.223 1.414 0.586s0.586 0.861 0.586 1.414v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM9.333 4.667c0-0.92-0.374-1.755-0.976-2.357s-1.437-0.976-2.357-0.976-1.755 0.374-2.357 0.976-0.976 1.437-0.976 2.357 0.374 1.755 0.976 2.357 1.437 0.976 2.357 0.976 1.755-0.374 2.357-0.976 0.976-1.437 0.976-2.357zM8 4.667c0 0.553-0.223 1.051-0.586 1.414s-0.861 0.586-1.414 0.586-1.051-0.223-1.414-0.586-0.586-0.861-0.586-1.414 0.223-1.051 0.586-1.414 0.861-0.586 1.414-0.586 1.051 0.223 1.414 0.586 0.586 0.861 0.586 1.414zM16 14v-1.333c-0.001-0.83-0.305-1.59-0.811-2.174-0.435-0.502-1.019-0.874-1.686-1.051-0.356-0.094-0.721 0.118-0.815 0.474s0.118 0.721 0.474 0.815c0.405 0.107 0.757 0.332 1.019 0.635 0.303 0.351 0.485 0.804 0.485 1.301v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667zM10.501 2.733c0.535 0.137 0.963 0.477 1.225 0.918s0.354 0.98 0.217 1.515c-0.117 0.458-0.383 0.837-0.737 1.101-0.209 0.157-0.45 0.273-0.709 0.341-0.356 0.093-0.569 0.458-0.475 0.814s0.458 0.569 0.814 0.475c0.425-0.111 0.821-0.303 1.169-0.563 0.589-0.44 1.035-1.075 1.23-1.839 0.228-0.891 0.073-1.793-0.361-2.525s-1.15-1.302-2.041-1.531c-0.357-0.091-0.72 0.124-0.811 0.481s0.124 0.72 0.481 0.811z\"></path>\n </svg>\n `\n },\n {\n name: 'video-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>video-off</title>\n <path d=\"M7.107 4h2.227c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v2.227c0 0.184 0.075 0.351 0.195 0.471l0.667 0.667c0.234 0.234 0.599 0.258 0.862 0.069l2.943-2.128v5.361c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-6.667c0.001-0.134-0.041-0.272-0.127-0.391-0.216-0.298-0.633-0.365-0.931-0.149l-3.539 2.561-0.070-0.070v-1.951c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586h-2.227c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667zM3.057 4l6.943 6.943v0.391c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-7.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM0.195 1.138l1.545 1.545c-0.449 0.058-0.851 0.265-1.155 0.569-0.361 0.361-0.586 0.862-0.586 1.414v6.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h7.333c0.552 0 1.053-0.225 1.414-0.586 0.179-0.179 0.325-0.393 0.427-0.631l3.688 3.688c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-14.667-14.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'video',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>video</title>\n <path d=\"M14.667 5.962v4.076l-2.853-2.038zM2 2.667c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v6.667c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h7.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-2.038l3.613 2.581c0.299 0.214 0.716 0.145 0.93-0.155 0.084-0.119 0.125-0.255 0.124-0.388v-6.667c0-0.368-0.299-0.667-0.667-0.667-0.145 0-0.28 0.047-0.387 0.124l-3.613 2.581v-2.038c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM2 4h7.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v6.667c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-7.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-6.667c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195z\"></path>\n </svg>\n `\n },\n {\n name: 'voicemail',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>voicemail</title>\n <path d=\"M6 7.667c0 0.645-0.261 1.227-0.683 1.65s-1.005 0.683-1.65 0.683-1.227-0.261-1.65-0.683-0.683-1.005-0.683-1.65 0.261-1.227 0.683-1.65 1.005-0.683 1.65-0.683 1.227 0.261 1.65 0.683 0.683 1.005 0.683 1.65zM14.667 7.667c0 0.645-0.261 1.227-0.683 1.65s-1.005 0.683-1.65 0.683-1.227-0.261-1.65-0.683-0.683-1.005-0.683-1.65 0.261-1.227 0.683-1.65 1.005-0.683 1.65-0.683 1.227 0.261 1.65 0.683 0.683 1.005 0.683 1.65zM3.667 11.333h8.667c1.013 0 1.93-0.411 2.593-1.074s1.074-1.58 1.074-2.593-0.411-1.93-1.074-2.593-1.58-1.074-2.593-1.074-1.93 0.411-2.593 1.074-1.074 1.58-1.074 2.593c0 0.886 0.315 1.7 0.838 2.333h-3.009c0.523-0.633 0.838-1.447 0.838-2.333 0-1.013-0.411-1.93-1.074-2.593s-1.58-1.074-2.593-1.074-1.93 0.411-2.593 1.074-1.074 1.58-1.074 2.593 0.411 1.93 1.074 2.593 1.58 1.074 2.593 1.074z\"></path>\n </svg>\n `\n },\n {\n name: 'volume-1',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>volume-1</title>\n <path d=\"M6.667 4.721v6.559l-2.25-1.8c-0.113-0.091-0.259-0.147-0.417-0.147h-2v-2.667h2c0.145 0.001 0.293-0.047 0.417-0.146zM6.917 2.813l-3.151 2.521h-2.433c-0.368 0-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667h2.433l3.151 2.521c0.287 0.23 0.707 0.183 0.937-0.104 0.099-0.123 0.147-0.271 0.146-0.417v-9.333c0-0.368-0.299-0.667-0.667-0.667-0.158 0-0.303 0.055-0.417 0.146zM9.889 6.111c0.521 0.521 0.781 1.202 0.781 1.885s-0.26 1.365-0.781 1.885c-0.26 0.261-0.26 0.683 0 0.943s0.683 0.26 0.943 0c0.781-0.781 1.171-1.805 1.171-2.828s-0.391-2.047-1.171-2.828c-0.26-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'volume-2',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>volume-2</title>\n <path d=\"M6.667 4.721v6.559l-2.25-1.8c-0.113-0.091-0.259-0.147-0.417-0.147h-2v-2.667h2c0.145 0.001 0.293-0.047 0.417-0.146zM6.917 2.813l-3.151 2.521h-2.433c-0.368 0-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667h2.433l3.151 2.521c0.287 0.23 0.707 0.183 0.937-0.104 0.099-0.123 0.147-0.271 0.146-0.417v-9.333c0-0.368-0.299-0.667-0.667-0.667-0.158 0-0.303 0.055-0.417 0.146zM12.242 3.758c1.171 1.172 1.757 2.706 1.757 4.242s-0.585 3.070-1.757 4.242c-0.26 0.261-0.26 0.683 0 0.943s0.683 0.26 0.943 0c1.431-1.431 2.147-3.309 2.147-5.185s-0.716-3.753-2.147-5.185c-0.26-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943zM9.889 6.111c0.521 0.521 0.781 1.202 0.781 1.885s-0.26 1.365-0.781 1.885c-0.26 0.261-0.26 0.683 0 0.943s0.683 0.26 0.943 0c0.781-0.781 1.171-1.805 1.171-2.828s-0.391-2.047-1.171-2.828c-0.26-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'volume-x',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>volume-x</title>\n <path d=\"M6.667 4.721v6.559l-2.25-1.8c-0.113-0.091-0.259-0.147-0.417-0.147h-2v-2.667h2c0.145 0.001 0.293-0.047 0.417-0.146zM6.917 2.813l-3.151 2.521h-2.433c-0.368 0-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667h2.433l3.151 2.521c0.287 0.23 0.707 0.183 0.937-0.104 0.099-0.123 0.147-0.271 0.146-0.417v-9.333c0-0.368-0.299-0.667-0.667-0.667-0.158 0-0.303 0.055-0.417 0.146zM10.862 6.471l1.529 1.529-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529 1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'volume',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>volume</title>\n <path d=\"M6.667 4.721v6.559l-2.25-1.8c-0.113-0.091-0.259-0.147-0.417-0.147h-2v-2.667h2c0.145 0.001 0.293-0.047 0.417-0.146zM6.917 2.813l-3.151 2.521h-2.433c-0.368 0-0.667 0.299-0.667 0.667v4c0 0.368 0.299 0.667 0.667 0.667h2.433l3.151 2.521c0.287 0.23 0.707 0.183 0.937-0.104 0.099-0.123 0.147-0.271 0.146-0.417v-9.333c0-0.368-0.299-0.667-0.667-0.667-0.158 0-0.303 0.055-0.417 0.146z\"></path>\n </svg>\n `\n },\n {\n name: 'watch',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>watch</title>\n <path d=\"M7.333 6v2c0 0.184 0.075 0.351 0.195 0.471l1 1c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-0.805-0.805v-1.724c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667zM10.22 12.851l-0.111 1.209c-0.016 0.177-0.098 0.33-0.222 0.439-0.12 0.106-0.277 0.169-0.447 0.169h-2.887c-0.18 0.001-0.34-0.067-0.46-0.179-0.117-0.109-0.194-0.259-0.209-0.429l-0.111-1.211c0.677 0.312 1.432 0.486 2.227 0.486 0.792 0 1.544-0.173 2.22-0.483zM5.458 4.911c0.691-0.57 1.576-0.911 2.542-0.911 1.105 0 2.104 0.447 2.829 1.171s1.171 1.724 1.171 2.829-0.447 2.104-1.171 2.829c-0.069 0.069-0.141 0.136-0.215 0.2-0.023 0.021-0.047 0.041-0.071 0.060-0.691 0.57-1.576 0.911-2.542 0.911-1.105 0-2.104-0.447-2.829-1.171s-1.171-1.724-1.171-2.829 0.447-2.104 1.171-2.829c0.069-0.069 0.141-0.136 0.215-0.2 0.023-0.021 0.047-0.041 0.071-0.060zM11.661 4.121l-0.21-2.303c-0.047-0.504-0.279-0.953-0.625-1.278-0.359-0.337-0.844-0.542-1.372-0.54h-2.903c-0.503 0.002-0.969 0.191-1.323 0.505-0.368 0.325-0.617 0.788-0.665 1.315l-0.209 2.289c-0.042 0.039-0.084 0.080-0.125 0.121-0.964 0.965-1.562 2.299-1.562 3.771s0.598 2.807 1.562 3.771c0.039 0.039 0.078 0.077 0.117 0.114l0.21 2.297c0.047 0.504 0.279 0.953 0.625 1.278 0.359 0.337 0.844 0.542 1.372 0.54h2.885c0.506 0.001 0.975-0.188 1.331-0.503 0.369-0.326 0.619-0.789 0.667-1.317l0.209-2.289c0.042-0.039 0.084-0.080 0.125-0.121 0.965-0.965 1.563-2.299 1.563-3.771s-0.598-2.807-1.562-3.771c-0.036-0.036-0.073-0.072-0.11-0.107zM5.78 3.149l0.111-1.209c0.016-0.177 0.098-0.329 0.221-0.438 0.119-0.106 0.275-0.169 0.445-0.169h2.897c0.18-0.001 0.34 0.067 0.46 0.179 0.117 0.109 0.194 0.259 0.209 0.429l0.111 1.214c-0.679-0.313-1.436-0.489-2.233-0.489-0.792 0-1.544 0.173-2.22 0.483z\"></path>\n </svg>\n `\n },\n {\n name: 'wifi-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>wifi-off</title>\n <path d=\"M10.854 7.973c0.526 0.257 0.999 0.571 1.376 0.898 0.279 0.241 0.699 0.211 0.941-0.068s0.211-0.699-0.068-0.941c-0.469-0.406-1.039-0.783-1.664-1.089-0.331-0.161-0.73-0.024-0.891 0.307s-0.024 0.73 0.307 0.891zM7.193 4.031c2.679-0.216 5.195 0.644 7.128 2.222 0.099 0.081 0.195 0.163 0.291 0.247 0.276 0.243 0.697 0.217 0.941-0.059s0.217-0.697-0.059-0.941c-0.108-0.095-0.218-0.188-0.329-0.279-2.189-1.787-5.043-2.763-8.079-2.519-0.366 0.030-0.639 0.351-0.61 0.718s0.351 0.641 0.718 0.611zM6.073 11.283c0.66-0.469 1.431-0.663 2.183-0.604 0.594 0.047 1.177 0.252 1.682 0.606 0.155 0.109 0.341 0.142 0.513 0.108l4.411 4.411c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-8.5-8.5c-0.033-0.042-0.071-0.080-0.113-0.113l-6.054-6.054c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l2.725 2.725c-0.838 0.419-1.66 0.969-2.415 1.637-0.276 0.244-0.302 0.665-0.058 0.941s0.665 0.302 0.941 0.058c0.794-0.702 1.666-1.251 2.535-1.634l1.549 1.549c-0.905 0.305-1.781 0.785-2.566 1.441-0.283 0.236-0.32 0.657-0.084 0.939s0.657 0.32 0.939 0.084c0.847-0.708 1.816-1.167 2.792-1.383l1.859 1.859c-0.017-0.001-0.035-0.003-0.052-0.005-1.053-0.083-2.136 0.19-3.059 0.846-0.3 0.213-0.371 0.629-0.157 0.929s0.629 0.371 0.929 0.157zM8.667 13.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'wifi',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>wifi</title>\n <path d=\"M3.76 8.879c1.308-1.089 2.907-1.593 4.489-1.537 1.445 0.051 2.873 0.571 4.047 1.539 0.284 0.234 0.704 0.194 0.939-0.090s0.194-0.704-0.090-0.939c-1.405-1.159-3.116-1.781-4.848-1.842-1.897-0.067-3.821 0.537-5.39 1.845-0.283 0.235-0.321 0.656-0.085 0.939s0.656 0.321 0.939 0.085zM1.387 6.5c1.958-1.726 4.401-2.547 6.825-2.491 2.295 0.053 4.572 0.891 6.403 2.493 0.277 0.243 0.698 0.215 0.941-0.063s0.215-0.698-0.063-0.941c-2.071-1.813-4.651-2.763-7.25-2.823-2.747-0.063-5.518 0.869-7.737 2.825-0.277 0.243-0.303 0.665-0.059 0.941s0.665 0.303 0.941 0.059zM6.073 11.283c0.66-0.469 1.431-0.663 2.183-0.604 0.594 0.047 1.177 0.252 1.682 0.606 0.301 0.211 0.717 0.138 0.929-0.163s0.138-0.717-0.163-0.929c-0.702-0.492-1.513-0.778-2.343-0.843-1.053-0.083-2.136 0.19-3.059 0.846-0.3 0.213-0.371 0.629-0.157 0.929s0.629 0.371 0.929 0.157zM8.667 13.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667 0.299 0.667 0.667 0.667 0.667-0.299 0.667-0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'wind',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>wind</title>\n <path d=\"M6.866 3.53c0.13-0.131 0.299-0.196 0.471-0.197s0.341 0.064 0.472 0.194 0.196 0.299 0.197 0.471-0.064 0.341-0.194 0.472c-0.128 0.129-0.295 0.195-0.465 0.197h-6.013c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h6.029c0.505-0.006 1.011-0.203 1.395-0.59 0.389-0.391 0.583-0.905 0.581-1.416s-0.199-1.023-0.59-1.413-0.905-0.583-1.415-0.581-1.023 0.199-1.413 0.59c-0.26 0.261-0.259 0.683 0.003 0.943s0.683 0.258 0.943-0.003zM7.921 13.41c0.389 0.391 0.901 0.589 1.413 0.59s1.025-0.193 1.416-0.581 0.589-0.901 0.59-1.413-0.193-1.025-0.581-1.416c-0.385-0.387-0.89-0.584-1.395-0.59h-8.029c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h8.013c0.17 0.002 0.337 0.067 0.465 0.197 0.13 0.131 0.195 0.301 0.194 0.472s-0.066 0.341-0.197 0.471-0.301 0.195-0.472 0.194-0.341-0.066-0.471-0.197c-0.259-0.261-0.682-0.263-0.943-0.003s-0.263 0.682-0.003 0.943zM12.291 5.625c0.196-0.195 0.451-0.292 0.707-0.292s0.511 0.098 0.707 0.294 0.292 0.451 0.292 0.707-0.098 0.511-0.294 0.707c-0.195 0.195-0.449 0.291-0.705 0.292h-11.665c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h11.668c0.594-0.001 1.189-0.228 1.644-0.681 0.456-0.455 0.685-1.053 0.685-1.649s-0.227-1.195-0.681-1.651-1.053-0.685-1.649-0.685-1.195 0.227-1.651 0.681c-0.261 0.26-0.261 0.682-0.001 0.943s0.682 0.261 0.943 0.001z\"></path>\n </svg>\n `\n },\n {\n name: 'x-circle',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>x-circle</title>\n <path d=\"M15.333 8c0-2.025-0.821-3.859-2.148-5.185s-3.161-2.148-5.185-2.148-3.859 0.821-5.185 2.148-2.148 3.161-2.148 5.185 0.821 3.859 2.148 5.185 3.161 2.148 5.185 2.148 3.859-0.821 5.185-2.148 2.148-3.161 2.148-5.185zM14 8c0 1.657-0.671 3.156-1.757 4.243s-2.585 1.757-4.243 1.757-3.156-0.671-4.243-1.757-1.757-2.585-1.757-4.243 0.671-3.156 1.757-4.243 2.585-1.757 4.243-1.757 3.156 0.671 4.243 1.757 1.757 2.585 1.757 4.243zM5.529 6.471l1.529 1.529-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529 1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'x-octagon',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>x-octagon</title>\n <path d=\"M5.24 0.667c-0.171 0-0.341 0.065-0.471 0.195l-3.907 3.907c-0.121 0.121-0.195 0.287-0.195 0.471v5.52c0 0.171 0.065 0.341 0.195 0.471l3.907 3.907c0.121 0.121 0.287 0.195 0.471 0.195h5.52c0.171 0 0.341-0.065 0.471-0.195l3.907-3.907c0.121-0.121 0.195-0.287 0.195-0.471v-5.52c0-0.171-0.065-0.341-0.195-0.471l-3.907-3.907c-0.121-0.121-0.287-0.195-0.471-0.195zM5.516 2h4.968l3.516 3.516v4.968l-3.516 3.516h-4.968l-3.516-3.516v-4.968zM5.529 6.471l1.529 1.529-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529 1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-1.529 1.529-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'x-square',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>x-square</title>\n <path d=\"M3.333 1.333c-0.552 0-1.053 0.225-1.414 0.586s-0.586 0.862-0.586 1.414v9.333c0 0.552 0.225 1.053 0.586 1.414s0.862 0.586 1.414 0.586h9.333c0.552 0 1.053-0.225 1.414-0.586s0.586-0.862 0.586-1.414v-9.333c0-0.552-0.225-1.053-0.586-1.414s-0.862-0.586-1.414-0.586zM3.333 2.667h9.333c0.184 0 0.35 0.074 0.471 0.195s0.195 0.287 0.195 0.471v9.333c0 0.184-0.074 0.35-0.195 0.471s-0.287 0.195-0.471 0.195h-9.333c-0.184 0-0.35-0.074-0.471-0.195s-0.195-0.287-0.195-0.471v-9.333c0-0.184 0.074-0.35 0.195-0.471s0.287-0.195 0.471-0.195zM9.529 5.529l-1.529 1.529-1.529-1.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943l1.529 1.529-1.529 1.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l1.529-1.529 1.529 1.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-1.529-1.529 1.529-1.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0z\"></path>\n </svg>\n `\n },\n {\n name: 'x',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>x</title>\n <path d=\"M3.529 4.471l3.529 3.529-3.529 3.529c-0.261 0.261-0.261 0.683 0 0.943s0.683 0.261 0.943 0l3.529-3.529 3.529 3.529c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-3.529-3.529 3.529-3.529c0.261-0.261 0.261-0.683 0-0.943s-0.683-0.261-0.943 0l-3.529 3.529-3.529-3.529c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'youtube',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>youtube</title>\n <path d=\"M14.375 4.425c0.191 1.019 0.299 2.197 0.291 3.417 0.013 1.019-0.082 2.178-0.291 3.347-0.038 0.139-0.1 0.269-0.181 0.383-0.151 0.214-0.372 0.377-0.633 0.45-0.403 0.107-1.437 0.183-2.585 0.227-1.487 0.057-2.977 0.057-2.977 0.057s-1.49 0-2.977-0.057c-1.147-0.044-2.182-0.119-2.577-0.225-0.137-0.038-0.264-0.099-0.377-0.179-0.207-0.147-0.367-0.357-0.447-0.615-0.19-1.017-0.296-2.191-0.289-3.407-0.014-1.027 0.081-2.195 0.291-3.373 0.038-0.139 0.1-0.269 0.181-0.383 0.151-0.214 0.372-0.377 0.633-0.45 0.403-0.107 1.437-0.183 2.585-0.227 1.487-0.057 2.977-0.057 2.977-0.057s1.49 0 2.977 0.052c1.146 0.040 2.188 0.109 2.571 0.202 0.146 0.042 0.281 0.11 0.399 0.199 0.205 0.155 0.359 0.374 0.429 0.639zM15.673 4.118c-0.145-0.577-0.479-1.060-0.922-1.395-0.249-0.188-0.531-0.329-0.833-0.417-0.599-0.147-1.797-0.215-2.895-0.253-1.511-0.053-3.024-0.053-3.024-0.053s-1.515 0-3.027 0.058c-1.095 0.042-2.3 0.117-2.878 0.271-0.583 0.165-1.054 0.513-1.376 0.967-0.18 0.254-0.313 0.541-0.391 0.845-0.004 0.016-0.007 0.033-0.010 0.047-0.229 1.265-0.333 2.529-0.317 3.654-0.008 1.283 0.107 2.554 0.318 3.668 0.004 0.021 0.009 0.041 0.014 0.059 0.163 0.573 0.513 1.045 0.967 1.365 0.238 0.168 0.505 0.295 0.787 0.374 0.586 0.157 1.791 0.231 2.885 0.273 1.513 0.058 3.028 0.058 3.028 0.058s1.515 0 3.027-0.058c1.095-0.042 2.299-0.117 2.878-0.271 0.582-0.165 1.054-0.513 1.375-0.967 0.18-0.254 0.313-0.541 0.391-0.845 0.004-0.017 0.008-0.033 0.010-0.047 0.227-1.256 0.331-2.51 0.317-3.627 0.008-1.283-0.107-2.555-0.318-3.669-0.003-0.013-0.005-0.027-0.008-0.038zM7.167 8.867v-2.068l1.818 1.034zM6.829 10.593l3.833-2.18c0.32-0.182 0.432-0.589 0.25-0.909-0.062-0.109-0.151-0.195-0.25-0.25l-3.833-2.18c-0.32-0.182-0.727-0.070-0.909 0.25-0.060 0.105-0.088 0.22-0.087 0.329v4.36c0 0.368 0.299 0.667 0.667 0.667 0.121 0 0.235-0.033 0.329-0.087z\"></path>\n </svg>\n `\n },\n {\n name: 'zap-off',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>zap-off</title>\n <path d=\"M8.935 4.582l0.393-3.167c0.045-0.365-0.214-0.699-0.579-0.744-0.233-0.029-0.452 0.066-0.595 0.235l-1.62 1.947c-0.235 0.283-0.197 0.703 0.086 0.939s0.703 0.197 0.939-0.086l0.166-0.199-0.113 0.911c-0.045 0.365 0.214 0.699 0.579 0.744s0.699-0.214 0.744-0.579zM12.892 9.034l1.62-1.94c0.236-0.283 0.198-0.703-0.085-0.939-0.125-0.104-0.277-0.155-0.427-0.155h-3.56c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667h2.135l-0.707 0.846c-0.236 0.283-0.198 0.703 0.085 0.939s0.703 0.198 0.939-0.085zM8.641 9.583l1.124 1.124-1.488 1.785zM5.378 6.321l2.346 2.346h-4.301zM0.195 1.138l4.236 4.236-2.943 3.533c-0.236 0.283-0.197 0.703 0.085 0.939 0.125 0.105 0.277 0.155 0.427 0.155h5.245l-0.573 4.584c-0.046 0.365 0.213 0.699 0.579 0.744 0.233 0.029 0.452-0.065 0.595-0.235l2.866-3.439 4.151 4.151c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943l-14.667-14.667c-0.261-0.261-0.683-0.261-0.943 0s-0.261 0.683 0 0.943z\"></path>\n </svg>\n `\n },\n {\n name: 'zap',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>zap</title>\n <path d=\"M7.723 3.507l-0.385 3.077c-0.003 0.025-0.005 0.053-0.005 0.083 0 0.368 0.299 0.667 0.667 0.667h4.577l-4.3 5.16 0.385-3.077c0.003-0.025 0.005-0.053 0.005-0.083 0-0.368-0.299-0.667-0.667-0.667h-4.577zM8.155 0.907l-6.667 8c-0.236 0.283-0.197 0.703 0.085 0.939 0.125 0.105 0.277 0.155 0.427 0.155h5.245l-0.573 4.584c-0.046 0.365 0.213 0.699 0.579 0.744 0.233 0.029 0.452-0.065 0.595-0.235l6.667-8c0.236-0.283 0.197-0.703-0.085-0.939-0.125-0.105-0.277-0.155-0.427-0.155h-5.245l0.573-4.584c0.046-0.365-0.213-0.699-0.579-0.744-0.233-0.029-0.452 0.065-0.595 0.235z\"></path>\n </svg>\n `\n },\n {\n name: 'zoom-in',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>zoom-in</title>\n <path d=\"M10.694 10.571c-0.023 0.017-0.045 0.037-0.066 0.058s-0.040 0.043-0.058 0.066c-0.839 0.809-1.979 1.305-3.237 1.305-1.289 0-2.455-0.521-3.3-1.367s-1.367-2.011-1.367-3.3 0.521-2.455 1.367-3.3 2.011-1.367 3.3-1.367 2.455 0.521 3.3 1.367 1.367 2.011 1.367 3.3c0 1.257-0.497 2.398-1.306 3.237zM14.471 13.529l-2.45-2.45c0.821-1.027 1.312-2.329 1.312-3.745 0-1.657-0.672-3.157-1.757-4.243s-2.586-1.757-4.243-1.757-3.157 0.672-4.243 1.757-1.757 2.586-1.757 4.243 0.672 3.157 1.757 4.243 2.586 1.757 4.243 1.757c1.417 0 2.719-0.491 3.745-1.312l2.45 2.45c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943zM5.333 8h1.333v1.333c0 0.368 0.299 0.667 0.667 0.667s0.667-0.299 0.667-0.667v-1.333h1.333c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-1.333v-1.333c0-0.368-0.299-0.667-0.667-0.667s-0.667 0.299-0.667 0.667v1.333h-1.333c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n },\n {\n name: 'zoom-out',\n template: `\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <title>zoom-out</title>\n <path d=\"M10.694 10.571c-0.023 0.017-0.045 0.037-0.066 0.058s-0.040 0.043-0.058 0.066c-0.839 0.809-1.979 1.305-3.237 1.305-1.289 0-2.455-0.521-3.3-1.367s-1.367-2.011-1.367-3.3 0.521-2.455 1.367-3.3 2.011-1.367 3.3-1.367 2.455 0.521 3.3 1.367 1.367 2.011 1.367 3.3c0 1.257-0.497 2.398-1.306 3.237zM14.471 13.529l-2.45-2.45c0.821-1.027 1.312-2.329 1.312-3.745 0-1.657-0.672-3.157-1.757-4.243s-2.586-1.757-4.243-1.757-3.157 0.672-4.243 1.757-1.757 2.586-1.757 4.243 0.672 3.157 1.757 4.243 2.586 1.757 4.243 1.757c1.417 0 2.719-0.491 3.745-1.312l2.45 2.45c0.261 0.261 0.683 0.261 0.943 0s0.261-0.683 0-0.943zM5.333 8h4c0.368 0 0.667-0.299 0.667-0.667s-0.299-0.667-0.667-0.667h-4c-0.368 0-0.667 0.299-0.667 0.667s0.299 0.667 0.667 0.667z\"></path>\n </svg>\n `\n }\n]\n","import {\n Component,\n Input,\n HostBinding\n} from '@angular/core';\n\nimport { IconType } from './icon-types';\nimport { iconDefs } from './icon-defs';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'suka-icon',\n template: `\n <span [innerHTML]=\"content\"></span>\n `\n})\nexport class Icon {\n // tslint:disable-next-line: variable-name\n protected _icon: IconType;\n content: SafeHtml;\n\n @HostBinding('class.suka-icon') baseClass = true;\n\n /**\n * Label for accesibility applications\n */\n @HostBinding('attr.aria-label') @Input() accessibilityLabel: string;\n\n /**\n * Sets the icon.\n */\n @Input()\n set icon(value: IconType) {\n this._icon = value;\n this.getIconDef();\n }\n\n get icon(): IconType {\n return this._icon;\n }\n\n constructor(private sanitizer: DomSanitizer) {}\n\n private getIconDef(): void {\n const iconDefinition = iconDefs.filter(iconDef => iconDef.name === this._icon)[0];\n if (!iconDefinition) {\n throw new Error(`Cant find '${this._icon}' icon.`);\n }\n this.content = this.sanitizer.bypassSecurityTrustHtml(iconDefinition.template);\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Icon } from './icon.component';\n\n// exports\nexport {\n Icon,\n};\n\n@NgModule({\n declarations: [\n Icon,\n ],\n exports: [\n Icon,\n ],\n imports: [\n CommonModule,\n ]\n})\nexport class IconModule { }\n","// tslint:disable: max-line-length\n\nimport {\n Component,\n Input,\n Output,\n ViewChild,\n ElementRef,\n HostListener,\n EventEmitter,\n TemplateRef,\n forwardRef,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'suka-select',\n template: `\n <div class=\"form-item\">\n <div\n [ngClass]=\"{\n 'select--inline': display === 'inline',\n 'skeleton': skeleton\n }\"\n class=\"select\"\n >\n <label *ngIf=\"skeleton && label\" [for]=\"id\" class=\"label skeleton\"></label>\n <label *ngIf=\"!skeleton && label\" [for]=\"id\" class=\"label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n <ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n </label>\n <div *ngIf=\"helperText\" class=\"form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n </div>\n <div class=\"select-input__wrapper\" [attr.data-invalid]=\"(invalid ? true : null)\" [attr.data-valid]=\"(valid ? true : null)\">\n <select\n #selectInput\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n [value]=\"value\"\n (blur)=\"onBlur($event)\"\n class=\"select-input\">\n <ng-content></ng-content>\n </select>\n <suka-icon *ngIf=\"invalid\" icon=\"alert-circle\" class=\"select__invalid-icon\"></suka-icon>\n <suka-icon *ngIf=\"valid\" icon=\"check\" class=\"select__valid-icon\"></suka-icon>\n <suka-icon *ngIf=\"!skeleton\" class=\"select__arrow\" icon=\"chevron-down\"></suka-icon>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n </div>\n </div>\n `,\n styles: [`\n [data-invalid] ~ .select__arrow {\n bottom: 2.25rem;\n }\n `],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Select),\n multi: true\n }\n ]\n})\nexport class Select implements ControlValueAccessor, OnInit {\n /**\n * Tracks the total number of selects instantiated. Used to generate unique IDs\n */\n static selectCount = 0;\n\n private _value = '';\n\n /**\n * `inline` or `default` select displays\n */\n @Input() display: 'inline' | 'default' = 'default';\n /**\n * Label for the select. Appears above the input.\n */\n @Input() label: string | TemplateRef<any>;\n /**\n * Optional helper text that appears under the label.\n */\n @Input() helperText: string | TemplateRef<any>;\n /**\n * Sets the invalid text.\n */\n @Input() invalidText: string | TemplateRef<any>;\n /**\n * Sets the unique ID. Defaults to `select-${total count of selects instantiated}`\n */\n @Input() id = `select-${Select.selectCount++}`;\n /**\n * Set to true to disable component.\n */\n @Input() disabled = false;\n /**\n * Set to true for a loading select.\n */\n @Input() skeleton = false;\n /**\n * Set to `true` for an invalid select component.\n */\n @Input() invalid = false;\n\n /**\n * Set to `true` for an valid select component.\n */\n @Input() valid = false;\n\n /**\n * emits the selected options `value`\n */\n @Output() valueChange = new EventEmitter();\n\n @ViewChild('selectInput', { static: true }) select: ElementRef;\n\n get value() {\n // return this._value;\n return this.select.nativeElement.value || this._value;\n }\n\n set value(v) {\n this._value = v;\n this.select.nativeElement.value = v;\n }\n\n /**\n * Receives a value from the model.\n */\n writeValue(obj: any) {\n this.value = obj;\n }\n\n /**\n * Registers a listener that notifies the model when the control updates\n */\n registerOnChange(fn: any) {\n this.onChangeHandler = fn;\n }\n\n /**\n * Registers a listener that notifies the model when the control is blurred\n */\n registerOnTouched(fn: any) {\n this.onTouchedHandler = fn;\n }\n\n /**\n * Sets the disabled state through the model\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /**\n * Handles the change event from the `select`.\n * Sends events to the change handler and emits a `selected` event.\n */\n onChange(event) {\n this.onChangeHandler(event.target.value);\n this.valueChange.emit(event.target.value);\n }\n\n /**\n * Listens for the host blurring, and notifies the model\n */\n @HostListener('blur', ['$event.target'])\n onBlur(target) {\n this.onTouchedHandler();\n }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n\n /**\n * placeholder declarations. Replaced by the functions provided to `registerOnChange` and `registerOnTouched`\n */\n protected onChangeHandler = (_: any) => { };\n protected onTouchedHandler = () => { };\n\n ngOnInit() {\n // console.log(this.select.nativeElement);\n this.value = this.select.nativeElement.value;\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line\n selector: \"option\"\n})\nexport class Option {\n @HostBinding('class') inputClass = 'select-option';\n}\n","\nimport { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line\n selector: \"optgroup\"\n})\n// tslint:disable-next-line: directive-class-suffix\nexport class OptGroup {\n @HostBinding('class') inputClass = 'select-option';\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\n// imports\nimport { Select } from './select.component';\nimport { Option } from './option.directive';\nimport { OptGroup } from './optgroup.directive';\n\n@NgModule({\n declarations: [\n Select,\n Option,\n OptGroup\n ],\n exports: [\n Select,\n Option,\n OptGroup\n ],\n imports: [\n CommonModule,\n FormsModule,\n IconModule,\n ]\n})\nclass SelectModule { }\n\nexport { Select, Option, OptGroup, SelectModule };\n","// tslint:disable: max-line-length\n\nimport {\n Component,\n Input,\n AfterContentInit,\n ElementRef,\n HostBinding,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\n@Component({\n selector: 'suka-label',\n template: `\n <label\n [for]=\"id\"\n class=\"label\"\n [ngClass]=\"{\n 'skeleton': skeleton\n }\">\n <ng-content></ng-content>\n </label>\n <div *ngIf=\"!skeleton && helperText\" class=\"form__helper-text\">{{helperText}}</div>\n <div class=\"text-input__field-wrapper\" [attr.data-invalid]=\"(invalid ? true : null)\" #wrapper>\n <suka-icon *ngIf=\"invalid\" icon=\"alert-circle\" class=\"text-input__invalid-icon text-area__invalid-icon\"></suka-icon>\n <suka-icon *ngIf=\"valid\" icon=\"check\" class=\"text-input__valid-icon text-area__valid-icon\"></suka-icon>\n <ng-content select=\"input,textarea,div\"></ng-content>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n `\n})\nexport class Label implements AfterContentInit {\n /**\n * Used to build the id of the input item associated with the `Label`.\n */\n static labelCounter = 0;\n /**\n * Sets the unique ID. Defaults to `input-${total count of selects instantiated}`\n */\n @Input() id = `input-${Label.labelCounter++}`;\n /**\n * Set to `true` to display a loading label.\n */\n @Input() skeleton = false;\n /**\n * Sets the label helper text.\n */\n @Input() helperText: string;\n /**\n * Sets the invalid text to display when the label is invalid.\n */\n @Input() invalidText: string | TemplateRef<any>;\n /**\n * Set to `true` to display the invalid state.\n */\n @Input() invalid = false;\n /**\n * Set to `true` to display the valid state.\n */\n @Input() valid = false;\n @ViewChild('wrapper', { static: true }) wrapper: ElementRef<HTMLDivElement>;\n @HostBinding('class.form-item') labelClass = true;\n\n constructor() {\n Label.labelCounter++;\n }\n\n ngAfterContentInit() {\n this.wrapper.nativeElement.querySelector('input,textarea,div').setAttribute('id', this.id);\n }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[sukaText]'\n})\nexport class TextInput {\n @HostBinding('class.text-input') inputClass = true;\n /**\n * Set to `true` to display the invalid state.\n */\n @HostBinding('class.text-input--invalid') @Input() invalid = false;\n /**\n * Set to `true` to display the valid state.\n */\n @HostBinding('class.text-input--valid') @Input() valid = false;\n /**\n * Set to `true` to display a loading text input.\n */\n @HostBinding('class.skeleton') @Input() skeleton = false;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[sukaTextArea]'\n})\n\n// tslint:disable-next-line: directive-class-suffix\nexport class TextArea {\n @HostBinding('class.text-area') baseClass = true;\n /**\n * Set to `true` to display the invalid state.\n */\n @HostBinding('class.text-area--invalid') @Input() invalid = false;\n /**\n * Set to `true` to display the valid state.\n */\n @HostBinding('class.text-area--valid') @Input() valid = false;\n /**\n * Set to `true` to display a loading text area.\n */\n @HostBinding('class.skeleton') @Input() skeleton = false;\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\n// imports\nimport { Label } from './label.component';\nimport { TextInput } from './input.directive';\nimport { TextArea } from './text-area.directive';\n\n@NgModule({\n declarations: [\n Label,\n TextInput,\n TextArea,\n ],\n exports: [\n Label,\n TextInput,\n TextArea,\n ],\n imports: [\n CommonModule,\n FormsModule,\n IconModule,\n ]\n})\nclass InputModule { }\n\nexport { TextInput, TextArea, Label, InputModule };\n","import { Directive, HostBinding, Input, OnInit, Host } from '@angular/core';\n\n@Directive({\n selector: '[sukaGrid]'\n})\nexport class GridDirective {\n @HostBinding('class.grid') baseClass = true;\n}\n\n@Directive({\n selector: '[sukaRow]'\n})\nexport class RowDirective {\n @HostBinding('class.row') baseClass = true;\n /**\n * Set to `true` for no gutters between columns.\n */\n @HostBinding('class.no-gutters') @Input() noGutters = false;\n /**\n * Set to `true` to make the columns distribute their height accordingly to the row total height.\n */\n @HostBinding('class.row-deck') @Input() rowDeck = false;\n}\n\n@Directive({\n selector: '[sukaCol]'\n})\nexport class ColumnDirective implements OnInit {\n /**\n * Sets the class\n */\n @Input() class = '';\n\n /**\n * Object that sets the column numbers according to the breakpoint.\n * Breakpoints can be:<br>\n * - xs: From 0px<br>\n * - sm: From 576px<br>\n * - md: From 768px<br>\n * - lg: From 992px<br>\n * - xl: From 1200px<br>\n * - xxl: From 1600px<br>\n * - nobreak: For all viewports.\n * <br>\n * Example:\n * ```{xs: 12, sm: 6, md: 4}```\n */\n @Input() columnNumbers = {};\n\n /**\n * Object that sets the column offset according to the breakpoint.\n * Breakpoints can be:<br>\n * - xs: From 0px<br>\n * - sm: From 576px<br>\n * - md: From 768px<br>\n * - lg: From 992px<br>\n * - xl: From 1200px<br>\n * - xxl: From 1600px<br>\n * - nobreak: For all viewports.\n * <br>\n * Example:\n * ```{xs: 12, sm: 6, md: 4}```\n */\n @Input() offsets = {};\n\n // tslint:disable-next-line: variable-name\n protected _columnClasses: string[] = [];\n\n @HostBinding('class')\n get columnClasses(): string {\n return this._columnClasses.join(' ');\n }\n\n set(classes: string) {\n this._columnClasses = classes.split(' ');\n }\n\n ngOnInit() {\n try {\n const columnKeys = Object.keys(this.columnNumbers);\n if (columnKeys.length <= 0) {\n this._columnClasses.push('col');\n }\n\n columnKeys.forEach(key => {\n if (this.columnNumbers[key] === 'nobreak') {\n this._columnClasses.push(`col-${key}`);\n } else {\n this._columnClasses.push(`col-${key}-${this.columnNumbers[key]}`);\n }\n });\n\n Object.keys(this.offsets).forEach(key => {\n this._columnClasses.push(`offset-${key}-${this.offsets[key]}`);\n });\n } catch (err) {\n console.error(`Malformed \\`offsets\\` or \\`columnNumbers\\`: ${err}`);\n }\n\n if (this.class) {\n this._columnClasses.push(this.class);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ColumnDirective, GridDirective, RowDirective } from './grid.directive';\n\n@NgModule({\n declarations: [\n ColumnDirective,\n GridDirective,\n RowDirective\n ],\n exports: [\n ColumnDirective,\n GridDirective,\n RowDirective\n ],\n imports: [CommonModule]\n})\nexport class GridModule { }\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n\nexport enum ToggleState {\n Init,\n Checked,\n Unchecked\n}\n\nexport class ToggleChange {\n source: Toggle;\n checked: boolean;\n}\n\n\n@Component({\n selector: 'suka-toggle',\n template: `\n <label\n class=\"\n toggle\n toggle--distribution-{{distribution}}\n \"\n [ngClass]=\"{\n 'skeleton' : skeleton,\n 'disabled': disabled\n }\"\n >\n <ng-content></ng-content>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [value]=\"value\"\n [name]=\"name\"\n [required]=\"required\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"checked\"\n (change)=\"onChange($event)\"\n (click)=\"onClick($event)\"\n />\n <span class=\"toggle-body\">\n <span class=\"toggle-switch\"></span>\n <span class=\"toggle-track\">\n <span class=\"toggle-bg\"></span>\n <span class=\"toggle-bg toggle-bg_negative\"></span>\n </span>\n </span>\n </label>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: Toggle,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n// tslint:disable-next-line: component-class-suffix\nexport class Toggle implements ControlValueAccessor {\n /**\n * Variable used for creating unique ids for toggle components.\n */\n static toggleCount = 0;\n\n /**\n * Set to `true` for toggle to be rendered with nested styles.\n */\n @Input() nested: boolean;\n /**\n * Set to `true` for toggle to be rendered without any classes on the host element.\n */\n @Input() inline = false;\n /**\n * Set to `true` for a disabled toggle.\n */\n @Input() disabled = false;\n /**\n * Set to `true` for a loading toggle.\n */\n @Input() skeleton = false;\n /**\n * Set to `true` to hide the toggle labels.\n */\n @Input() hideLabel = false;\n /**\n * Sets the name attribute on the `input` element.\n */\n @Input() name: string;\n /**\n * The unique id for the toggle component.\n */\n @Input() id = `toggle-${Toggle.toggleCount}`;\n /**\n * Reflects the required attribute of the `input` element.\n */\n @Input() required: boolean;\n /**\n * Sets the value attribute on the `input` element.\n */\n @Input() value: string;\n /**\n * Used to set the `aria-label` attribute on the input element.\n */\n // tslint:disable-next-line:no-input-rename\n @Input('aria-label') ariaLabel = '';\n /**\n * Used to set the `aria-labelledby` attribute on the input element.\n */\n // tslint:disable-next-line:no-input-rename\n @Input('aria-labelledby') ariaLabelledby: string;\n\n\n /**\n * Horizontal distribution of elements\n */\n @Input() distribution: 'leading' | 'trailing' | 'equalSpacing' | 'center' = 'equalSpacing';\n\n /**\n * Returns value `true` if state is selected for the toggle.\n */\n get checked() {\n return this._checked;\n }\n\n /**\n * Updating the state of a toggle to match the state of the parameter passed in.\n */\n @Input() set checked(checked: boolean) {\n if (checked !== this.checked) {\n this._checked = checked;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n @HostBinding('class.toggle-wrapper') get toggleWrapperClass() {\n return !this.inline;\n }\n @HostBinding('class.form-item') get formItemClass() {\n return !this.inline;\n }\n\n /**\n * Emits event notifying other classes when a change in state occurs on a toggle after a\n * click.\n */\n // tslint:disable-next-line: no-output-native\n @Output() change = new EventEmitter<ToggleChange>();\n\n /**\n * Set to `true` if the input toggle is selected (or checked).\n */\n // tslint:disable-next-line: variable-name\n _checked = false;\n\n currentToggleState: ToggleState = ToggleState.Init;\n\n /**\n * Maintains a reference to the view DOM element of the `Toggle`.\n */\n @ViewChild('inputToggle', { static: true }) inputToggle: ElementRef;\n\n /**\n * Creates an instance of `Toggle`.\n */\n constructor(protected changeDetectorRef: ChangeDetectorRef) {\n Toggle.toggleCount++;\n }\n\n /**\n * Toggle the selected state of the toggle.\n */\n public toggle() {\n this.checked = !this.checked;\n }\n\n // this is the initial value set to the component\n public writeValue(value: any) {\n this.checked = !!value;\n }\n\n /**\n * Sets a method in order to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the toggle is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Executes on the event of a change within `Toggle` to block propagation.\n */\n onChange(event) {\n event.stopPropagation();\n }\n\n /**\n * Handles click events on the `Toggle` and emits changes to other classes.\n */\n onClick(event) {\n if (!this.disabled) {\n this.toggle();\n this.transitionToggleState(this._checked ? ToggleState.Checked : ToggleState.Unchecked);\n this.emitChangeEvent();\n }\n }\n\n /**\n * Called when toggle is blurred. Needed to properly implement `ControlValueAccessor`.\n */\n onTouched: () => any = () => { };\n\n /**\n * Handles changes between toggle states.\n */\n transitionToggleState(newState: ToggleState) {\n this.currentToggleState = newState;\n }\n\n /**\n * Creates instance of `ToggleChange` used to propagate the change event.\n */\n emitChangeEvent() {\n const event = new ToggleChange();\n event.source = this;\n event.checked = this.checked;\n\n this.propagateChange(this.checked);\n this.change.emit(event);\n }\n\n /**\n * Method set in `registerOnChange` to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Toggle } from './toggle.component';\n\n// exports\nexport { Toggle } from './toggle.component';\n\n@NgModule({\n declarations: [\n Toggle\n ],\n exports: [\n Toggle\n ],\n imports: [\n CommonModule,\n FormsModule,\n ]\n})\nexport class ToggleModule { }\n","import { Radio } from './radio.component';\n\n/**\n * Used to emit changes performed on a `Radio`.\n */\nexport class RadioChange {\n /**\n * Contains the `Radio` that has been changed.\n */\n source: Radio | null;\n /**\n * The value of the `Radio` encompassed in the `RadioChange` class.\n */\n value: string;\n\n constructor(source: Radio, value: string) {\n this.source = source;\n this.value = value;\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioChange } from './radio-change.class';\n\n\n@Component({\n selector: 'suka-radio',\n template: `\n <input\n *ngIf=\"!skeleton\"\n class=\"radio-button\"\n type=\"radio\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [required]=\"required\"\n [value]=\"value\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n (change)=\"onChange($event)\">\n <div *ngIf=\"skeleton\" class=\"radio-button skeleton\"></div>\n <label\n class=\"radio-button__label\"\n [ngClass]=\"{\n 'skeleton': skeleton\n }\"\n [for]=\"id\"\n id=\"label-{{id}}\">\n <span class=\"radio-button__appearance\"></span>\n <ng-content></ng-content>\n </label>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: Radio,\n multi: true\n }\n ]\n})\nexport class Radio {\n /**\n * Used to dynamically create unique ids for the `Radio`.\n */\n static radioCount = 0;\n\n /** Sets the checked status. */\n @Input() checked = false;\n\n /** Sets the `Radio` `<input>` name. */\n @Input() name = '';\n\n /** Set to `true` to disable the `Radio`. */\n @Input() disabled = false;\n\n /** Sets the label placement. Default to `right`. */\n @Input() labelPlacement: 'right' | 'left' = 'right';\n\n @Input() set ariaLabelledby(value: string) {\n this._labelledby = value;\n }\n\n get ariaLabelledby() {\n if (this._labelledby) {\n return this._labelledby;\n }\n return `label-${this.id}`;\n }\n /**\n * Sets the HTML required attribute\n */\n @Input() required = false;\n /**\n * The value of the `Radio`.\n */\n @Input() value = '';\n /**\n * Set to `true` for a loading radio.\n */\n @Input() skeleton = false;\n /**\n * The id for the `Radio`.\n */\n @Input() id = `radio-${Radio.radioCount++}`;\n /**\n * emits when the state of the radio changes\n */\n // tslint:disable-next-line: no-output-native\n @Output() change = new EventEmitter<RadioChange>();\n /**\n * Binds 'radio' value to the role attribute for `Radio`.\n */\n @HostBinding('attr.role') role = 'radio';\n\n @HostBinding('class.radio-button-wrapper') hostClass = true;\n\n @HostBinding('class.radio-button-wrapper--label-left') get labelLeft() {\n return this.labelPlacement === 'left';\n }\n\n // tslint:disable-next-line: variable-name\n protected _labelledby = '';\n\n /**\n * Handler provided by the `RadioGroup` to bubble events up\n */\n radioChangeHandler = (event: RadioChange) => { };\n\n /**\n * Synchronizes with the `RadioGroup` in the event of a changed `Radio`.\n * Emits the changes of both the `RadioGroup` and `Radio`.\n */\n onChange(event: Event) {\n event.stopPropagation();\n this.checked = (event.target as HTMLInputElement).checked;\n const radioEvent = new RadioChange(this, this.value);\n this.change.emit(radioEvent);\n this.radioChangeHandler(radioEvent);\n }\n\n /**\n * Method called by `RadioGroup` with a callback function to bubble `RadioChange` events\n * @param fn callback that expects a `RadioChange` as an argument\n */\n registerRadioChangeHandler(fn: (event: RadioChange) => void) {\n this.radioChangeHandler = fn;\n }\n}\n","// tslint:disable: variable-name\n\nimport {\n AfterContentInit,\n ContentChildren,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n HostBinding,\n AfterViewInit\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { Radio } from './radio.component';\nimport { RadioChange } from './radio-change.class';\n\n@Component({\n selector: 'suka-radio-group',\n template: `\n <div\n class=\"radio-button-group\"\n [ngClass]=\"{\n 'radio-button-group--vertical': orientation === 'vertical',\n 'radio-button-group--label-left': orientation === 'vertical' && radioLabelPlacement === 'left'\n }\"\n role=\"radiogroup\">\n <ng-content></ng-content>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroup,\n multi: true\n }\n ]\n})\n// tslint:disable-next-line: component-class-suffix\nexport class RadioGroup implements AfterContentInit, AfterViewInit, ControlValueAccessor {\n static radioGroupCount = 0;\n\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n @Input() radioLabelPlacement: 'right' | 'left' = 'right';\n\n /**\n * Emits event notifying other classes of a change using a `RadioChange` class.\n */\n // tslint:disable-next-line: no-output-native\n @Output() change: EventEmitter<RadioChange> = new EventEmitter<RadioChange>();\n\n /**\n * The `Radio` input items in the `RadioGroup`.\n */\n @ContentChildren(forwardRef(() => Radio)) radios: QueryList<Radio>;\n\n /**\n * Sets the passed in `Radio` item as the selected input within the `RadioGroup`.\n */\n @Input()\n set selected(selected: Radio | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedRadio();\n }\n\n /**\n * Returns the `Radio` that is selected within the `RadioGroup`.\n */\n get selected() {\n return this._selected;\n }\n\n /**\n * Sets the value/state of the selected `Radio` within the `RadioGroup` to the passed in value.\n */\n @Input()\n set value(newValue: any) {\n if (this._value !== newValue) {\n this._value = newValue;\n\n this.updateSelectedRadioFromValue();\n this.checkSelectedRadio();\n }\n }\n\n /**\n * Returns the value/state of the selected `Radio` within the `RadioGroup`.\n */\n get value() {\n return this._value;\n }\n\n /**\n * Replaces the name associated with the `RadioGroup` with the provided parameter.\n */\n @Input()\n set name(name: string) {\n this._name = name;\n this.updateRadios();\n }\n /**\n * Returns the associated name of the `RadioGroup`.\n */\n get name() {\n return this._name;\n }\n\n /**\n * Set to true to disable the whole radio group\n */\n @Input() disabled = false;\n\n /**\n * Returns the skeleton value in the `RadioGroup` if there is one.\n */\n @Input()\n get skeleton(): any {\n return this._skeleton;\n }\n\n /**\n * Sets the skeleton value for all `Radio` to the skeleton value of `RadioGroup`.\n */\n set skeleton(value: any) {\n this._skeleton = value;\n this.updateChildren();\n }\n\n /**\n * Binds 'form-item' value to the class for `RadioGroup`.\n */\n @HostBinding('class.form-item') radioButtonGroupClass = true;\n\n /**\n * To track whether the `RadioGroup` has been initialized.\n */\n protected isInitialized = false;\n /**\n * Reflects whether or not the input is disabled and cannot be selected.\n */\n protected _disabled = false;\n /**\n * Reflects whether or not the dropdown is loading.\n */\n protected _skeleton = false;\n /**\n * The value of the selected option within the `RadioGroup`.\n */\n protected _value: any = null;\n /**\n * The `Radio` within the `RadioGroup` that is selected.\n */\n protected _selected: Radio = null;\n /**\n * The name attribute associated with the `RadioGroup`.\n */\n protected _name = `radio-group-${RadioGroup.radioGroupCount++}`;\n\n /**\n * Updates the selected `Radio` to be checked (selected).\n */\n checkSelectedRadio() {\n if (this.selected && !this._selected.checked) {\n this.selected.checked = true;\n }\n }\n\n /**\n * Use the value of the `RadioGroup` to update the selected radio to the right state (selected state).\n */\n updateSelectedRadioFromValue() {\n const alreadySelected = this._selected != null && this._selected.value === this._value;\n\n if (this.radios && !alreadySelected) {\n this._selected = null;\n this.radios.forEach(radio => {\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n\n /**\n * Creates a class of `RadioChange` to emit the change in the `RadioGroup`.\n */\n emitChangeEvent(event: RadioChange) {\n this.change.emit(event);\n this.propagateChange(event.value);\n this.onTouched();\n }\n\n /**\n * Synchronizes radio properties.\n */\n updateRadios() {\n if (this.radios) {\n setTimeout(() => {\n this.radios.forEach(radio => radio.name = this.name);\n if (this.radioLabelPlacement === 'left') {\n this.radios.forEach(radio => radio.labelPlacement = 'left');\n }\n });\n }\n }\n\n /**\n * Updates the value of the `RadioGroup` using the provided parameter.\n */\n writeValue(value: any) {\n this.value = value;\n }\n\n ngAfterContentInit() {\n this.radios.changes.subscribe(() => {\n this.updateRadios();\n this.updateRadioChangeHandler();\n });\n\n this.updateChildren();\n this.updateRadioChangeHandler();\n }\n\n ngAfterViewInit() {\n this.updateRadios();\n }\n\n /**\n * Used to set method to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the checkbox is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Needed to properly implement ControlValueAccessor.\n */\n onTouched: () => any = () => { };\n\n /**\n * Method set in registerOnChange to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n\n protected updateChildren() {\n if (this.radios) {\n this.radios.forEach(child => child.skeleton = this.skeleton);\n }\n }\n\n protected updateRadioChangeHandler() {\n this.radios.forEach(radio => {\n radio.registerRadioChangeHandler((event: RadioChange) => {\n // update selected and value from the event\n this._selected = event.source;\n this._value = event.value;\n // bubble the event\n this.emitChangeEvent(event);\n });\n });\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Radio } from './radio.component';\nimport { RadioGroup } from './radio-group.component';\nimport { RadioChange } from './radio-change.class';\n\n\n// exports\nexport {\n Radio,\n RadioGroup,\n RadioChange\n};\n\n@NgModule({\n declarations: [\n Radio,\n RadioGroup\n ],\n exports: [\n Radio,\n RadioGroup\n ],\n imports: [\n CommonModule,\n FormsModule\n ]\n})\nexport class RadioModule { }\n","import { ButtonRadio } from './button-radio.component';\n\n/**\n * Used to emit changes performed on a `ButtonRadio`.\n */\nexport class ButtonRadioChange {\n /**\n * Contains the `ButtonRadio` that has been changed.\n */\n source: ButtonRadio | null;\n /**\n * The value of the `ButtonRadio` encompassed in the `ButtonRadioChange` class.\n */\n value: string;\n\n constructor(source: ButtonRadio, value: string) {\n this.source = source;\n this.value = value;\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioChange } from './button-radio-change.class';\n\n\n@Component({\n selector: 'suka-button-radio',\n template: `\n <input\n *ngIf=\"!skeleton\"\n class=\"button-radio\"\n type=\"radio\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [required]=\"required\"\n [value]=\"value\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n (change)=\"onChange($event)\">\n <div *ngIf=\"skeleton\" class=\"button-radio skeleton\"></div>\n <label\n class=\"button-radio__label\"\n [ngClass]=\"{\n 'skeleton': skeleton\n }\"\n [for]=\"id\"\n id=\"label-{{id}}\">\n <ng-content></ng-content>\n </label>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ButtonRadio,\n multi: true\n }\n ]\n})\n// tslint:disable-next-line: component-class-suffix\nexport class ButtonRadio {\n /**\n * Used to dynamically create unique ids for the `ButtonRadio`.\n */\n static buttonRadioCount = 0;\n\n /**\n * Sets the checked status\n */\n @Input() checked = false;\n\n /**\n * Sets the name of the `ButtonRadio`\n */\n @Input() name = '';\n\n /**\n * Set to `true` to disable it.\n */\n @Input() disabled = false;\n\n @Input() set ariaLabelledby(value: string) {\n this._labelledby = value;\n }\n\n get ariaLabelledby() {\n if (this._labelledby) {\n return this._labelledby;\n }\n return `label-${this.id}`;\n }\n\n /**\n * Sets the HTML required attribute\n */\n @Input() required = false;\n /**\n * The value of the `ButtonRadio`.\n */\n @Input() value = '';\n\n /**\n * Set to `true` for a loading state.\n */\n @Input() skeleton = false;\n\n /**\n * The id for the `ButtonRadio`.\n */\n @Input() id = `button-radio-${ButtonRadio.buttonRadioCount++}`;\n\n /**\n * emits when the state of the button radio changes\n */\n // tslint:disable-next-line: no-output-native\n @Output() change = new EventEmitter<ButtonRadioChange>();\n /**\n * Binds 'radio' value to the role attribute for `ButtonRadio`.\n */\n @HostBinding('attr.role') role = 'radio';\n\n @HostBinding('class.button-radio-wrapper') hostClass = true;\n\n // tslint:disable-next-line: variable-name\n protected _labelledby = '';\n\n /**\n * Handler provided by the `ButtonRadioGroup` to bubble events up\n */\n buttonRadioChangeHandler = (event: ButtonRadioChange) => { };\n\n /**\n * Synchronizes with the `ButtonRadioGroup` in the event of a changed `ButtonRadio`.\n * Emits the changes of both the `ButtonRadioGroup` and `ButtonRadio`.\n */\n onChange(event: Event) {\n event.stopPropagation();\n this.checked = (event.target as HTMLInputElement).checked;\n const ButtonRadioEvent = new ButtonRadioChange(this, this.value);\n this.change.emit(ButtonRadioEvent);\n this.buttonRadioChangeHandler(ButtonRadioEvent);\n }\n\n /**\n * Method called by `ButtonRadioGroup` with a callback function to bubble `ButtonRadioChange` events\n * @param fn callback that expects a `ButtonRadioChange` as an argument\n */\n registerButtonRadioChangeHandler(fn: (event: ButtonRadioChange) => void) {\n this.buttonRadioChangeHandler = fn;\n }\n}\n","// tslint:disable: variable-name\n\nimport {\n AfterContentInit,\n ContentChildren,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n HostBinding,\n AfterViewInit\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ButtonRadio } from './button-radio.component';\nimport { ButtonRadioChange } from './button-radio-change.class';\n\n@Component({\n selector: 'suka-button-radio-group',\n template: `\n <div\n class=\"button-radio-group\"\n role=\"buttonRadiogroup\">\n <ng-content></ng-content>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ButtonRadioGroup,\n multi: true\n }\n ]\n})\n// tslint:disable-next-line: component-class-suffix\nexport class ButtonRadioGroup implements AfterContentInit, AfterViewInit, ControlValueAccessor {\n static buttonRadioGroupCount = 0;\n\n /**\n * Emits event notifying other classes of a change using a `ButtonRadioChange` class.\n */\n // tslint:disable-next-line: no-output-native\n @Output() change: EventEmitter<ButtonRadioChange> = new EventEmitter<ButtonRadioChange>();\n\n /**\n * The `ButtonRadio` input items in the `ButtonRadioGroup`.\n */\n @ContentChildren(forwardRef(() => ButtonRadio)) buttonRadios: QueryList<ButtonRadio>;\n\n /**\n * Sets the passed in `ButtonRadio` item as the selected input within the `ButtonRadioGroup`.\n */\n @Input()\n set selected(selected: ButtonRadio | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedButtonRadio();\n }\n\n /**\n * Returns the `ButtonRadio` that is selected within the `ButtonRadioGroup`.\n */\n get selected() {\n return this._selected;\n }\n\n /**\n * Sets the value/state of the selected `ButtonRadio` within the `ButtonRadioGroup` to the passed in value.\n */\n @Input()\n set value(newValue: any) {\n if (this._value !== newValue) {\n this._value = newValue;\n\n this.updateSelectedButtonRadioFromValue();\n this.checkSelectedButtonRadio();\n }\n }\n\n /**\n * Returns the value/state of the selected `ButtonRadio` within the `ButtonRadioGroup`.\n */\n get value() {\n return this._value;\n }\n\n /**\n * Replaces the name associated with the `ButtonRadioGroup` with the provided parameter.\n */\n @Input()\n set name(name: string) {\n this._name = name;\n this.updateButtonRadios();\n }\n /**\n * Returns the associated name of the `ButtonRadioGroup`.\n */\n get name() {\n return this._name;\n }\n\n /**\n * Set to true to disable the whole buttonRadio group\n */\n @Input() disabled = false;\n\n /**\n * Returns the skeleton value in the `ButtonRadioGroup` if there is one.\n */\n @Input()\n get skeleton(): any {\n return this._skeleton;\n }\n\n /**\n * Sets the skeleton value for all `ButtonRadio` to the skeleton value of `ButtonRadioGroup`.\n */\n set skeleton(value: any) {\n this._skeleton = value;\n this.updateChildren();\n }\n\n /**\n * Binds 'form-item' value to the class for `ButtonRadioGroup`.\n */\n @HostBinding('class.form-item') buttonRadioButtonGroupClass = true;\n\n /**\n * To track whether the `ButtonRadioGroup` has been initialized.\n */\n protected isInitialized = false;\n /**\n * Reflects whether or not the input is disabled and cannot be selected.\n */\n protected _disabled = false;\n /**\n * Reflects whether or not the dropdown is loading.\n */\n protected _skeleton = false;\n /**\n * The value of the selected option within the `ButtonRadioGroup`.\n */\n protected _value: any = null;\n /**\n * The `ButtonRadio` within the `ButtonRadioGroup` that is selected.\n */\n protected _selected: ButtonRadio = null;\n /**\n * The name attribute associated with the `ButtonRadioGroup`.\n */\n protected _name = `button-radio-group-${ButtonRadioGroup.buttonRadioGroupCount++}`;\n\n /**\n * Updates the selected `ButtonRadio` to be checked (selected).\n */\n checkSelectedButtonRadio() {\n if (this.selected && !this._selected.checked) {\n this.selected.checked = true;\n }\n }\n\n /**\n * Use the value of the `ButtonRadioGroup` to update the selected buttonRadio to the right state (selected state).\n */\n updateSelectedButtonRadioFromValue() {\n const alreadySelected = this._selected != null && this._selected.value === this._value;\n\n if (this.buttonRadios && !alreadySelected) {\n this._selected = null;\n this.buttonRadios.forEach(buttonRadio => {\n if (buttonRadio.checked) {\n this._selected = buttonRadio;\n }\n });\n }\n }\n\n /**\n * Creates a class of `ButtonRadioChange` to emit the change in the `ButtonRadioGroup`.\n */\n emitChangeEvent(event: ButtonRadioChange) {\n this.change.emit(event);\n this.propagateChange(event.value);\n this.onTouched();\n }\n\n /**\n * Synchronizes buttonRadio properties.\n */\n updateButtonRadios() {\n if (this.buttonRadios) {\n setTimeout(() => {\n this.buttonRadios.forEach(buttonRadio => buttonRadio.name = this.name);\n });\n }\n }\n\n /**\n * Updates the value of the `ButtonRadioGroup` using the provided parameter.\n */\n writeValue(value: any) {\n this.value = value;\n }\n\n ngAfterContentInit() {\n this.buttonRadios.changes.subscribe(() => {\n this.updateButtonRadios();\n this.updateButtonRadioChangeHandler();\n });\n\n this.updateChildren();\n this.updateButtonRadioChangeHandler();\n }\n\n ngAfterViewInit() {\n this.updateButtonRadios();\n }\n\n /**\n * Used to set method to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the checkbox is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Needed to properly implement ControlValueAccessor.\n */\n onTouched: () => any = () => { };\n\n /**\n * Method set in registerOnChange to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n\n protected updateChildren() {\n if (this.buttonRadios) {\n this.buttonRadios.forEach(child => child.skeleton = this.skeleton);\n }\n }\n\n protected updateButtonRadioChangeHandler() {\n this.buttonRadios.forEach(buttonRadio => {\n buttonRadio.registerButtonRadioChangeHandler((event: ButtonRadioChange) => {\n // update selected and value from the event\n this._selected = event.source;\n this._value = event.value;\n // bubble the event\n this.emitChangeEvent(event);\n });\n });\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { ButtonRadio } from './button-radio.component';\nimport { ButtonRadioGroup } from './button-radio-group.component';\nimport { ButtonRadioChange } from './button-radio-change.class';\n\n\n// exports\nexport {\n ButtonRadio,\n ButtonRadioGroup,\n ButtonRadioChange\n};\n\n@NgModule({\n declarations: [\n ButtonRadio,\n ButtonRadioGroup\n ],\n exports: [\n ButtonRadio,\n ButtonRadioGroup\n ],\n imports: [\n CommonModule,\n FormsModule\n ]\n})\nexport class ButtonRadioModule { }\n","import { Input, HostBinding, Directive, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[sukaContainer]'\n})\nexport class Container implements OnInit {\n\n /**\n * Sets the container type. Set to `fluid` for a full width container.\n */\n @Input() sukaContainer: 'default' | 'fluid' = 'default';\n\n @HostBinding('class.container') default = true;\n @HostBinding('class.container--fluid') fluid = false;\n\n public ngOnInit() {\n if (this.sukaContainer === 'fluid') {\n this.fluid = true;\n this.default = false;\n }\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Container } from './container.directive';\n\n// exports\nexport {\n Container\n};\n\n@NgModule({\n declarations: [\n Container,\n ],\n exports: [\n Container,\n ],\n imports: [\n CommonModule,\n ]\n})\nexport class ContainerModule { }\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[m]'\n})\nexport class MarginDirective implements OnInit {\n @Input() m = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.m);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`m-${this.m[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`m-${key}-${this.m[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n selector: '[mt]'\n})\nexport class MarginTopDirective implements OnInit {\n @Input() mt = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.mt);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`mt-${this.mt[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`mt-${key}-${this.mt[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[mb]'\n})\nexport class MarginBottomDirective implements OnInit {\n @Input() mb = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.mb);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`mb-${this.mb[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`mb-${key}-${this.mb[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[ml]'\n})\nexport class MarginLeftDirective implements OnInit {\n @Input() ml = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.ml);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`ml-${this.ml[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`ml-${key}-${this.ml[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[mr]'\n})\nexport class MarginRightDirective implements OnInit {\n @Input() mr = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.mr);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`mr-${this.mr[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`mr-${key}-${this.mr[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[mx]'\n})\nexport class MarginHorizontalDirective implements OnInit {\n @Input() mx = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.mx);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`mx-${this.mx[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`mx-${key}-${this.mx[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[my]'\n})\nexport class MarginVerticalDirective implements OnInit {\n @Input() my = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const marginKeys = Object.keys(this.my);\n\n marginKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`my-${this.my[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`my-${key}-${this.my[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed margins\\`: ${err}`);\n }\n }\n}\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[p]'\n})\nexport class PaddingDirective implements OnInit {\n @Input() p = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.p);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`p-${this.p[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`p-${key}-${this.p[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[pt]'\n})\nexport class PaddingTopDirective implements OnInit {\n @Input() pt = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.pt);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`pt-${this.pt[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`pt-${key}-${this.pt[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[pb]'\n})\nexport class PaddingBottomDirective implements OnInit {\n @Input() pb = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.pb);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`pb-${this.pb[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`pb-${key}-${this.pb[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[pl]'\n})\nexport class PaddingLeftDirective implements OnInit {\n @Input() pl = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.pl);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`pl-${this.pl[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`pl-${key}-${this.pl[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[pr]'\n})\nexport class PaddingRightDirective implements OnInit {\n @Input() pr = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.pr);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`pr-${this.pr[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`pr-${key}-${this.pr[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[px]'\n})\nexport class PaddingHorizontalDirective implements OnInit {\n @Input() px = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.px);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`px-${this.px[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`px-${key}-${this.px[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[py]'\n})\nexport class PaddingVerticalDirective implements OnInit {\n @Input() py = {};\n\n private elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.elementRef = elementRef;\n }\n\n ngOnInit() {\n try {\n const paddingKeys = Object.keys(this.py);\n\n paddingKeys.forEach(key => {\n if (key === 'all') {\n this.elementRef.nativeElement.classList.add(`py-${this.py[key]}`);\n } else {\n this.elementRef.nativeElement.classList.add(`py-${key}-${this.py[key]}`);\n }\n });\n } catch (err) {\n console.error(`Malformed paddings\\`: ${err}`);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n MarginDirective,\n MarginTopDirective,\n MarginBottomDirective,\n MarginLeftDirective,\n MarginRightDirective,\n MarginHorizontalDirective,\n MarginVerticalDirective\n} from './margin.directive';\n\nimport {\n PaddingDirective,\n PaddingTopDirective,\n PaddingBottomDirective,\n PaddingLeftDirective,\n PaddingRightDirective,\n PaddingHorizontalDirective,\n PaddingVerticalDirective\n} from './padding.directive';\n\n@NgModule({\n declarations: [\n MarginDirective,\n MarginTopDirective,\n MarginBottomDirective,\n MarginLeftDirective,\n MarginRightDirective,\n MarginHorizontalDirective,\n MarginVerticalDirective,\n PaddingDirective,\n PaddingTopDirective,\n PaddingBottomDirective,\n PaddingLeftDirective,\n PaddingRightDirective,\n PaddingHorizontalDirective,\n PaddingVerticalDirective,\n ],\n exports: [\n MarginDirective,\n MarginTopDirective,\n MarginBottomDirective,\n MarginLeftDirective,\n MarginRightDirective,\n MarginHorizontalDirective,\n MarginVerticalDirective,\n PaddingDirective,\n PaddingTopDirective,\n PaddingBottomDirective,\n PaddingLeftDirective,\n PaddingRightDirective,\n PaddingHorizontalDirective,\n PaddingVerticalDirective,\n ],\n imports: [CommonModule]\n})\nexport class SpacingModule { }\n","import {\n Component,\n Input,\n HostBinding,\n Output,\n EventEmitter,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'suka-card',\n template: `\n <suka-card-header\n *ngIf=\"title\"\n (action)=\"onHeaderAction($event)\"\n [actionLabel]=\"headerActionLabel\"\n [skeleton]=\"skeleton\"\n >\n {{title}}\n </suka-card-header>\n\n <suka-card-section\n *ngIf='(sectioned !== false) else elseTpl'\n >\n <ng-container *ngTemplateOutlet=\"elseTpl\"></ng-container>\n </suka-card-section>\n\n <suka-card-footer\n *ngIf='!skeleton && showFooter'\n (primaryAction)=\"onPrimaryFooterAction($event)\"\n [primaryLabel]=\"primaryFooterActionLabel\"\n (secondaryAction)=\"onSecondaryFooterAction($event)\"\n [secondaryLabel]=\"secondaryFooterActionLabel\"\n >\n </suka-card-footer>\n\n <ng-template #elseTpl><ng-content></ng-content></ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class Card implements OnInit {\n /**\n * Title content for the card.\n */\n @Input() title: string;\n\n /**\n * Set to `true` to auto-wrap content in section\n */\n @Input() sectioned: boolean;\n\n /**\n * Primary action label.\n */\n @Input() primaryFooterActionLabel: string;\n /**\n * Callback for the primary action\n */\n @Output() primaryFooterAction = new EventEmitter();\n\n /**\n * Secondary action label.\n */\n @Input() secondaryFooterActionLabel: string;\n /**\n * Callback for the secondary action\n */\n @Output() secondaryFooterAction = new EventEmitter();\n\n /**\n * Card header action label\n */\n @Input() headerActionLabel: string;\n\n /**\n * Callback for the card header action\n */\n @Output() headerAction = new EventEmitter();\n\n @HostBinding('class.card') cardClass = true;\n\n /**\n * Set to `true` to display a loading card.\n */\n @Input() skeleton = false;\n\n /**\n * Display footer state.\n */\n showFooter = false;\n\n public ngOnInit() {\n this.showFooter = this.primaryFooterAction.observers.length > 0;\n }\n\n /**\n * Emits the cards primary footer action callback\n */\n public onPrimaryFooterAction($event) {\n this.primaryFooterAction.emit($event);\n }\n\n /**\n * Emits the cards secondary footer action callback\n */\n public onSecondaryFooterAction($event) {\n this.secondaryFooterAction.emit($event);\n }\n\n /**\n * Emits the cards header action callback\n */\n public onHeaderAction($event) {\n this.headerAction.emit($event);\n }\n}\n","import {\n Component,\n HostBinding,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'suka-card-header',\n template: `\n <h5 *ngIf=\"skeleton\" class=\"skeleton__text skeleton__heading\"></h5>\n <h5 *ngIf=\"!skeleton\"><ng-content></ng-content></h5>\n <button\n *ngIf=\"!skeleton && showAction\"\n sukaButton=\"plain\"\n (click)=\"onClick($event)\"\n >\n {{actionLabel}}\n </button>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CardHeader implements OnInit {\n showAction = false;\n\n @HostBinding('class.card-header') cardHeaderClass = true;\n\n @Input() skeleton = false;\n @Input() actionLabel: string;\n @Output() action = new EventEmitter();\n\n ngOnInit() {\n this.showAction = this.action.observers.length > 0;\n }\n\n onClick($event) {\n this.action.emit($event);\n }\n}\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'suka-card-section',\n template: `\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CardSection {\n @HostBinding('class.card-section') cardSectionClass = true;\n}\n","import { Component, HostBinding, Output, EventEmitter, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'suka-card-footer',\n template: `\n <suka-button-group>\n <button\n *ngIf=\"showSecondaryButton\"\n sukaButton=\"plain\"\n (click)=\"onButtonClick('secondary')\"\n >\n {{secondaryLabel}}\n </button>\n <button\n sukaButton=\"primary\"\n (click)=\"onButtonClick('primary')\"\n >\n {{primaryLabel}}\n </button>\n </suka-button-group>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CardFooter implements OnInit {\n showSecondaryButton = false;\n\n @HostBinding('class.card-footer') baseClass = true;\n\n @Input() primaryLabel: string;\n @Input() secondaryLabel: string;\n @Output() primaryAction = new EventEmitter();\n @Output() secondaryAction = new EventEmitter();\n\n ngOnInit() {\n this.showSecondaryButton = this.secondaryAction.observers.length > 0;\n }\n\n onButtonClick(buttonType: string) {\n if (buttonType === 'primary') {\n this.primaryAction.emit();\n }\n\n if (buttonType === 'secondary') {\n this.secondaryAction.emit();\n }\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '../button/button.module';\n\n// imports\nimport { Card } from './card.component';\nimport { CardHeader } from './card-header.component';\nimport { CardSection } from './card-section.component';\nimport { CardFooter } from './card-footer.component';\n\n// exports\nexport {\n Card,\n CardHeader,\n CardSection,\n CardFooter,\n};\n\n@NgModule({\n declarations: [\n Card,\n CardHeader,\n CardSection,\n CardFooter,\n ],\n exports: [\n Card,\n CardHeader,\n CardSection,\n CardFooter,\n ],\n imports: [\n CommonModule,\n ButtonModule,\n ]\n})\nexport class CardModule { }\n","import {\n Component,\n Input,\n HostBinding,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'suka-accordion',\n template: `\n <ng-content select=\"suka-accordion-item\"></ng-content>\n `,\n})\nexport class Accordion {\n protected _skeleton = false;\n\n openCloseItems = new Subject<boolean>();\n skeletons = new Subject<boolean>();\n\n /**\n * Set to `true` to allow multiple accordion items to be expanded.\n */\n @Input() multi = false;\n\n\n @HostBinding('attr.role') role = 'list';\n @HostBinding('class.accordion') baseClass = true;\n\n /**\n * Set to `true` to display a loading accordion.\n */\n @Input()\n set skeleton(value: any) {\n this._skeleton = value;\n this.updateSkeletons();\n }\n\n get skeleton(): any {\n return this._skeleton;\n }\n\n protected updateSkeletons() {\n this.skeletons.next(this._skeleton);\n }\n\n}\n","import {\n Component,\n Input,\n HostBinding,\n Output,\n EventEmitter,\n Host,\n OnInit,\n OnDestroy,\n TemplateRef\n} from '@angular/core';\nimport { Accordion } from './accordion.component';\nimport { takeWhile } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'suka-accordion-item',\n template: `\n <button\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"id\"\n (click)=\"toggle()\"\n class=\"accordion__heading\">\n <suka-icon icon=\"chevron-down\" class=\"accordion__arrow\"></suka-icon>\n\n <div *ngIf=\"isTemplate(title) && !skeleton\" class=\"accordion__title-content\">\n <ng-template [ngTemplateOutlet]=\"title\"></ng-template>\n </div>\n\n <p\n *ngIf=\"!isTemplate(title)\"\n class=\"accordion__title\"\n [ngClass]=\"{\n 'skeleton__text': skeleton\n }\">\n {{!skeleton ? title : null}}\n </p>\n </button>\n <div [id]=\"id\" class=\"accordion__content\">\n <ng-content *ngIf=\"!skeleton; else skeletonTemplate\"></ng-content>\n <ng-template #skeletonTemplate>\n <p class=\"skeleton__text\" style=\"width: 90%\"></p>\n <p class=\"skeleton__text\" style=\"width: 80%\"></p>\n <p class=\"skeleton__text\" style=\"width: 95%\"></p>\n </ng-template>\n </div>\n `,\n})\nexport class AccordionItem implements OnInit, OnDestroy {\n static accordionItemCount = 0;\n\n /**\n * Sets the accordion title. Can be a `string` or a `TemplateRef`. Defaults to Title plus the current accordion item count.\n */\n @Input() title: string | TemplateRef<any> = `Title ${AccordionItem.accordionItemCount}`;\n\n /**\n * Used to set a custom id to the element. Defaults to a counter\n */\n @Input() id = `accordion-item-${AccordionItem.accordionItemCount}`;\n\n /**\n * Skeleton state. Set to `true` to display a skeleton accordion.\n */\n @Input() skeleton = false;\n\n /**\n * Emits an event when the accordion item is opened.\n */\n @Output() opened = new EventEmitter();\n\n /**\n * Emits an event when the accordion item is closed.\n */\n @Output() closed = new EventEmitter();\n\n @HostBinding('class.accordion__item') itemClass = true;\n\n /**\n * Sets if the item is expanded.\n */\n @HostBinding('class.accordion__item--active') @Input() expanded = false;\n @HostBinding('style.display') itemType = 'list-item';\n @HostBinding('attr.role') role = 'heading';\n @HostBinding('attr.aria-level') @Input() ariaLevel = 3;\n\n private alive = true;\n private skeletonSubscription: Subscription;\n private openSubscription: Subscription;\n\n constructor(@Host() private accordion: Accordion) {\n AccordionItem.accordionItemCount++;\n }\n\n\n /**\n * Toggles the accordion opened state.\n */\n public toggle() {\n if (!this.skeleton) {\n if (!this.expanded) {\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n\n this.open();\n } else {\n this.close();\n }\n }\n }\n\n protected open() {\n if (!this.expanded) {\n this.opened.emit({ id: this.id });\n }\n\n this.expanded = true;\n }\n\n protected close() {\n if (this.expanded) {\n this.closed.emit({ id: this.id });\n }\n\n this.expanded = false;\n }\n\n ngOnInit() {\n this.openSubscription = this.accordion.openCloseItems\n .pipe(takeWhile(() => this.alive))\n .subscribe(collapsed => {\n if (!this.skeleton) {\n collapsed ? this.close() : this.open();\n }\n });\n\n this.skeletonSubscription = this.accordion.skeletons\n .pipe(takeWhile(() => this.alive))\n .subscribe(skeletonValue => this.skeleton = skeletonValue);\n\n this.skeleton = this.accordion.skeleton;\n }\n\n ngOnDestroy() {\n this.alive = false;\n this.openSubscription.unsubscribe();\n this.skeletonSubscription.unsubscribe();\n }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\nimport { Accordion } from './accordion.component';\nimport { AccordionItem } from './accordion-item.component';\n\nexport { Accordion } from './accordion.component';\nexport { AccordionItem } from './accordion-item.component';\n\n@NgModule({\n declarations: [\n Accordion,\n AccordionItem\n ],\n exports: [\n Accordion,\n AccordionItem\n ],\n imports: [\n CommonModule,\n IconModule,\n ]\n})\nexport class AccordionModule { }\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[sukaListItem]'\n})\nexport class ListItemDirective {\n @HostBinding('class.list__item') wrapper = true;\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[sukaList]'\n})\nexport class List {\n @HostBinding('class.list--ordered') get ordered() {\n if (this.nested) { return false; }\n return this.elementRef.nativeElement.tagName === 'OL';\n }\n\n @HostBinding('class.list--unordered') get unordered() {\n if (this.nested) { return false; }\n return this.elementRef.nativeElement.tagName === 'UL';\n }\n\n @HostBinding('class.list--nested') get nested() {\n return this.elementRef.nativeElement.parentElement.tagName === 'LI';\n }\n\n constructor(protected elementRef: ElementRef) { }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ListItemDirective } from './list-item.directive';\nimport { List } from './list.directive';\n\n@NgModule({\n declarations: [\n ListItemDirective,\n List\n ],\n exports: [\n ListItemDirective,\n List\n ],\n imports: [CommonModule]\n})\nclass ListModule { }\n\nexport {\n ListModule,\n ListItemDirective,\n List\n};\n","import { Number } from './number.component';\n\n/**\n * Used to emit changes performed on number input components.\n */\nexport class NumberChange {\n /**\n * Contains the `Number` that has been changed.\n */\n // tslint:disable-next-line: ban-types\n source: Number;\n /**\n * The value of the `Number` field encompassed in the `NumberChange` class.\n */\n value: number;\n}\n","import {\n Component,\n Input,\n HostBinding,\n EventEmitter,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { NumberChange } from './number-change.class';\n\n@Component({\n selector: 'suka-number',\n template: `\n <label *ngIf=\"skeleton && label\" class=\"label skeleton\"></label>\n <label *ngIf=\"!skeleton && label\" [for]=\"id\" class=\"label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n <ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n </label>\n <div *ngIf=\"!skeleton && helperText\" class=\"form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n </div>\n <div\n data-numberinput\n [attr.data-invalid]=\"(invalid ? true : null)\"\n [attr.data-valid]=\"(valid ? true : null)\"\n class=\"number-input\"\n [ngClass]=\"{\n 'number-input--nolabel': !label,\n 'number-input--helpertext': helperText,\n 'skeleton' : skeleton,\n 'number-input--disabled': disabled\n }\">\n <div class=\"number-input__input-wrapper\">\n <span class=\"number-input__prefix\" *ngIf=\"!skeleton && prefix\">\n <ng-container *ngIf=\"!isTemplate(prefix)\">{{prefix}}</ng-container>\n <ng-template *ngIf=\"isTemplate(prefix)\" [ngTemplateOutlet]=\"prefix\"></ng-template>\n </span>\n <input\n type=\"number\"\n [id]=\"id\"\n [value]=\"value\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (input)=\"onNumberInputChange($event)\"/>\n <suka-icon *ngIf=\"!skeleton && invalid\" icon=\"alert-circle\" class=\"number-input__invalid\"></suka-icon>\n <suka-icon *ngIf=\"!skeleton && valid\" icon=\"check\" class=\"number-input__valid\"></suka-icon>\n <div *ngIf=\"!skeleton\" class=\"number-input__controls\">\n <button\n class=\"number-input__control-btn up-icon\"\n type=\"button\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n (click)=\"onIncrement()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" height=\"16\" width=\"16\"><path fill=\"currentColor\" d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"></path></svg>\n </button>\n <button\n class=\"number-input__control-btn down-icon\"\n type=\"button\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n (click)=\"onDecrement()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" height=\"16\" width=\"16\"><path fill=\"currentColor\" d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"></path></svg>\n </button>\n </div>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: Number,\n multi: true\n }\n ]\n})\n// tslint:disable-next-line: component-class-suffix\nexport class Number implements ControlValueAccessor {\n /**\n * Variable used for creating unique ids for number input components.\n */\n static numberCount = 0;\n\n @HostBinding('class.form-item') containerClass = true;\n /**\n * Set to `true` for a disabled number input.\n */\n @Input() disabled = false;\n /**\n * Set to `true` for a loading number component.\n */\n @Input() skeleton = false;\n /**\n * Set to `true` for an invalid number component.\n */\n @Input() invalid = false;\n /**\n * Set to `true` for a valid number component.\n */\n @Input() valid = false;\n /**\n * The unique id for the number component.\n */\n @Input() id = `number-input-${Number.numberCount}`;\n /**\n * Reflects the required attribute of the `input` element.\n */\n @Input() required: boolean;\n /**\n * Sets the value attribute on the `input` element.\n */\n @Input() value = 0;\n /**\n * Sets the min attribute on the `input` element.\n */\n @Input() min = null;\n /**\n * Sets the max attribute on the `input` element.\n */\n @Input() max = null;\n /**\n * Sets the text inside the `label` tag.\n */\n @Input() label: string | TemplateRef<any>;\n /**\n * Sets the a prefix for the input wrapper.\n */\n @Input() prefix: string | TemplateRef<any>;\n /**\n * Sets the optional helper text.\n */\n @Input() helperText: string | TemplateRef<any>;\n /**\n * Sets the invalid text.\n */\n @Input() invalidText: string | TemplateRef<any>;\n /**\n * Emits event notifying other classes when a change in state occurs in the input.\n */\n // tslint:disable-next-line: no-output-native\n @Output() change = new EventEmitter<NumberChange>();\n\n /**\n * Creates an instance of `Number`.\n */\n constructor() {\n Number.numberCount++;\n }\n\n /**\n * This is the initial value set to the component\n * @param value The input value.\n */\n public writeValue(value: any) {\n this.value = value;\n }\n\n /**\n * Sets a method in order to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the number input is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state through the model\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /**\n * Called when number input is blurred. Needed to properly implement `ControlValueAccessor`.\n */\n onTouched: () => any = () => { };\n\n /**\n * Method set in `registerOnChange` to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n\n /**\n * Adds 1 to the current `value`.\n */\n onIncrement(): void {\n if (this.max === null || this.value < this.max) {\n this.value++;\n this.emitChangeEvent();\n }\n }\n\n /**\n * Subtracts 1 to the current `value`.\n */\n onDecrement(): void {\n if (this.min === null || this.value > this.min) {\n this.value--;\n this.emitChangeEvent();\n }\n }\n\n /**\n * Creates a class of `NumberChange` to emit the change in the `Number`.\n */\n emitChangeEvent(): void {\n const event = new NumberChange();\n event.source = this;\n event.value = this.value;\n this.change.emit(event);\n this.propagateChange(this.value);\n }\n\n onNumberInputChange(event) {\n this.value = event.target.value;\n this.emitChangeEvent();\n }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\n// imports\nimport { Number } from './number.component';\n\n@NgModule({\n declarations: [\n Number\n ],\n exports: [\n Number\n ],\n imports: [\n FormsModule,\n CommonModule,\n IconModule,\n ]\n})\nexport class NumberModule { }\n\nexport { Number };\n","import {\n Component,\n Input,\n EventEmitter,\n Output,\n HostBinding,\n ElementRef,\n HostListener,\n ViewChild\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'suka-search',\n template: `\n <div\n class=\"search\"\n [ngClass]=\"{\n 'skeleton': skeleton,\n 'toolbar-search': toolbar,\n 'toolbar-search--active': toolbar && active\n }\"\n role=\"search\"\n >\n <label class=\"label\" [for]=\"id\">{{label}}</label>\n\n <div *ngIf=\"skeleton; else enableInput\" class=\"search-input\"></div>\n <ng-template #enableInput>\n <input\n #input\n *ngIf=\"!toolbar || active || value !== ''\"\n class=\"search-input\"\n [type]=\"tableSearch || !toolbar ? 'text' : 'search'\"\n role=\"search\"\n [id]=\"id\"\n [value]=\"value\"\n [autocomplete]=\"autocomplete\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (input)=\"onSearch($event.target.value)\"/>\n <button *ngIf=\"!tableSearch && toolbar\" class=\"toolbar-search__btn\" (click)=\"openSearch()\">\n <suka-icon icon=\"search\"></suka-icon>\n </button>\n <suka-icon icon=\"search\" *ngIf=\"tableSearch || !toolbar\" (click)=\"openSearch()\" class=\"search-magnifier\"></suka-icon>\n </ng-template>\n\n <button\n *ngIf=\"tableSearch || !toolbar\"\n class=\"search-close\"\n [ngClass]=\"{\n 'search-close--hidden': !value || value.length === 0\n }\"\n [title]=\"clearButtonTitle\"\n [attr.aria-label]=\"clearButtonTitle\"\n (click)=\"clearSearch()\"\n >\n <suka-icon icon=\"x-circle\"></suka-icon>\n </button>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: Search,\n multi: true\n }\n ]\n})\n// tslint:disable-next-line: component-class-suffix\nexport class Search implements ControlValueAccessor {\n /**\n * Variable used for creating unique ids for search components.\n */\n static searchCount = 0;\n\n @HostBinding('class.form-item') get containerClass() { return !this.toolbar; }\n\n /**\n * Set to `true` for a disabled search input.\n */\n @Input() disabled = false;\n /**\n * Set to `true` for a toolbar search component.\n */\n @Input() toolbar = false;\n /**\n * Set to `true` for a loading search component.\n */\n @Input() skeleton = false;\n /**\n * Set to `true` to expand the toolbar search component.\n */\n @Input() active = false;\n /**\n * Specifies whether the search component is used in the table toolbar.\n */\n @Input() tableSearch = false;\n /**\n * Sets the name attribute on the `input` element.\n */\n @Input() name: string;\n /**\n * The unique id for the search component.\n */\n @Input() id = `search-${Search.searchCount}`;\n /**\n * Reflects the required attribute of the `input` element.\n */\n @Input() required: boolean;\n /**\n * Sets the value attribute on the `input` element.\n */\n @Input() value = '';\n /**\n * Sets the autocomplete attribute on the `input` element.\n * For reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values\n */\n @Input() autocomplete = 'on';\n /**\n * Sets the text inside the `label` tag.\n */\n @Input() label = 'Búsqueda'; // TODO: i18n\n /**\n * Sets the placeholder attribute on the `input` element.\n */\n @Input() placeholder = 'Buscar'; // TODO: i18n\n /**\n * Used to set the `title` attribute of the clear button.\n */\n @Input() clearButtonTitle = 'Limpiar'; // TODO: i18n\n /**\n * Emits an event when value is changed.\n */\n @Output() valueChange = new EventEmitter<string>();\n /**\n * Emits an event when the clear button is clicked.\n */\n @Output() clear = new EventEmitter();\n\n @ViewChild('input', {static: false}) inputRef: ElementRef;\n\n /**\n * Creates an instance of `Search`.\n */\n constructor(protected elementRef: ElementRef) {\n Search.searchCount++;\n }\n\n /**\n * This is the initial value set to the component\n * @param value The input value.\n */\n public writeValue(value: any) {\n this.value = value;\n }\n\n /**\n * Sets a method in order to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the search input is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Called when search input is blurred. Needed to properly implement `ControlValueAccessor`.\n */\n onTouched: () => any = () => { };\n\n /**\n * Method set in `registerOnChange` to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n\n /**\n * Called when text is written in the input.\n * @param search The input text.\n */\n onSearch(search: string) {\n this.value = search;\n this.doValueChange();\n }\n\n /**\n * Called when clear button is clicked.\n */\n clearSearch(): void {\n this.value = '';\n this.clear.emit();\n this.propagateChange(this.value);\n }\n\n doValueChange() {\n this.valueChange.emit(this.value);\n this.propagateChange(this.value);\n }\n\n openSearch() {\n this.active = true;\n setTimeout(() => this.inputRef.nativeElement.focus());\n }\n\n @HostListener('keydown', ['$event'])\n keyDown(event: KeyboardEvent) {\n if (this.toolbar) {\n if (event.key === 'Escape') {\n this.active = false;\n } else if (event.key === 'Enter') {\n this.openSearch();\n }\n }\n }\n\n @HostListener('focusout', ['$event'])\n focusOut(event) {\n if (this.toolbar &&\n this.inputRef.nativeElement.value === '' &&\n event.relatedTarget === null) {\n this.active = false;\n }\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\n// imports\nimport { Search } from './search.component';\n\n@NgModule({\n declarations: [\n Search\n ],\n exports: [\n Search\n ],\n imports: [\n FormsModule,\n CommonModule,\n IconModule,\n ]\n})\nexport class SearchModule { }\n\nexport { Search };\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'suka-tab',\n template: `\n <div [hidden]=\"!active\" class=\"tabs__tab-item\">\n <ng-content></ng-content>\n </div>\n `,\n})\nexport class TabItem implements OnChanges {\n /**\n * Sets the tab title.\n */\n @Input() title: string;\n\n /**\n * Set to `true` to activate the tab (display it).\n */\n @Input() active = false;\n\n /**\n * Callback when the tab is selected.\n */\n @Output() selected = new EventEmitter<string>();\n\n public ngOnChanges(): void {\n if (this.active === true) {\n this.selected.emit(this.title);\n }\n }\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n HostBinding,\n Input,\n} from '@angular/core';\n\nimport { TabItem } from './tab-item.component';\n\n@Component({\n selector: 'suka-tabs',\n template: `\n <ul class=\"tabs\">\n <li\n *ngFor=\"let tab of tabs\"\n (click)=\"selectTab(tab)\"\n [class.tabs__tab-container--selected]=\"tab.active\"\n class=\"tabs__tab-container\"\n >\n <button class=\"tabs__tab\" type=\"button\" role=\"tab\">\n <span class=\"tabs__title\">{{tab.title}}</span>\n </button>\n </li>\n </ul>\n <ng-content></ng-content>\n `,\n})\nexport class Tabs implements AfterContentInit {\n /**\n * Set to `true` to fit tabs to container.\n */\n @HostBinding('class.tabs-fitted') @Input() fitted = false;\n\n /**\n * List of tabs associated to the main wrapper.\n */\n @ContentChildren(TabItem) tabs: QueryList<TabItem>;\n\n ngAfterContentInit() {\n const activeTabs = this.tabs.filter((tab) => tab.active);\n\n if (activeTabs.length === 0) {\n this.selectTab(this.tabs.first);\n }\n }\n\n /**\n * Selects a particular tab and activates it.\n */\n selectTab(tabItem: TabItem) {\n this.tabs.toArray().forEach(tab => tab.active = false);\n\n tabItem.active = true;\n tabItem.ngOnChanges();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Tabs } from './tabs.component';\nimport { TabItem } from './tab-item.component';\n\nexport { Tabs } from './tabs.component';\nexport { TabItem } from './tab-item.component';\n\n@NgModule({\n declarations: [\n Tabs,\n TabItem,\n ],\n exports: [\n Tabs,\n TabItem,\n ],\n imports: [\n CommonModule\n ]\n})\nexport class TabsModule { }\n","import { Component, Input, TemplateRef, Type, OnInit } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { TooltipContent } from './tooltip-content.type';\n\n@Component({\n selector: 'suka-tooltip',\n template: `\n <div @tooltip class=\"tooltip tooltip-{{position}}\">\n <span class=\"tooltip__caret\"></span>\n <ng-container [ngSwitch]=\"renderMethod\">\n <div *ngSwitchCase=\"'text'\" [innerHTML]=\"content\"></div>\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\n </ng-container>\n </ng-container>\n </div>`,\n animations: [\n trigger('tooltip', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('0.2s ease-in', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(200, style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class TooltipContainer implements OnInit {\n public renderMethod: 'template' | 'component' | 'text' = 'component';\n\n @Input() content: TooltipContent;\n @Input() position: 'top' | 'bottom' | 'right' | 'left' = 'bottom';\n\n ngOnInit() {\n if (typeof this.content === 'string') {\n this.renderMethod = 'text';\n }\n\n if (this.content instanceof TemplateRef) {\n this.renderMethod = 'template';\n }\n }\n}\n","// tslint:disable: no-input-rename\n\nimport { ComponentRef, Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef, ConnectedPosition, CloseScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { TooltipContainer } from './tooltip-container.component';\nimport { TooltipContent } from './tooltip-content.type';\n\nconst positions = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8,\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8,\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n }\n};\n\n@Directive({ selector: '[sukaTooltip]' })\nexport class Tooltip implements OnInit {\n private overlayRef: OverlayRef;\n private open = false;\n\n /**\n * The tooltip content\n */\n @Input('sukaTooltip') content: TooltipContent = '';\n /**\n * Sets the tooltip trigger behaviour. Defaults to `hover`.\n */\n @Input('tooltipTrigger') trigger: 'hover' | 'click' = 'hover';\n /**\n * Sets the tooltip position according to the trigger component.\n */\n @Input('tooltipPosition') position: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Sets a duration for the tooltip. If not set, it runs indefinitely.\n */\n @Input('tooltipDuration') duration: number;\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnInit(): void {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions([ positions[this.position] as ConnectedPosition]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close(),\n });\n }\n\n private show() {\n this.open = true;\n const tooltipRef: ComponentRef<TooltipContainer>\n = this.overlayRef.attach(new ComponentPortal(TooltipContainer));\n\n tooltipRef.instance.content = this.content;\n tooltipRef.instance.position = this.position;\n }\n\n private hide() {\n this.open = false;\n this.overlayRef.detach();\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (this.trigger === 'hover') {\n this.show();\n }\n }\n\n @HostListener('mouseout')\n onMouseOut() {\n if (this.trigger === 'hover') {\n this.hide();\n }\n }\n\n @HostListener('click')\n onClick() {\n if (this.trigger === 'click') {\n this.open ? this.hide() : this.show();\n\n if (this.duration) {\n setTimeout(() => {\n this.hide();\n }, this.duration);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TooltipContainer } from './tooltip-container.component';\nimport { Tooltip } from './tooltip.directive';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nexport { Tooltip } from './tooltip.directive';\nexport { TooltipContainer } from './tooltip-container.component';\n\n@NgModule({\n declarations: [\n TooltipContainer,\n Tooltip,\n ],\n exports: [\n TooltipContainer,\n Tooltip,\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n entryComponents: [\n TooltipContainer\n ]\n})\nexport class TooltipModule { }\n","// tslint:disable: variable-name\nimport {\n Directive,\n HostBinding,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n OnInit\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { iconDefs } from '../icon/icon-defs';\n\nconst arrowImg = iconDefs.find(iconDef => iconDef.name === 'arrow-right').template;\nconst externalImg = iconDefs.find(iconDef => iconDef.name === 'external-link').template;\n\n@Directive({\n selector: '[sukaLink]'\n})\nexport class Link implements OnInit {\n @HostBinding('class.link') baseClass = true;\n\n /**\n * Automatically set to `-1` when link is disabled.\n */\n @HostBinding('attr.tabindex') tabindex: number;\n\n /**\n * Set target and ref for external links\n */\n @HostBinding('attr.target') target: string;\n @HostBinding('attr.ref') ref: string;\n\n /**\n * Set to `true` to disable the link.\n */\n @Input()\n @HostBinding('attr.aria-disabled')\n @HostBinding('class.link--disabled')\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.tabindex = this.disabled ? -1 : null;\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private _disabled: boolean;\n\n /**\n * Set to `true` to display an arrow next to the link\n */\n @HostBinding('class.link--arrow') @Input() arrow = false;\n\n /**\n * Set to `true` to display an icon describing an external link (going to a new page)\n */\n @Input()\n @HostBinding('class.link--external')\n set external(external: boolean) {\n this._external = external;\n this.target = this.external ? '_blank' : null;\n this.ref = this.external ? 'noopener' : null;\n }\n\n get external(): boolean {\n return this._external;\n }\n\n private _external: boolean;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) { }\n\n ngOnInit() {\n if (this.arrow || this.external) {\n const child = document.createElement('span');\n child.className = 'link__icon';\n\n if (this.arrow) {\n child.className += ' link__icon--arrow';\n child.innerHTML = arrowImg;\n }\n\n if (this.external) {\n child.innerHTML = externalImg;\n }\n\n this.renderer.appendChild(this.elementRef.nativeElement, child);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Link } from './link.directive';\n\nexport { Link } from './link.directive';\n\n@NgModule({\n declarations: [\n Link\n ],\n exports: [\n Link\n ],\n imports: [\n CommonModule\n ]\n})\nexport class LinkModule {}\n","import {\n Component,\n Input,\n HostBinding,\n TemplateRef,\n} from '@angular/core';\n\n@Component({\n selector: 'suka-input-group',\n template: `\n <label *ngIf=\"label\" class=\"label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n <ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n </label>\n <div *ngIf=\"helperText\" class=\"form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n </div>\n <div class=\"input-group-wrapper\">\n <div\n class=\"input-group-content\"\n [ngClass]=\"{\n 'input-group-content--condensed': condensed\n }\"\n [attr.data-invalid]=\"(invalid ? true : null)\"\n >\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n </div>\n `,\n})\n// tslint:disable-next-line: component-class-suffix\nexport class InputGroup {\n @HostBinding('class.form-item') containerClass = true;\n\n /**\n * Set to `true` for an invalid input group component.\n */\n @Input() invalid = false;\n /**\n * Sets the text inside the `label` tag.\n */\n @Input() label: string | TemplateRef<any>;\n /**\n * Sets the optional helper text.\n */\n @Input() helperText: string | TemplateRef<any>;\n /**\n * Sets the invalid text.\n */\n @Input() invalidText: string | TemplateRef<any>;\n /**\n * Set to `true` for a condesned input group component;\n */\n @Input() condensed = false;\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\n\n@Directive({\n selector: '[sukaInputGroupItem]'\n})\nexport class InputGroupItem implements OnChanges {\n @Input('sukaInputGroupItem') type: 'default' | 'auto' | 'full' = 'default';\n\n @HostBinding('class.input-group__item') baseClass = true;\n @HostBinding('class.input-group__item--auto') auto = false;\n @HostBinding('class.input-group__item--full') full = false;\n\n ngOnChanges() {\n this.auto = this.full = false;\n\n switch (this.type) {\n case 'auto': this.auto = true; break;\n case 'full': this.full = true; break;\n default: break;\n }\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { InputGroup } from './input-group.component';\nimport { InputGroupItem } from './input-group-item.directive';\n\n@NgModule({\n declarations: [\n InputGroup,\n InputGroupItem,\n ],\n exports: [\n InputGroup,\n InputGroupItem,\n ],\n imports: [\n CommonModule,\n ]\n})\nclass InputGroupModule { }\n\nexport { InputGroup, InputGroupItem, InputGroupModule };\n"," // tslint:disable: variable-name\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { ModalContainer } from './modal-container.component';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nexport class ModalRef {\n public componentInstance: ModalContainer;\n\n private _beforeClose = new Subject<any | undefined>();\n private _afterClosed = new Subject<any | undefined>();\n\n private _result: any | undefined;\n\n constructor(private overlayRef: OverlayRef) { }\n\n public close(data?: any): void {\n this._result = data;\n\n // Listen for animation 'start' events\n this.componentInstance.animationStateChanged.pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n ).subscribe(() => {\n this._beforeClose.next(this._result);\n this._beforeClose.complete();\n this.overlayRef.detachBackdrop();\n });\n\n // Listen for animation 'done' events\n this.componentInstance.animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'leave'),\n take(1)\n ).subscribe(() => {\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.overlayRef.dispose();\n\n // Make sure to also clear the reference to the\n // component instance to avoid memory leaks\n // tslint:disable-next-line: no-non-null-assertion\n this.componentInstance = null!;\n });\n\n // Start exit animation\n this.componentInstance.startExitAnimation();\n }\n\n public afterClosed(): Observable<any | undefined> {\n return this._afterClosed.asObservable();\n }\n\n public beforeClose(): Observable<any | undefined> {\n return this._beforeClose.asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ModalContent } from './modal.service';\n\nexport const MODAL_CONTENT_DATA = new InjectionToken<ModalContent>('MODAL_CONTENT_DATA');\n","import { Component, Inject, TemplateRef, HostListener, EventEmitter, OnInit, HostBinding } from '@angular/core';\n\nimport { ModalRef } from './modal-ref';\nimport { MODAL_CONTENT_DATA } from './modal.tokens';\nimport { AnimationEvent, trigger, state, style, transition, animate } from '@angular/animations';\n\nconst ESCAPE_KEY = 27;\nconst MODAL_ANIMATION_TIMINGS = '200ms cubic-bezier(0.64, 0, 0.35, 1)';\n\n@Component({\n selector: 'suka-modal',\n template: `\n <div class=\"modal\"\n [@slideContent]=\"animationState\"\n (@slideContent.start)=\"onAnimationStart($event)\"\n (@slideContent.done)=\"onAnimationDone($event)\"\n cdkTrapFocus\n >\n <div class=\"modal__header\">\n <h5>\n <ng-container *ngIf=\"!isTemplate(content.title)\">{{content.title}}</ng-container>\n <ng-template *ngIf=\"isTemplate(content.title)\" [ngTemplateOutlet]=\"content.title\"></ng-template>\n </h5>\n <button\n *ngIf=\"content.closeButton\"\n sukaButton=\"plain\"\n (click)=\"onClose($event)\"\n >\n <suka-icon icon=\"x\"></suka-icon>\n </button>\n </div>\n <div class=\"modal__content\">\n <ng-container *ngIf=\"!isTemplate(content.body)\">{{content.body}}</ng-container>\n <ng-container *ngIf=\"isTemplate(content.body)\">\n <ng-container\n *ngTemplateOutlet=\"content.body; context: {closeModal: closeModal.bind(this)}\"\n ></ng-container>\n </ng-container>\n </div>\n <div class=\"modal__footer\" *ngIf=\"showFooter\">\n <suka-button-group>\n <button\n *ngFor=\"let secondaryAction of secondaryActions\"\n sukaButton=\"plain\"\n (click)=\"onAction(secondaryAction.tag)\"\n >\n {{secondaryAction.label}}\n </button>\n <button\n *ngFor=\"let primaryAction of primaryActions\"\n sukaButton=\"primary\"\n (click)=\"onAction(primaryAction.tag)\"\n >\n {{primaryAction.label}}\n </button>\n </suka-button-group>\n </div>\n </div>\n `,\n animations: [\n trigger('slideContent', [\n state('void', style({ transform: 'translate3d(0, 20rem, 0)', opacity: 0 })),\n state('enter', style({ transform: 'none', opacity: 1 })),\n state('leave', style({ transform: 'translate3d(0, 20rem, 0)', opacity: 0 })),\n transition('* => *', animate(MODAL_ANIMATION_TIMINGS)),\n ])\n ]\n})\nexport class ModalContainer implements OnInit {\n public animationState: 'void' | 'enter' | 'leave' = 'enter';\n public animationStateChanged = new EventEmitter<AnimationEvent>();\n showFooter = false;\n primaryActions: [];\n secondaryActions: [];\n\n @HostBinding('class.modal--default') baseClass = true;\n\n constructor(\n public dialogRef: ModalRef,\n @Inject(MODAL_CONTENT_DATA) public content: any\n ) { }\n\n public ngOnInit() {\n if (this.content.actions && this.content.actions.length > 0) {\n this.showFooter = true;\n this.primaryActions = this.content.actions.filter((action) => action.type === 'primary');\n this.secondaryActions = this.content.actions.filter((action) => action.type === 'secondary');\n }\n }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n\n public onClose(event?: any) {\n this.dialogRef.close('cancel');\n }\n\n public onAction(tag: string) {\n this.dialogRef.close(tag);\n }\n\n @HostListener('document:keydown', ['$event']) public handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n if (event.keyCode === ESCAPE_KEY) {\n this.dialogRef.close('cancel');\n }\n }\n\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n onAnimationDone(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation() {\n this.animationState = 'leave';\n }\n\n closeModal($event: any) {\n this.dialogRef.close($event);\n }\n}\n","import { Injectable, Injector, ComponentRef, TemplateRef } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\n\nimport { ModalRef } from './modal-ref';\nimport { MODAL_CONTENT_DATA } from './modal.tokens';\nimport { ModalContainer } from './modal-container.component';\n\nexport interface ModalContent {\n title?: string | TemplateRef<any>;\n body?: string | TemplateRef<any>;\n closeButton?: boolean;\n actions?: {\n label: string;\n type: 'primary' | 'secondary';\n tag?: string;\n }[];\n}\n\nexport interface ModalConfig {\n closeOnBackdropClick?: boolean;\n panelClass?: string;\n hasBackdrop?: boolean;\n backdropClass?: string;\n content?: ModalContent;\n}\n\nconst DEFAULT_CONFIG: ModalConfig = {\n closeOnBackdropClick: true,\n hasBackdrop: true,\n backdropClass: 'backdrop--dark',\n panelClass: 'modal--default',\n content: null\n};\n\n@Injectable()\nexport class ModalService {\n\n constructor(\n private injector: Injector,\n private overlay: Overlay\n ) { }\n\n open(config: ModalConfig = {}) {\n // Override default configuration\n const dialogConfig = { ...DEFAULT_CONFIG, ...config };\n\n // Returns an OverlayRef which is a PortalHost\n const overlayRef = this.createOverlay(dialogConfig);\n\n // Instantiate remote control\n const modalRef = new ModalRef(overlayRef);\n\n const overlayComponent = this.attachModalContainer(overlayRef, dialogConfig, modalRef);\n\n modalRef.componentInstance = overlayComponent;\n\n if (dialogConfig.closeOnBackdropClick) {\n overlayRef.backdropClick().subscribe(_ => modalRef.close('cancel'));\n }\n\n return modalRef;\n }\n\n private createOverlay(config: ModalConfig) {\n const overlayConfig = this.getOverlayConfig(config);\n return this.overlay.create(overlayConfig);\n }\n\n private attachModalContainer(overlayRef: OverlayRef, config: ModalConfig, modalRef: ModalRef) {\n const injector = this.createInjector(config, modalRef);\n\n const containerPortal = new ComponentPortal(ModalContainer, null, injector);\n const containerRef: ComponentRef<ModalContainer> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n private createInjector(config: ModalConfig, modalRef: ModalRef): PortalInjector {\n const injectionTokens = new WeakMap();\n\n injectionTokens.set(ModalRef, modalRef);\n injectionTokens.set(MODAL_CONTENT_DATA, config.content);\n\n return new PortalInjector(this.injector, injectionTokens);\n }\n\n private getOverlayConfig(config: ModalConfig): OverlayConfig {\n const positionStrategy = this.overlay.position()\n .global()\n .centerHorizontally()\n .centerVertically();\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: config.backdropClass,\n panelClass: config.panelClass,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy\n });\n\n return overlayConfig;\n }\n}\n","// tslint:disable: no-input-rename no-output-rename\n\nimport { Input, TemplateRef, Directive, HostListener, EventEmitter, Output, OnDestroy } from '@angular/core';\nimport { ModalService, ModalConfig } from './modal.service';\nimport { Subscription } from 'rxjs';\n\nconst PRIMARY_ACTION_TAG = 'primaryAction';\nconst SECONDARY_ACTION_TAG = 'secondaryAction';\n\n/**\n * Modals are overlays that prevent users from interacting with the rest of the application until a specific action is taken. They can be disruptive because they require users to take an action before they can continue interacting with the rest of the application.\n * It should be used thoughtfully and sparingly.\n */\n@Directive({\n selector: '[sukaModal]'\n})\nexport class ModalDirective {\n constructor(protected modalService: ModalService) { }\n\n /**\n * Set to `true` to show a close button on the top right corner. Defaults to `false`.\n */\n @Input('modalCloseButton') closeButton = false;\n /**\n * Sets the modal title.\n */\n @Input('modalTitle') title: string | TemplateRef<any>;\n /**\n * Sets the body of the modal.\n */\n @Input('modalBody') body: string | TemplateRef<any>;\n /**\n * Sets to `false` to stop the modal from closing when the user clicks on the backdrop. Defaults to `true`.\n */\n @Input('modalCloseOnBackdropClick') closeOnBackdropClick = true;\n\n /**\n * Callback when the modal closes.\n */\n @Output('modalClose') close = new EventEmitter();\n\n /**\n * Sets the modal secondary action button label.\n */\n @Input('modalSecondaryActionLabel') secondaryActionLabel: string;\n /**\n * Callback when the secondary action is triggered.\n */\n @Output('modalSecondaryAction') secondaryAction = new EventEmitter();\n\n /**\n * Sets the modal primary action button label.\n */\n @Input('modalPrimaryActionLabel') primaryActionLabel: string;\n /**\n * Callback when the primary action is triggered.\n */\n @Output('modalPrimaryAction') primaryAction = new EventEmitter();\n\n @HostListener('click')\n onClick() {\n this.openModal();\n }\n\n /**\n * Opens the modal.\n */\n private openModal() {\n const modalConfig: ModalConfig = {\n closeOnBackdropClick: this.closeOnBackdropClick,\n content: {\n closeButton: this.closeButton,\n title: this.title,\n body: this.body,\n }\n };\n\n if (this.primaryActionLabel || this.secondaryActionLabel) {\n modalConfig.content.actions = [];\n\n if (this.primaryActionLabel) {\n modalConfig.content.actions.push({\n label: this.primaryActionLabel,\n type: 'primary',\n tag: PRIMARY_ACTION_TAG\n });\n }\n\n if (this.secondaryActionLabel) {\n modalConfig.content.actions.push({\n label: this.secondaryActionLabel,\n type: 'secondary',\n tag: SECONDARY_ACTION_TAG\n });\n }\n }\n\n const modalRef = this.modalService.open(modalConfig);\n\n modalRef.afterClosed().subscribe((result: any) => {\n switch (result) {\n case PRIMARY_ACTION_TAG:\n if (this.primaryAction.observers.length > 0) {\n this.primaryAction.emit(result);\n }\n break;\n case SECONDARY_ACTION_TAG:\n if (this.secondaryAction.observers.length > 0) {\n this.secondaryAction.emit(result);\n }\n break;\n default:\n if (this.close.observers.length > 0) {\n this.close.emit();\n }\n break;\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\nimport { ModalContainer } from './modal-container.component';\nimport { ModalDirective } from './modal.directive';\nimport { ModalService } from './modal.service';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ButtonModule } from '../button/button.module';\n\nexport { ModalContainer } from './modal-container.component';\nexport { ModalDirective } from './modal.directive';\nexport { ModalService } from './modal.service';\nexport { ModalRef } from './modal-ref';\n\n@NgModule({\n declarations: [\n ModalContainer,\n ModalDirective,\n ],\n exports: [\n ModalContainer,\n ModalDirective,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n ButtonModule,\n IconModule,\n ],\n entryComponents: [\n ModalContainer\n ],\n providers: [\n ModalService,\n ],\n})\nexport class ModalModule { }\n","import { InjectionToken } from '@angular/core';\nimport { PopoverContent } from './popover-content';\n\nexport const POPOVER_CONTENT_DATA = new InjectionToken<PopoverContent>('POPOVER_CONTENT_DATA');\n","// tslint:disable: variable-name\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { PopoverContainer } from './popover-container.component';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nexport class PopoverRef {\n public componentInstance: PopoverContainer;\n\n private _beforeClose = new Subject<any | undefined>();\n private _afterClosed = new Subject<any | undefined>();\n\n private _result: any | undefined;\n\n constructor(private overlayRef: OverlayRef) { }\n\n public close(data?: any): void {\n this._result = data;\n\n // Listen for animation 'start' events\n this.componentInstance.animationStateChanged.pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n ).subscribe(() => {\n this._beforeClose.next(this._result);\n this._beforeClose.complete();\n this.overlayRef.detachBackdrop();\n });\n\n // Listen for animation 'done' events\n this.componentInstance.animationStateChanged.pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'leave'),\n take(1)\n ).subscribe(() => {\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.overlayRef.dispose();\n\n // Make sure to also clear the reference to the\n // component instance to avoid memory leaks\n // tslint:disable-next-line: no-non-null-assertion\n this.componentInstance = null!;\n });\n\n // Start exit animation\n this.componentInstance.startExitAnimation();\n }\n\n public afterClosed(): Observable<any | undefined> {\n return this._afterClosed.asObservable();\n }\n\n public beforeClose(): Observable<any | undefined> {\n return this._beforeClose.asObservable();\n }\n}\n","import { Component, Input, TemplateRef, OnInit, Inject, HostListener, EventEmitter } from '@angular/core';\nimport { AnimationEvent, animate, style, transition, trigger, state } from '@angular/animations';\nimport { PopoverContent } from './popover-content';\nimport { POPOVER_CONTENT_DATA } from './popover.tokens';\nimport { PopoverRef } from './popover-ref';\n\nconst ESCAPE_KEY = 27;\nconst POPOVER_ANIMATION_TIMINGS = '200ms cubic-bezier(0.64, 0, 0.35, 1)';\n\n@Component({\n selector: 'suka-popover',\n template: `\n <div\n [@popover]=\"animationState\"\n (@popover.start)=\"onAnimationStart($event)\"\n (@popover.done)=\"onAnimationDone($event)\"\n cdkTrapFocus\n class=\"popover popover-{{position}}\"\n role=\"dialog\"\n >\n <suka-popover-section\n *ngIf=\"(sectioned !== false)\n else elseTpl\"\n >\n <ng-container *ngTemplateOutlet=\"elseTpl\"></ng-container>\n </suka-popover-section>\n </div>\n\n <ng-template #elseTpl>\n <ng-container [ngSwitch]=\"renderMethod\">\n <div *ngSwitchCase=\"'text'\" [innerHTML]=\"content.body\"></div>\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container *ngTemplateOutlet=\"content.body; context: {closePopover: closePopover.bind(this)}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container *ngComponentOutlet=\"content.body\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n `,\n animations: [\n trigger('popover', [\n state('void', style({ transform: 'scale(.9)', opacity: 0 })),\n state('enter', style({ transform: 'none', opacity: 1 })),\n state('leave', style({ transform: 'scale(.8)', opacity: 0 })),\n transition('* => *', animate(POPOVER_ANIMATION_TIMINGS)),\n ]),\n ],\n})\nexport class PopoverContainer implements OnInit {\n public animationState: 'void' | 'enter' | 'leave' = 'enter';\n public animationStateChanged = new EventEmitter<AnimationEvent>();\n\n public renderMethod: 'template' | 'component' | 'text' = 'component';\n\n @Input() position: 'top' | 'bottom' | 'right' | 'left' = 'bottom';\n @Input() sectioned = false;\n\n constructor(\n public popoverRef: PopoverRef,\n @Inject(POPOVER_CONTENT_DATA) public content: PopoverContent\n ) {}\n\n ngOnInit() {\n if (typeof this.content.body === 'string') {\n this.renderMethod = 'text';\n }\n\n if (this.content.body instanceof TemplateRef) {\n this.renderMethod = 'template';\n }\n\n if (this.content.sectioned) {\n this.sectioned = true;\n }\n }\n\n closePopover($event: any) {\n this.popoverRef.close($event);\n }\n\n @HostListener('document:keydown', ['$event']) public handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n if (event.keyCode === ESCAPE_KEY) {\n this.popoverRef.close();\n }\n }\n\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n onAnimationDone(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation() {\n this.animationState = 'leave';\n }\n}\n","import { Injectable, Injector, ComponentRef, TemplateRef, ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayRef, OverlayPositionBuilder, ConnectedPosition } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\n\nimport { PopoverRef } from './popover-ref';\nimport { POPOVER_CONTENT_DATA } from './popover.tokens';\nimport { PopoverContainer } from './popover-container.component';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { skip, filter, take } from 'rxjs/operators';\nimport { PopoverContent } from './popover-content';\n\nconst positions = {\n bottom: {\n originY: 'bottom',\n overlayY: 'top',\n offsetY: 4,\n },\n top: {\n originY: 'top',\n overlayY: 'bottom',\n offsetY: -4,\n }\n};\n\nconst alignments = {\n left: {\n originX: 'start',\n overlayX: 'start',\n },\n right: {\n originX: 'end',\n overlayX: 'end',\n },\n center: {\n originX: 'center',\n overlayX: 'center',\n }\n}\n\nexport interface PopoverConfig {\n content?: PopoverContent;\n position: 'top' | 'bottom';\n alignment: 'left' | 'right' | 'center';\n}\n\nconst DEFAULT_CONFIG: PopoverConfig = {\n content: null,\n position: 'bottom',\n alignment: 'left',\n};\n\n@Injectable()\nexport class PopoverService {\n constructor(\n private injector: Injector,\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n ) { }\n\n open(config: PopoverConfig = DEFAULT_CONFIG, target: ElementRef | HTMLElement) {\n // Override default configuration\n const popoverConfig = { ...DEFAULT_CONFIG, ...config };\n\n // Returns an OverlayRef which is a PortalHost\n const overlayRef = this.createOverlay(popoverConfig, target);\n\n // Instantiate remote control\n const popoverRef = new PopoverRef(overlayRef);\n\n const overlayComponent = this.attachPopoverContainer(overlayRef, popoverConfig, popoverRef);\n\n popoverRef.componentInstance = overlayComponent;\n\n overlayRef.backdropClick().subscribe(_ => popoverRef.close());\n\n return popoverRef;\n }\n\n private createOverlay(config: PopoverConfig, target: ElementRef | HTMLElement) {\n const overlayConfig = this.getOverlayConfig(config, target);\n return this.overlay.create(overlayConfig);\n }\n\n private attachPopoverContainer(overlayRef: OverlayRef, config: PopoverConfig, popoverRef: PopoverRef) {\n const injector = this.createInjector(config, popoverRef);\n\n const containerPortal = new ComponentPortal(PopoverContainer, null, injector);\n const containerRef: ComponentRef<PopoverContainer> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n private createInjector(config: PopoverConfig, popoverRef: PopoverRef): PortalInjector {\n const injectionTokens = new WeakMap();\n\n injectionTokens.set(PopoverRef, popoverRef);\n injectionTokens.set(POPOVER_CONTENT_DATA, config.content);\n\n return new PortalInjector(this.injector, injectionTokens);\n }\n\n private getOverlayConfig(config: PopoverConfig, target: ElementRef | HTMLElement): OverlayConfig {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(target)\n .withPositions([{ ...positions[config.position], ...alignments[config.alignment] } as ConnectedPosition]);\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy\n });\n\n return overlayConfig;\n }\n}\n","// tslint:disable: no-input-rename\n\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverBody } from './popover-body.type';\nimport { PopoverService } from './popover.service';\nimport { PopoverRef } from './popover-ref';\n\n@Directive({ selector: '[sukaPopover]' })\nexport class Popover {\n private popoverRef: PopoverRef;\n private open = false;\n\n /**\n * The `Popover` body\n */\n @Input('sukaPopover') body: PopoverBody = '';\n /**\n * Sets the vertical position of the popover. Defaults to `bottom`.\n */\n @Input('popoverPosition') position: 'top' | 'bottom' = 'bottom';\n /**\n * Sets the horizontal `Popover' alignment. Defaults to `left`.\n */\n @Input('popoverAlignment') alignment: 'left' | 'right' | 'center' = 'left';\n /**\n * Set to `true` to auto-wrap content in section\n */\n @Input('popoverSectioned') sectioned = false;\n\n constructor(protected popoverService: PopoverService, private elementRef: ElementRef) { }\n\n private show() {\n this.popoverRef = this.popoverService.open(\n {\n content: {\n body: this.body,\n sectioned: this.sectioned,\n },\n position: this.position,\n alignment: this.alignment,\n },\n this.elementRef\n );\n\n this.open = true;\n\n this.popoverRef.afterClosed().subscribe((result: any) => {\n this.open = false;\n });\n }\n\n @HostListener('click')\n onClick() {\n if (!this.open) {\n this.show();\n }\n }\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'suka-popover-section',\n template: `\n <ng-content></ng-content>\n `,\n})\nexport class PopoverSection {\n @HostBinding('class.popover__section') baseClass = true;\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'suka-popover-action-list',\n template: `\n <ng-content></ng-content>\n `,\n})\nexport class PopoverActionList {\n @HostBinding('class.popover__action-list') baseClass = true;\n}\n","import { Component, HostBinding, EventEmitter, Output, Input } from '@angular/core';\nimport { IconType } from '../icon/icon-types';\n\n@Component({\n selector: 'suka-popover-action-item',\n template: `\n <button type=\"button\" (click)=\"onClick($event)\">\n <div class=\"action-list__item__content\">\n <suka-icon *ngIf=\"icon\" [icon]=\"icon\" class=\"popover__icon\"></suka-icon>\n <ng-content></ng-content>\n </div>\n </button>\n `,\n})\nexport class PopoverActionItem {\n @HostBinding('class.popover__action-list__item') baseClass = true;\n @HostBinding('class.action-list__item--destructive') @Input() destructive = false;\n @Input() icon: IconType;\n\n @Output() selected = new EventEmitter();\n\n onClick($event) {\n this.selected.emit($event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { IconModule } from '../icon/icon.module';\n\nimport { PopoverContainer } from './popover-container.component';\nimport { Popover } from './popover.directive';\nimport { PopoverSection } from './popover-section.component';\nimport { PopoverActionList } from './popover-action-list.component';\nimport { PopoverActionItem } from './popover-action-item.component';\nimport { PopoverService } from './popover.service';\n\nexport { Popover } from './popover.directive';\nexport { PopoverContainer } from './popover-container.component';\nexport { PopoverSection } from './popover-section.component';\nexport { PopoverActionList } from './popover-action-list.component';\nexport { PopoverActionItem } from './popover-action-item.component';\n\n@NgModule({\n declarations: [\n PopoverContainer,\n PopoverSection,\n PopoverActionList,\n PopoverActionItem,\n Popover,\n ],\n exports: [\n PopoverContainer,\n PopoverSection,\n PopoverActionList,\n PopoverActionItem,\n Popover,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n IconModule,\n ],\n entryComponents: [\n PopoverContainer,\n ],\n providers: [\n PopoverService,\n ],\n})\nexport class PopoverModule { }\n","import {\n Component,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'suka-stack',\n template: `\n <div\n class=\"\n stack__wrapper\n stack--spacing-{{spacing}}\n stack--distribution-{{distribution}}\n stack--alignment-{{alignment}}\n \"\n [ngClass]=\"{\n 'stack--vertical': vertical,\n 'stack--no-wrap': !wrap\n }\"\n >\n <ng-content></ng-content>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class Stack {\n @HostBinding('class.stack') baseClass = true;\n\n /**\n * Make stack vertical (inverts axis of alignment and distribution inputs)\n */\n @HostBinding('class.stack--vertical') @Input() vertical = false;\n\n /**\n * Spacing between elements\n */\n @Input() spacing: 'tight' | 'loose' | 'default' | 'none' = 'default';\n\n /**\n * Horizontal alignment of elements (vertical alignment on vertical stack)\n */\n @Input() distribution: 'leading' | 'trailing' | 'equalSpacing' | 'center' | 'fill' | 'fillEvenly' = 'leading';\n\n /**\n * Vertical alignment of elements (horizontal alignment on vertical stack)\n */\n @Input() alignment: 'leading' | 'trailing' | 'center' | 'fill' | 'baseline' = 'leading';\n\n /**\n * Wrap stack elements to additional rows as needed on small screens.\n */\n @Input() wrap = true;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[sukaStackItem]'\n})\nexport class StackItem {\n @HostBinding('class.stack__item') baseClass = true;\n\n /**\n * Set to `true` to make the `StackItem` fill the remaining horizontal space on the stack.\n */\n @HostBinding('class.stack__item--fill') @Input() fill = false;\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Stack } from './stack.component';\nimport { StackItem } from './stack-item.directive';\n\n@NgModule({\n declarations: [\n Stack,\n StackItem,\n ],\n exports: [\n Stack,\n StackItem,\n ],\n imports: [\n CommonModule,\n ]\n})\nclass StackModule { }\n\nexport { Stack, StackItem, StackModule };\n","import {\n Component,\n HostBinding,\n} from '@angular/core';\n\n@Component({\n selector: 'suka-form-layout',\n template: `\n <div class=\"form-layout__wrapper\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class FormLayout {\n @HostBinding('class.form-layout') baseClass = true;\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { FormLayout } from './form-layout.component';\n\n@NgModule({\n declarations: [\n FormLayout,\n ],\n exports: [\n FormLayout,\n ],\n imports: [\n CommonModule,\n ]\n})\nclass FormLayoutModule { }\n\nexport { FormLayout, FormLayoutModule };\n","import { CDK_TABLE_TEMPLATE, CdkTable } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, HostBinding, Input } from '@angular/core';\n\n/**\n * Wrapper for the CdkTable with Suka design styles.\n */\n@Component({\n selector: 'suka-table, table[suka-table]',\n exportAs: 'sukaTable',\n template: CDK_TABLE_TEMPLATE,\n providers: [{ provide: CdkTable, useExisting: SukaTable }],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class SukaTable<T> extends CdkTable<T> {\n @HostBinding('class.suka-table') baseClass = true;\n /**\n * Set to `true` to make the table full width.\n */\n @HostBinding('class.suka-table--full-width') @Input() fullWidth = false;\n /**\n * Set to `true` to apply hover styles to the table rows.\n */\n @HostBinding('class.suka-table--hover') @Input() hover = false;\n /** Overrides the sticky CSS class set by the `CdkTable`. */\n protected stickyCssClass = 'suka-table-sticky';\n}\n","// tslint:disable: no-host-metadata-property directive-selector\nimport { Directive, ElementRef, Input } from '@angular/core';\nimport {\n CdkCell,\n CdkCellDef,\n CdkColumnDef, CdkFooterCell, CdkFooterCellDef,\n CdkHeaderCell,\n CdkHeaderCellDef,\n} from '@angular/cdk/table';\n\n/**\n * Cell definition for the suka-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\n@Directive({\n selector: '[sukaCellDef]',\n providers: [{ provide: CdkCellDef, useExisting: SukaCellDef }]\n})\nexport class SukaCellDef extends CdkCellDef { }\n\n/**\n * Header cell definition for the suka-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[sukaHeaderCellDef]',\n providers: [{ provide: CdkHeaderCellDef, useExisting: SukaHeaderCellDef }]\n})\nexport class SukaHeaderCellDef extends CdkHeaderCellDef { }\n\n/**\n * Footer cell definition for the suka-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\n@Directive({\n selector: '[sukaFooterCellDef]',\n providers: [{ provide: CdkFooterCellDef, useExisting: SukaFooterCellDef }]\n})\nexport class SukaFooterCellDef extends CdkFooterCellDef { }\n\n/**\n * Column definition for the suka-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[sukaColumnDef]',\n providers: [\n { provide: CdkColumnDef, useExisting: SukaColumnDef },\n { provide: 'SUKA_SORT_HEADER_COLUMN_DEF', useExisting: SukaColumnDef }\n ],\n})\nexport class SukaColumnDef extends CdkColumnDef {\n /** Unique name for this column. */\n @Input('sukaColumnDef') name: string;\n\n /** Whether this column should be sticky positioned at the start of the row */\n @Input() sticky: boolean;\n\n /** Whether this column should be sticky positioned on the end of the row */\n @Input() stickyEnd: boolean;\n}\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'suka-header-cell, th[suka-header-cell]',\n host: {\n class: 'suka-header-cell',\n role: 'columnheader',\n },\n})\nexport class SukaHeaderCell extends CdkHeaderCell {\n constructor(\n columnDef: CdkColumnDef,\n elementRef: ElementRef<HTMLElement>\n ) {\n\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(`suka-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n\n/** Footer cell template container that adds the right classes and role. */\n@Directive({\n selector: 'suka-footer-cell, td[suka-footer-cell]',\n host: {\n class: 'suka-footer-cell',\n role: 'gridcell',\n },\n})\nexport class SukaFooterCell extends CdkFooterCell {\n constructor(\n columnDef: CdkColumnDef,\n elementRef: ElementRef\n ) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(`suka-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'suka-cell, td[suka-cell]',\n host: {\n class: 'suka-cell',\n role: 'gridcell',\n },\n})\nexport class SukaCell extends CdkCell {\n constructor(\n columnDef: CdkColumnDef,\n elementRef: ElementRef<HTMLElement>\n ) {\n super(columnDef, elementRef);\n elementRef.nativeElement.classList.add(`suka-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n","// tslint:disable: no-inputs-metadata-property\n\nimport {\n CDK_ROW_TEMPLATE,\n CdkFooterRow,\n CdkFooterRowDef,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkRow,\n CdkRowDef\n} from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, Directive, ViewEncapsulation, HostBinding } from '@angular/core';\n\n/**\n * Header row definition for the suka-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\n@Directive({\n selector: '[sukaHeaderRowDef]',\n providers: [{ provide: CdkHeaderRowDef, useExisting: SukaHeaderRowDef }],\n inputs: ['columns: sukaHeaderRowDef', 'sticky: sukaHeaderRowDefSticky'],\n})\nexport class SukaHeaderRowDef extends CdkHeaderRowDef {\n}\n\n/**\n * Footer row definition for the suka-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\n@Directive({\n selector: '[sukaFooterRowDef]',\n providers: [{ provide: CdkFooterRowDef, useExisting: SukaFooterRowDef }],\n inputs: ['columns: sukaFooterRowDef', 'sticky: sukaFooterRowDefSticky'],\n})\nexport class SukaFooterRowDef extends CdkFooterRowDef {\n}\n\n/**\n * Data row definition for the suka-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\n@Directive({\n selector: '[sukaRowDef]',\n providers: [{ provide: CdkRowDef, useExisting: SukaRowDef }],\n inputs: ['columns: sukaRowDefColumns', 'when: sukaRowDefWhen'],\n})\nexport class SukaRowDef<T> extends CdkRowDef<T> {\n}\n\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'suka-header-row, tr[suka-header-row]',\n template: CDK_ROW_TEMPLATE,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'sukaHeaderRow',\n providers: [{ provide: CdkHeaderRow, useExisting: SukaHeaderRow }],\n})\nexport class SukaHeaderRow extends CdkHeaderRow {\n @HostBinding('class.suka-header-row') baseClass = true;\n @HostBinding('attr.role') role = 'row';\n}\n\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'suka-footer-row, tr[suka-footer-row]',\n template: CDK_ROW_TEMPLATE,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'sukaFooterRow',\n providers: [{ provide: CdkFooterRow, useExisting: SukaFooterRow }],\n})\nexport class SukaFooterRow extends CdkFooterRow {\n @HostBinding('class.suka-footer-row') baseClass = true;\n @HostBinding('attr.role') role = 'row';\n}\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n selector: 'suka-row, tr[suka-row]',\n template: CDK_ROW_TEMPLATE,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'sukaRow',\n providers: [{ provide: CdkRow, useExisting: SukaRow }],\n})\nexport class SukaRow extends CdkRow {\n @HostBinding('class.suka-row') baseClass = true;\n @HostBinding('attr.role') role = 'row';\n}\n","// tslint:disable: variable-name\n\nimport { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n HostBinding,\n} from '@angular/core';\nimport buildPaginationArray from './pagination-utils';\nimport { Observable, Subject } from 'rxjs';\n\n/** The default page size if there is no page size and there are no provided page size options. */\nconst DEFAULT_PAGE_SIZE = 50;\n\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n */\nexport class PageEvent {\n /** The current page index. */\n pageIndex: number;\n\n /**\n * Index of the page that was selected previously.\n */\n previousPageIndex: number;\n\n /** The current page size */\n pageSize: number;\n\n /** The current total number of items being paged */\n length: number;\n}\n\n\n/**\n * Component to provide navigation between paged information. Displays the size of the current\n * page, user-selectable options to change that size, what items are being shown, and\n * navigational button to go to the previous or next page.\n */\n@Component({\n selector: 'suka-pagination',\n exportAs: 'sukaPagination',\n template: `\n <div class=\"suka-pagination-outer-container\">\n <div class=\"suka-pagination-container\">\n <div class=\"suka-pagination-results\">\n Mostrando <span class=\"suka-pagination-result\">{{getRangeLabel(pageIndex, pageSize, length)}}</span>\n </div>\n\n <div class=\"suka-pagination-actions\">\n <button\n type=\"button\" class=\"suka-pagination-navigation-first\"\n (click)=\"firstPage()\"\n [disabled]=\"_previousButtonsDisabled()\"\n *ngIf=\"showFirstLastButtons\"\n sukaButton=\"plain\"\n size=\"sm\"\n >\n <suka-icon icon=\"chevrons-left\" class=\"suka-pagination-icon\"></suka-icon>\n </button>\n <button\n type=\"button\" class=\"suka-pagination-navigation-previous\"\n (click)=\"previousPage()\"\n [disabled]=\"_previousButtonsDisabled()\"\n sukaButton=\"plain\"\n size=\"sm\"\n >\n <suka-icon icon=\"chevron-left\" class=\"suka-pagination-icon\"></suka-icon>\n Anterior\n </button>\n <button\n *ngFor=\"let pageNumber of _pagesArray\"\n type=\"button\"\n class=\"suka-pagination-navigation-page\"\n (click)=\"goToPage(pageNumber)\"\n [disabled]=\"pageNumber === '...'\"\n sukaButton=\"plain\"\n size=\"sm\"\n [ngClass]=\"{\n 'suka-pagination-navigation-page--selected': pageNumber === pageIndex + 1\n }\"\n >\n {{pageNumber}}\n </button>\n <button\n type=\"button\"\n class=\"suka-pagination-navigation-next\"\n (click)=\"nextPage()\"\n [disabled]=\"_nextButtonsDisabled()\"\n sukaButton=\"plain\"\n size=\"sm\"\n >\n Siguiente\n <suka-icon icon=\"chevron-right\" class=\"suka-pagination-icon\"></suka-icon>\n </button>\n <button\n type=\"button\" class=\"suka-pagination-navigation-last\"\n (click)=\"lastPage()\"\n [disabled]=\"_nextButtonsDisabled()\"\n *ngIf=\"showFirstLastButtons\"\n sukaButton=\"plain\"\n size=\"sm\"\n >\n <suka-icon icon=\"chevrons-right\" class=\"suka-pagination-icon\"></suka-icon>\n </button>\n </div>\n </div>\n </div>\n\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class Pagination implements OnInit {\n private _initialized: boolean;\n initialized = new Subject();\n\n /**\n * Sets to `true` to disable pagination.\n */\n @Input() disabled = false;\n @HostBinding('class.suka-pagination') baseClass = true;\n\n /** The zero-based page index of the displayed list of items. Defaulted to 0. */\n @Input()\n get pageIndex(): number { return this._pageIndex; }\n set pageIndex(value: number) {\n this._pageIndex = Math.max(coerceNumberProperty(value), 0);\n this._changeDetectorRef.markForCheck();\n }\n\n private _pageIndex = 0;\n\n /** The length of the total number of items that are being paginated. Defaulted to 0. */\n @Input()\n get length(): number { return this._length; }\n set length(value: number) {\n this._length = coerceNumberProperty(value);\n this._changeDetectorRef.markForCheck();\n this._updateDisplayedPagesArray();\n }\n private _length = 0;\n\n /** Number of items to display on a page. By default set to 20. */\n @Input()\n get pageSize(): number { return this._pageSize; }\n set pageSize(value: number) {\n this._pageSize = Math.max(coerceNumberProperty(value), 0);\n this._updateDisplayedPageSizeOptions();\n this._updateDisplayedPagesArray();\n }\n private _pageSize: number;\n\n /** The set of provided page size options to display to the user. */\n @Input()\n get pageSizeOptions(): number[] { return this._pageSizeOptions; }\n set pageSizeOptions(value: number[]) {\n this._pageSizeOptions = (value || []).map(p => coerceNumberProperty(p));\n this._updateDisplayedPageSizeOptions();\n }\n private _pageSizeOptions: number[] = [];\n\n /** Whether to hide the page size selection UI from the user. */\n @Input()\n get hidePageSize(): boolean { return this._hidePageSize; }\n set hidePageSize(value: boolean) {\n this._hidePageSize = coerceBooleanProperty(value);\n }\n private _hidePageSize = false;\n\n\n /** Whether to show the first/last buttons UI to the user. */\n @Input()\n get showFirstLastButtons(): boolean { return this._showFirstLastButtons; }\n set showFirstLastButtons(value: boolean) {\n this._showFirstLastButtons = coerceBooleanProperty(value);\n }\n private _showFirstLastButtons = false;\n\n /** Event emitted when the pagination changes the page size or page index. */\n @Output() readonly page: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n /** Displayed set of page size options. Will be sorted and include current page size. */\n _displayedPageSizeOptions: number[];\n\n /** Displayed pages array */\n _pagesArray = [];\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) { }\n\n ngOnInit() {\n this._initialized = true;\n this.initialized.next(true);\n this._updateDisplayedPageSizeOptions();\n }\n\n /** Advances to the next page if it exists. */\n nextPage(): void {\n if (!this.hasNextPage()) { return; }\n\n const previousPageIndex = this.pageIndex;\n this.pageIndex++;\n this._updateDisplayedPagesArray();\n this._emitPageEvent(previousPageIndex);\n }\n\n /** Move back to the previous page if it exists. */\n previousPage(): void {\n if (!this.hasPreviousPage()) { return; }\n\n const previousPageIndex = this.pageIndex;\n this.pageIndex--;\n this._updateDisplayedPagesArray();\n this._emitPageEvent(previousPageIndex);\n }\n\n /** Move to the first page if not already there. */\n firstPage(): void {\n // hasPreviousPage being false implies at the start\n if (!this.hasPreviousPage()) { return; }\n\n const previousPageIndex = this.pageIndex;\n this.pageIndex = 0;\n this._updateDisplayedPagesArray();\n this._emitPageEvent(previousPageIndex);\n }\n\n /** Move to the last page if not already there. */\n lastPage(): void {\n // hasNextPage being false implies at the end\n if (!this.hasNextPage()) { return; }\n\n const previousPageIndex = this.pageIndex;\n this.pageIndex = this.getNumberOfPages() - 1;\n this._updateDisplayedPagesArray();\n this._emitPageEvent(previousPageIndex);\n }\n\n /**\n * Move to an specific page.\n */\n goToPage(page: number): void {\n const previousPageIndex = this.pageIndex;\n\n this.pageIndex = page - 1;\n this._updateDisplayedPagesArray();\n this._emitPageEvent(previousPageIndex);\n }\n\n /** Whether there is a previous page. */\n hasPreviousPage(): boolean {\n return this.pageIndex >= 1 && this.pageSize !== 0;\n }\n\n /** Whether there is a next page. */\n hasNextPage(): boolean {\n const maxPageIndex = this.getNumberOfPages() - 1;\n return this.pageIndex < maxPageIndex && this.pageSize !== 0;\n }\n\n /** Calculate the number of pages */\n getNumberOfPages(): number {\n if (!this.pageSize) {\n return 0;\n }\n\n return Math.ceil(this.length / this.pageSize);\n }\n\n /** Calculate the page range */\n getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) { return `0 de ${length}`; }\n\n length = Math.max(length, 0);\n\n const startIndex = page * pageSize;\n\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n const endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n }\n\n\n /**\n * Changes the page size so that the first item displayed on the page will still be\n * displayed using the new page size.\n *\n * For example, if the page size is 10 and on the second page (items indexed 10-19) then\n * switching so that the page size is 5 will set the third page as the current page so\n * that the 10th item will still be displayed.\n */\n _changePageSize(pageSize: number) {\n // Current page needs to be updated to reflect the new page size. Navigate to the page\n // containing the previous page's first item.\n const startIndex = this.pageIndex * this.pageSize;\n const previousPageIndex = this.pageIndex;\n\n this.pageIndex = Math.floor(startIndex / pageSize) || 0;\n this.pageSize = pageSize;\n this._emitPageEvent(previousPageIndex);\n }\n\n /** Checks whether the buttons for going forwards should be disabled. */\n _nextButtonsDisabled() {\n return this.disabled || !this.hasNextPage();\n }\n\n /** Checks whether the buttons for going backwards should be disabled. */\n _previousButtonsDisabled() {\n return this.disabled || !this.hasPreviousPage();\n }\n\n /**\n * Updates the list of page size options to display to the user. Includes making sure that\n * the page size is an option and that the list is sorted.\n */\n private _updateDisplayedPageSizeOptions() {\n if (!this._initialized) { return; }\n\n // If no page size is provided, use the first page size option or the default page size.\n if (!this.pageSize) {\n this._pageSize = this.pageSizeOptions.length !== 0 ?\n this.pageSizeOptions[0] :\n DEFAULT_PAGE_SIZE;\n }\n\n this._displayedPageSizeOptions = this.pageSizeOptions.slice();\n\n if (this._displayedPageSizeOptions.indexOf(this.pageSize) === -1) {\n this._displayedPageSizeOptions.push(this.pageSize);\n }\n\n // Sort the numbers using a number-specific sort function.\n this._displayedPageSizeOptions.sort((a, b) => a - b);\n this._changeDetectorRef.markForCheck();\n }\n\n private _updateDisplayedPagesArray() {\n this._pagesArray = buildPaginationArray(this.getNumberOfPages(), this.pageIndex + 1, 3);\n }\n\n /** Emits an event notifying that a change of the pagination's properties has been triggered. */\n private _emitPageEvent(previousPageIndex: number) {\n this.page.emit({\n previousPageIndex,\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n length: this.length\n });\n }\n}\n","export default function buildPaginationArray(pageNumber, currentPage, spacing) {\n const pageArray = [];\n\n const startingPosition = Math.max(currentPage - spacing, 1);\n const endPosition = Math.min(currentPage + spacing, pageNumber);\n\n for (let i = startingPosition; i <= endPosition; i++) {\n pageArray.push(i);\n }\n\n if (currentPage - spacing > 1) {\n appendFirstPages(pageArray);\n }\n\n if (currentPage + spacing < pageNumber) {\n appendLastPages(pageArray, pageNumber);\n }\n\n return pageArray;\n}\n\nfunction appendFirstPages(array) {\n const initialValue = array[0];\n\n if (initialValue - 1 > 1) {\n array.unshift('...');\n }\n\n array.unshift(1);\n}\n\nfunction appendLastPages(array, lastPageNumber) {\n if (array[array.length - 1] + 1 < lastPageNumber) {\n array.push('...');\n }\n\n array.push(lastPageNumber);\n}\n","// modules\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button/button.module';\nimport { IconModule } from '../icon/icon.module';\n\n// imports\nimport { Pagination, PageEvent } from './pagination.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n ],\n exports: [\n Pagination\n ],\n declarations: [\n Pagination\n ],\n})\nclass PaginationModule { }\n\nexport { Pagination, PageEvent, PaginationModule };\n","// tslint:disable: variable-name\n\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { DataSource } from '@angular/cdk/table';\nimport {\n BehaviorSubject,\n combineLatest,\n merge,\n Observable,\n of as observableOf,\n Subscription,\n Subject,\n} from 'rxjs';\nimport { Pagination, PageEvent } from '../pagination/pagination.module';\n// import { SukaSort, Sort } from '@angular/material/sort';\nimport { map } from 'rxjs/operators';\n\n/**\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\n * flaky browser support and the value not being defined in Closure's typings.\n */\nconst MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using SukaSort), and pagination (using SukaPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterTermAccessor,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n */\nexport class SukaTableDataSource<T> extends DataSource<T> {\n /** Stream that emits when a new data array is set on the data source. */\n private readonly _data: BehaviorSubject<T[]>;\n\n /** Stream emitting render data to the table (depends on ordered data changes). */\n private readonly _renderData = new BehaviorSubject<T[]>([]);\n\n /** Stream that emits when a new filter string is set on the data source. */\n private readonly _filter = new BehaviorSubject<string>('');\n\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\n private readonly _internalPageChanges = new Subject<void>();\n\n /**\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\n * as filtering, sorting, pagination, or base data changes.\n */\n _renderChangesSubscription = Subscription.EMPTY;\n\n /**\n * The filtered set of data that has been matched by the filter string, or all the data if there\n * is no filter. Useful for knowing the set of data the table represents.\n * For example, a 'selectAll()' function would likely want to select the set of filtered data\n * shown to the user rather than all the data.\n */\n filteredData: T[];\n\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() { return this._data.value; }\n set data(data: T[]) { this._data.next(data); }\n\n /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n */\n get filter(): string { return this._filter.value; }\n set filter(filter: string) { this._filter.next(filter); }\n\n /**\n * Instance of the SukaSort directive used by the table to control its sorting. Sort changes\n * emitted by the SukaSort will trigger an update to the table's rendered data.\n */\n // get sort(): SukaSort | null { return this._sort; }\n // set sort(sort: SukaSort | null) {\n // this._sort = sort;\n // this._updateChangeSubscription();\n // }\n // private _sort: SukaSort | null;\n\n /**\n * Instance of the Pagination component used by the table to control what page of the data is\n * displayed. Page changes emitted by the Pagination will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the pagination's properties to calculate which page of data\n * should be displayed. If the pagination receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the pagination's view has been\n * initialized before assigning it to this data source.\n */\n get paginator(): Pagination | null { return this._paginator; }\n set paginator(paginator: Pagination | null) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n private _paginator: Pagination | null;\n\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the sort header IDs (which defaults to the column name)\n * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n * May be set to a custom function for different behavior.\n * @param data Data object that is being accessed.\n * @param sortHeaderId The name of the column that represents the data.\n */\n // sortingDataAccessor: ((data: T, sortHeaderId: string) => string | number) =\n // (data: T, sortHeaderId: string): string | number => {\n // const value = (data as { [key: string]: any })[sortHeaderId];\n\n // if (_isNumberValue(value)) {\n // const numberValue = Number(value);\n\n // // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we\n // // leave them as strings. For more info: https://goo.gl/y5vbSg\n // return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\n // }\n\n // return value;\n // }\n\n /**\n * Gets a sorted copy of the data array based on the state of the SukaSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from SukaSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n * of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected SukaSort that holds the current sort state.\n */\n // sortData: ((data: T[], sort: SukaSort) => T[]) = (data: T[], sort: SukaSort): T[] => {\n // const active = sort.active;\n // const direction = sort.direction;\n // if (!active || direction == '') { return data; }\n\n // return data.sort((a, b) => {\n // let valueA = this.sortingDataAccessor(a, active);\n // let valueB = this.sortingDataAccessor(b, active);\n\n // // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\n // // one value exists while the other doesn't. In this case, existing value should come last.\n // // This avoids inconsistent results when comparing values to undefined/null.\n // // If neither value exists, return 0 (equal).\n // let comparatorResult = 0;\n // if (valueA != null && valueB != null) {\n // // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\n // if (valueA > valueB) {\n // comparatorResult = 1;\n // } else if (valueA < valueB) {\n // comparatorResult = -1;\n // }\n // } else if (valueA != null) {\n // comparatorResult = 1;\n // } else if (valueB != null) {\n // comparatorResult = -1;\n // }\n\n // return comparatorResult * (direction == 'asc' ? 1 : -1);\n // });\n // }\n\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has\n * at least one occurrence in that string. By default, the filter string has its whitespace\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n * filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches against the data\n */\n filterPredicate: ((data: T, filter: string) => boolean) = (data: T, filter: string): boolean => {\n // Transform the data into a lowercase string of all property values.\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n // Use an obscure Unicode character to delimit the words in the concatenated string.\n // This avoids matches where the values of two columns combined will match the user's query\n // (e.g. `Flute` and `Stop` will match `Test`). The character is intended to be something\n // that has a very low chance of being typed in by somebody in a text field. This one in\n // particular is \"White up-pointing triangle with dot\" from\n // https://en.wikipedia.org/wiki/List_of_Unicode_characters\n return currentTerm + (data as { [key: string]: any })[key] + '◬';\n }, '').toLowerCase();\n\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n\n return dataStr.indexOf(transformedFilter) !== -1;\n }\n\n constructor(initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n this._updateChangeSubscription();\n }\n\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n */\n _updateChangeSubscription() {\n // Sorting and/or pagination should be watched if SukaSort and/or SukaPaginator are provided.\n // The events should emit whenever the component emits a change or initializes, or if no\n // component is provided, a stream with just a null event should be provided.\n // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the\n // pipeline can progress to the next step. Note that the value from these streams are not used,\n // they purely act as a signal to progress in the pipeline.\n // const sortChange: Observable<Sort | null | void> = this._sort ?\n // merge(this._sort.sortChange, this._sort.initialized) as Observable<Sort | void> :\n // observableOf(null);\n const pageChange: Observable<PageEvent | null | void> = this._paginator ?\n merge(\n this._paginator.page,\n this._internalPageChanges,\n this._paginator.initialized\n ) as Observable<PageEvent | void> :\n observableOf(null);\n const dataStream = this._data;\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter])\n .pipe(map(([data]) => this._filterData(data)));\n\n // Watch for filtered data or sort changes to provide an ordered set of data.\n // const orderedData = combineLatest([filteredData, sortChange])\n // .pipe(map(([data]) => this._orderData(data)));\n\n // Watch for ordered data or page changes to provide a paged set of data.\n // const paginatedData = combineLatest([orderedData, pageChange])\n // .pipe(map(([data]) => this._pageData(data)));\n const paginatedData = combineLatest([filteredData, pageChange])\n .pipe(map(([data]) => this._pageData(data)));\n\n // Watched for paged data changes and send the result to the table to render.\n this._renderChangesSubscription.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\n }\n\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterTermAccessor function. If no filter is set, returns the data array\n * as provided.\n */\n _filterData(data: T[]) {\n // If there is a filter string, filter out data that does not contain it.\n // Each data object is converted to a string using the function defined by filterTermAccessor.\n // May be overridden for customization.\n this.filteredData =\n !this.filter ? data : data.filter(obj => this.filterPredicate(obj, this.filter));\n\n if (this.paginator) { this._updatePaginator(this.filteredData.length); }\n\n return this.filteredData;\n }\n\n /**\n * Returns a sorted copy of the data if SukaSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n */\n // _orderData(data: T[]): T[] {\n // // If there is no active sort or direction, return the data without trying to sort.\n // if (!this.sort) { return data; }\n\n // return this.sortData(data.slice(), this.sort);\n // }\n\n /**\n * Returns a paged slice of the provided data array according to the provided SukaPaginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n */\n _pageData(data: T[]): T[] {\n if (!this.paginator) { return data; }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n }\n\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n */\n _updatePaginator(filteredDataLength: number) {\n Promise.resolve().then(() => {\n const paginator = this.paginator;\n\n if (!paginator) { return; }\n\n paginator.length = filteredDataLength;\n\n // If the page index is set beyond the page, reduce it to the last page.\n if (paginator.pageIndex > 0) {\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n\n // Since the paginator only emits after user-generated changes,\n // we need our own stream so we know to should re-render the data.\n this._internalPageChanges.next();\n }\n }\n });\n }\n\n /**\n * Used by the SukaTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() { return this._renderData; }\n\n /**\n * Used by the SukaTable. Called when it is destroyed. No-op.\n * @docs-private\n */\n disconnect() { }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'suka-table-skeleton, table[suka-table-skeleton]',\n exportAs: 'sukaTableSkeleton',\n template: `\n <tr class=\"suka-header-row\">\n <th *ngFor=\"let column of columns\" class=\"suka-header-cell\"><div class=\"skeleton__text\"></div></th>\n </tr>\n <tr class=\"suka-row\" *ngFor=\"let row of rows\">\n <td *ngFor=\"let column of columns\" class=\"suka-cell\"><div class=\"skeleton__text\"></div></td>\n </tr>\n `,\n})\nexport class SukaTableSkeleton {\n @HostBinding('class.suka-table') baseClass = true;\n @HostBinding('class.suka-table--full-width') @Input() fullWidth = false;\n\n @Input() skeleton = false;\n\n @Input() columns = [];\n\n @Input() rowNumber = 5;\n\n rows = Array(this.rowNumber).fill(0).map((x, i) => i);\n}\n","import { NgModule } from '@angular/core';\nimport { CdkTableModule } from '@angular/cdk/table';\n\nimport { SukaTable } from './table.component';\nimport {\n SukaCell,\n SukaCellDef,\n SukaColumnDef,\n SukaFooterCell,\n SukaFooterCellDef,\n SukaHeaderCell,\n SukaHeaderCellDef\n} from './cell';\nimport {\n SukaFooterRow,\n SukaFooterRowDef,\n SukaHeaderRow,\n SukaHeaderRowDef,\n SukaRow,\n SukaRowDef\n} from './row';\nimport { CommonModule } from '@angular/common';\nimport { PaginationModule } from '../pagination/pagination.module';\nimport { SukaTableDataSource } from './table-data-source';\nimport { SukaTableSkeleton } from './table-skeleton.component';\n\nconst EXPORTED_DECLARATIONS = [\n // Table\n SukaTable,\n SukaTableSkeleton,\n\n // Template defs\n SukaHeaderCellDef,\n SukaHeaderRowDef,\n SukaColumnDef,\n SukaCellDef,\n SukaRowDef,\n SukaFooterCellDef,\n SukaFooterRowDef,\n\n // Cell directives\n SukaHeaderCell,\n SukaCell,\n SukaFooterCell,\n\n // Row directives\n SukaHeaderRow,\n SukaRow,\n SukaFooterRow,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n CdkTableModule,\n PaginationModule,\n ],\n exports: [...EXPORTED_DECLARATIONS],\n declarations: [EXPORTED_DECLARATIONS],\n})\nclass TableModule { }\n\nexport {\n // Module\n TableModule,\n\n // Table\n SukaTable,\n\n // Template defs\n SukaHeaderCellDef,\n SukaHeaderRowDef,\n SukaColumnDef,\n SukaCellDef,\n SukaRowDef,\n SukaFooterCellDef,\n SukaFooterRowDef,\n\n // Cell directives\n SukaHeaderCell,\n SukaCell,\n SukaFooterCell,\n\n // Row directives\n SukaHeaderRow,\n SukaRow,\n SukaFooterRow,\n\n // Datasource\n SukaTableDataSource,\n};\n","import {\n Component,\n HostBinding,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'suka-navigation',\n template: `\n <nav role=\"navigation__container\">\n <ul class=\"navigation__items\">\n <ng-content></ng-content>\n </ul>\n </nav>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class Navigation {\n @HostBinding('attr.role') role = 'complementary';\n @HostBinding('class.navigation') hostClass = true;\n /**\n * Controls the expanded (`true`) or collapsed (`false`) state when on a small screen.\n */\n @HostBinding('class.navigation--expanded') @Input() expanded = true;\n /**\n * Controls the hidden (`true`) or visible (`false`) state\n */\n @HostBinding('class.navigation--hidden') @Input() hidden = false;\n\n /**\n * Toggles the `Navigation` expanded state.\n */\n toggle() {\n this.expanded = !this.expanded;\n }\n}\n","import {\n Component,\n Input,\n Optional,\n Output,\n EventEmitter,\n OnDestroy\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router, NavigationEnd, RouterEvent } from '@angular/router';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'suka-navigation-item',\n template: `\n <li [ngClass]=\"{\n 'navigation__item': !isSubMenu,\n 'navigation__menu-item': isSubMenu\n }\"\n [attr.role]=\"(isSubMenu ? 'none' : null)\">\n <a\n class=\"navigation__link\"\n [href]=\"href\"\n [attr.role]=\"(isSubMenu ? 'menuitem' : null)\"\n [attr.aria-current]=\"(active ? 'page' : null)\"\n (click)=\"navigate($event)\">\n <div *ngIf=\"!isSubMenu\" class=\"navigation__icon\">\n <ng-content select=\"suka-icon\"></ng-content>\n </div>\n <span class=\"navigation__link-text\">\n <ng-content></ng-content>\n </span>\n </a>\n </li>\n `\n})\nexport class NavigationItem implements OnDestroy {\n private subscription: Subscription;\n /**\n * Link for the item. NOTE: *do not* pass unsafe or untrusted values, this has the potential to open you up to XSS attacks\n */\n @Input() set href(v: string) {\n this._href = v;\n }\n\n get href() {\n return this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n }\n\n /**\n * Toggles the active (current page) state for the link.\n */\n @Input() active = false;\n\n /**\n * Array of commands to send to the router when the link is activated\n * See: https://angular.io/api/router/Router#navigate\n */\n @Input() route: any[];\n\n /**\n * Router options. Used in conjunction with `route`\n * See: https://angular.io/api/router/Router#navigate\n */\n @Input() routeExtras: any;\n\n /**\n * Emits the navigation status promise when the link is activated\n */\n @Output() navigation = new EventEmitter<Promise<boolean>>();\n\n isSubMenu = false;\n\n protected _href = 'javascript:void(0)';\n\n constructor(protected domSanitizer: DomSanitizer, @Optional() protected router: Router) {\n if (router && this.route) {\n this.subscription = router.events.subscribe((s: RouterEvent) => {\n if (s instanceof NavigationEnd) {\n this.update();\n }\n });\n }\n }\n\n navigate(event): void {\n if (this.router && this.route) {\n event.preventDefault();\n const status = this.router.navigate(this.route, this.routeExtras);\n this.navigation.emit(status);\n }\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private isActive(): boolean {\n if (this.router && this.route) {\n const itemUrl = this.router.createUrlTree(this.route, this.routeExtras);\n return this.router.isActive(itemUrl, true);\n }\n\n return false;\n }\n\n private update(): void {\n if (this.isActive()) {\n this.active = true;\n } else {\n this.active = false;\n }\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ElementRef\n} from '@angular/core';\nimport { NavigationItem } from './navigation-item.component';\n\n/**\n * `SideNavMenu` provides a method to group `SideNavItem`s under a common heading.\n */\n@Component({\n selector: 'suka-navigation-menu',\n template: `\n <li class=\"navigation__item navigation__item--icon\">\n <button\n (click)=\"toggle()\"\n class=\"navigation__sub-menu\"\n aria-haspopup=\"true\"\n [attr.aria-expanded]=\"expanded\"\n type=\"button\">\n <div class=\"navigation__icon\">\n <ng-content select=\"suka-icon\"></ng-content>\n </div>\n <span class=\"navigation__sub-menu-title\">{{title}}</span>\n <suka-icon icon=\"chevron-down\" class=\"navigation__sub-menu-icon\"></suka-icon>\n </button>\n <ul class=\"navigation__menu\" role=\"menu\" [ngStyle]=\"{'max-height': expanded ? childrenHeight + 'px' : '0px'}\">\n <ng-content></ng-content>\n </ul>\n </li>\n `\n})\nexport class NavigationMenu implements AfterContentInit {\n /**\n * Heading for the gorup\n */\n @Input() title: string;\n /**\n * Controls the visibility of the child `SideNavItem`s\n */\n @Input() expanded = false;\n\n @ContentChildren(NavigationItem) navigationItems: QueryList<NavigationItem>;\n @ContentChildren(NavigationItem, { read: ElementRef }) navigationNativeItems: QueryList<ElementRef>;\n\n childrenHeight = 0;\n\n ngAfterContentInit() {\n setTimeout(() => {\n this.navigationItems.forEach(item => {\n item.isSubMenu = true;\n });\n });\n\n setTimeout(() => {\n this.navigationNativeItems.forEach(item => {\n item.nativeElement.children.forEach(children => {\n this.childrenHeight += children.offsetHeight;\n });\n });\n });\n }\n\n toggle() {\n this.expanded = !this.expanded;\n }\n}\n","import {\n Component,\n HostBinding,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'suka-mobile-navigation',\n template: `\n <button class=\"nav-toggle\" (click)=\"toggle()\"><suka-icon icon=\"menu\"></suka-icon> Navegación</button>\n <div class=\"backdrop--dark\"></div>\n <div class=\"mobile-navigation__nav-wrapper\">\n <div class=\"mobile-nav-trigger\" (click)=\"toggle()\"></div>\n <div class=\"mobile-nav\">\n <div class=\"mobile-nav__header\">\n Navegación\n <button sukaButton=\"plain\" (click)=\"toggle()\" size=\"sm\"><suka-icon icon=\"x\"></suka-icon></button>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class MobileNavigation {\n @HostBinding('attr.role') role = 'complementary';\n @HostBinding('class.mobile-navigation') hostClass = true;\n /**\n * Controls the expanded (`true`) or collapsed (`false`) state when on a small screen.\n */\n @HostBinding('class.mobile-navigation--expanded') @Input() expanded = false;\n /**\n * Controls the hidden (`true`) or visible (`false`) state\n */\n @HostBinding('class.mobile-navigation--hidden') @Input() hidden = false;\n\n constructor() { }\n\n toggle() {\n this.expanded = !this.expanded;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\nimport { ButtonModule } from '../button/button.module';\n\nimport { Navigation } from './navigation.component';\nimport { NavigationItem } from './navigation-item.component';\nimport { NavigationMenu } from './navigation-menu.component';\nimport { MobileNavigation } from './mobile-navigation.component';\n\nexport {\n Navigation,\n NavigationItem,\n NavigationMenu,\n MobileNavigation,\n};\n\n@NgModule({\n declarations: [\n Navigation,\n NavigationItem,\n NavigationMenu,\n MobileNavigation,\n ],\n imports: [\n CommonModule,\n IconModule,\n ButtonModule,\n ],\n exports: [\n Navigation,\n NavigationItem,\n NavigationMenu,\n MobileNavigation,\n ]\n})\nexport class NavigationModule { }\n","import {\n Component,\n Input,\n HostBinding\n} from '@angular/core';\n\nexport type BadgeType = 'default' | 'info' | 'success' | 'attention' | 'alert' | 'disabled';\n\n@Component({\n selector: 'suka-badge',\n template: `<ng-content></ng-content>`\n})\nexport class Badge {\n /**\n * Sets the badge type. Can be `default`, `info`, `success`, `attention`, `alert` or `disabled`. Defaults to `default`.\n */\n @Input() type: BadgeType = 'default';\n\n /**\n * Badge size. Defaults to `md`.\n */\n @Input() size: 'sm' | 'md' = 'md';\n\n @Input() class = '';\n\n @HostBinding('attr.class') get attrClass() {\n return `badge badge--${this.type} badge--${this.size} ${this.class}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Badge } from './badge.component';\n\nexport * from './badge.component';\n\n@NgModule({\n declarations: [\n Badge\n ],\n exports: [\n Badge\n ],\n imports: [\n CommonModule\n ]\n})\nexport class BadgeModule {}\n","import {\n Component,\n Input,\n Optional,\n Output,\n EventEmitter,\n TemplateRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'suka-topbar',\n template: `\n <header\n class=\"topbar\"\n role=\"banner\"\n [attr.aria-label]=\"brand + ' ' + productName\">\n\n <div class=\"container\" *ngIf=\"insideContainer else elseTpl\">\n <ng-container *ngTemplateOutlet=\"elseTpl\"></ng-container>\n </div>\n\n <ng-template #elseTpl>\n <ng-template\n *ngIf=\"isTemplate(brand)\"\n [ngTemplateOutlet]=\"brand\">\n </ng-template>\n <a\n *ngIf=\"!isTemplate(brand)\"\n class=\"topbar__name\"\n [href]=\"href\"\n (click)=\"navigate($event)\">\n <img *ngIf=\"logoSrc\" [src]=\"logoSrc\" class=\"topbar__logo\" [attr.alt]=\"brand\" />\n <span *ngIf=\"!logoSrc\" class=\"topbar__name--prefix\">{{brand}}</span>\n <span *ngIf=\"productName\" class=\"topbar__name--suffix\">{{productName}}</span>\n </a>\n <ng-content></ng-content>\n </ng-template>\n </header>\n `\n})\nexport class Topbar {\n /**\n * Put topbar contents inside a container. Defaults to `false`\n */\n @Input() insideContainer = false;\n /**\n * Label that shows to the right of the `brand`.\n */\n @Input() productName: string;\n /**\n * Source for the header logo.\n */\n @Input() logoSrc: string;\n /**\n * Top level branding. Defaults to \"Kushki\"\n */\n @Input() brand: string | TemplateRef<any> = 'Kushki';\n /**\n * Optional link for the header\n */\n @Input() set href(v: string) {\n this._href = v;\n }\n\n get href() {\n return this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n }\n /**\n * Array of commands to send to the router when the link is activated\n * See: https://angular.io/api/router/Router#navigate\n */\n @Input() route: any[];\n\n /**\n * Router options. Used in conjunction with `route`\n * See: https://angular.io/api/router/Router#navigate\n */\n @Input() routeExtras: any;\n\n /**\n * Emits the navigation status promise when the link is activated\n */\n @Output() navigation = new EventEmitter<Promise<boolean>>();\n\n protected _href = 'javascript:void(0)';\n\n constructor(\n protected domSanitizer: DomSanitizer,\n @Optional() protected router: Router\n ) { }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n\n navigate(event) {\n if (this.router && this.route) {\n event.preventDefault();\n const status = this.router.navigate(this.route, this.routeExtras);\n this.navigation.emit(status);\n }\n }\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'suka-topbar-global',\n template: `\n <ng-content></ng-content>\n `\n})\nexport class TopbarGlobal {\n @HostBinding('class.topbar__global') hostClass = true;\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'suka-topbar-navigation',\n template: `\n <nav class=\"topbar__nav\" [attr.aria-label]=\"ariaLabel\">\n <ul class=\"topbar__menu-bar\" role=\"menubar\">\n <ng-content></ng-content>\n </ul>\n </nav>\n `\n})\nexport class TopbarNavigation {\n @Input() ariaLabel: string;\n}\n","import {\n Component,\n Input,\n Optional,\n EventEmitter,\n Output\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { IconType } from '../icon/icon-types';\n\n@Component({\n selector: 'suka-topbar-item',\n template: `\n <li style=\"height: 100%\">\n <a\n class=\"topbar__menu-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [href]=\"href\"\n (click)=\"navigate($event)\">\n <suka-icon *ngIf=\"icon\" [icon]=\"icon\" class=\"topbar__menu-item__icon\"></suka-icon>\n <ng-content></ng-content>\n </a>\n </li>\n `\n})\nexport class TopbarItem {\n @Input() set href(v: string) {\n this._href = v;\n }\n\n get href() {\n return this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n }\n\n /**\n * Array of commands to send to the router when the link is activated\n * See: https://angular.io/api/router/Router#navigate\n */\n @Input() route: any[];\n\n /**\n * Router options. Used in conjunction with `route`\n * See: https://angular.io/api/router/Router#navigate\n */\n @Input() routeExtras: any;\n\n /**\n * Emits the navigation status promise when the link is activated\n */\n @Output() navigation = new EventEmitter<Promise<boolean>>();\n\n /**\n * Icon for topbar item.\n */\n @Input() icon: IconType;\n\n protected _href = 'javascript:void(0)';\n\n constructor(protected domSanitizer: DomSanitizer, @Optional() protected router: Router) { }\n\n navigate(event) {\n if (this.router && this.route) {\n event.preventDefault();\n const status = this.router.navigate(this.route, this.routeExtras);\n this.navigation.emit(status);\n }\n }\n}\n","import {\n Component,\n Input,\n HostListener,\n ElementRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n\n@Component({\n selector: 'suka-topbar-menu',\n template: `\n <li\n class=\"topbar__sub-menu\"\n style=\"height: 100%\"\n >\n <a\n class=\"topbar__menu-item topbar__menu-title\"\n [href]=\"href\"\n role=\"menuitem\"\n tabindex=\"0\"\n aria-haspopup=\"true\"\n [attr.aria-expanded]=\"expanded\">\n <ng-content></ng-content>\n <suka-icon icon=\"chevron-down\" class=\"topbar__menu-arrow\" aria-hidden=\"true\"></suka-icon>\n </a>\n <ul class=\"topbar__menu\" role=\"menu\">\n <ng-content select=\"suka-topbar-item\"></ng-content>\n </ul>\n </li>\n `\n})\nexport class TopbarMenu {\n @Input() set href(v: string) {\n this._href = v;\n }\n\n get href() {\n return this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n }\n\n @Input() trigger: 'click' | 'mouseover' = 'click';\n\n public expanded = false;\n\n protected _href = 'javascript:void(0)';\n\n constructor(protected domSanitizer: DomSanitizer, protected elementRef: ElementRef) { }\n\n @HostListener('click')\n onClick() {\n if (this.trigger === 'click') {\n this.expanded = !this.expanded;\n }\n }\n\n @HostListener('mouseover')\n onMouseOver() {\n if (this.trigger === 'mouseover') {\n this.expanded = true;\n }\n }\n\n @HostListener('mouseout')\n onMouseOut() {\n if (this.trigger === 'mouseover') {\n this.expanded = false;\n }\n }\n\n @HostListener('focusout', ['$event'])\n onFocusOut(event) {\n if (!this.elementRef.nativeElement.contains(event.relatedTarget)) {\n this.expanded = false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\nimport { Topbar } from './topbar.component';\nimport { TopbarGlobal } from './topbar-global.component';\nimport { TopbarNavigation } from './topbar-navigation.component';\nimport { TopbarItem } from './topbar-item.component';\nimport { TopbarMenu } from './topbar-menu.component';\n\n@NgModule({\n declarations: [\n Topbar,\n TopbarGlobal,\n TopbarNavigation,\n TopbarItem,\n TopbarMenu,\n ],\n imports: [\n CommonModule,\n IconModule,\n ],\n exports: [\n Topbar,\n TopbarGlobal,\n TopbarNavigation,\n TopbarItem,\n TopbarMenu,\n ]\n})\nclass TopbarModule { }\n\nexport {\n TopbarModule,\n Topbar,\n TopbarGlobal,\n TopbarNavigation,\n TopbarItem,\n TopbarMenu,\n};\n","import { Component, HostBinding } from '@angular/core';\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\n\n@Component({\n selector: 'suka-frame',\n template: `\n <div class=\"frame__header\">\n <ng-content select=\"suka-topbar\"></ng-content>\n </div>\n\n <ng-template #navigationTemplate>\n <ng-content select=\"suka-navigation\"></ng-content>\n </ng-template>\n\n <div class=\"frame__nav\" *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"navigationTemplate\"></ng-container>\n </div>\n\n <div class=\"frame__main\">\n <ng-content select=\"suka-page\"></ng-content>\n </div>\n\n <div class=\"frame__mobile-nav\" *ngIf=\"mobile\">\n <suka-mobile-navigation>\n <ng-container *ngTemplateOutlet=\"navigationTemplate\"></ng-container>\n </suka-mobile-navigation>\n </div>\n\n <ng-content></ng-content>\n `\n})\nexport class Frame {\n @HostBinding('class.frame') baseClass = true;\n @HostBinding('class.frame--mobile') mobile = false;\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver.observe('(max-width: 768px)').subscribe(result => {\n if (result.matches) {\n this.activateHandsetLayout();\n } else {\n this.activateDesktopLayout();\n }\n });\n }\n\n /**\n * Activates handset layout\n */\n activateHandsetLayout() {\n this.mobile = true;\n }\n\n /**\n * Activates desktop layout\n */\n activateDesktopLayout() {\n this.mobile = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Frame } from './frame.component';\nimport { NavigationModule } from '../navigation/navigation.module';\nimport { LayoutModule } from '@angular/cdk/layout';\n\n@NgModule({\n declarations: [\n Frame,\n ],\n exports: [\n Frame,\n ],\n imports: [\n CommonModule,\n LayoutModule,\n NavigationModule,\n ]\n})\nclass FrameModule { }\n\nexport {\n FrameModule,\n Frame\n};\n","import { Component, OnInit, ViewEncapsulation, Optional } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { IBreadcrumb } from './breadcrumb.interface';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'suka-breadcrumb',\n template: `\n <ol class=\"breadcrumb\" *ngIf=\"router\">\n <li\n *ngFor=\"let breadcrumb of breadcrumbs$ | async; last as isLast;\"\n class=\"breadcrumb-item\"\n [ngClass]=\"{'active': isLast}\" aria-current=\"page\"\n >\n <a\n *ngIf=\"!isLast; else lastRoute\"\n [routerLink]=\"[breadcrumb.url]\"\n routerLinkActive=\"active\"\n >\n <suka-icon icon=\"home\" *ngIf=\"breadcrumb.label === 'Inicio'\"></suka-icon> {{ breadcrumb.label }}\n <suka-icon icon=\"chevron-right\"></suka-icon>\n </a>\n <ng-template #lastRoute>\n <suka-icon icon=\"home\" *ngIf=\"breadcrumb.label === 'Inicio'\"></suka-icon> {{ breadcrumb.label }}\n </ng-template>\n </li>\n </ol>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class Breadcrumb implements OnInit {\n /**\n * @ignore\n */\n breadcrumbs$: Observable<IBreadcrumb[]>;\n\n // Build your breadcrumb starting with the root route of your current activated route\n\n constructor(\n @Optional() private activatedRoute: ActivatedRoute,\n @Optional() public router: Router,\n ) { }\n\n ngOnInit() {\n if (this.router) {\n this.breadcrumbs$ = this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n distinctUntilChanged(),\n map(event => this.buildBreadcrumb(this.activatedRoute.root))\n );\n }\n }\n\n buildBreadcrumb(\n route: ActivatedRoute,\n url: string = '',\n breadcrumbs: Array<IBreadcrumb> = []\n ): Array<IBreadcrumb> {\n // If no routeConfig is avalailable we are on the root path\n const label = route.routeConfig ? route.routeConfig.data['breadcrumb'] : 'Inicio';\n const path = route.routeConfig ? route.routeConfig.path : '';\n // In the routeConfig the complete path is not available,\n // so we rebuild it each time\n const nextUrl = `${url}${path}/`;\n const breadcrumb = {\n label,\n url: nextUrl,\n };\n const newBreadcrumbs = [...breadcrumbs, breadcrumb];\n if (route.firstChild) {\n // If we are not on our current path yet,\n // there will be more children to look after, to build our breadcumb\n return this.buildBreadcrumb(route.firstChild, nextUrl, newBreadcrumbs);\n }\n return newBreadcrumbs;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { IconModule } from '../icon/icon.module';\n\nimport { Breadcrumb } from './breadcrumb.component';\n\n\n@NgModule({\n declarations: [\n Breadcrumb,\n ],\n exports: [\n Breadcrumb,\n ],\n imports: [\n CommonModule,\n RouterModule,\n IconModule,\n ]\n})\nclass BreadcrumbModule { }\n\nexport {\n BreadcrumbModule,\n Breadcrumb\n};\n","import { Component, HostBinding, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'suka-page',\n template: `\n <suka-page-header [breadcrumb]=\"breadcrumb\" [title]=\"title\" [subtitle]=\"subtitle\" [actions]=\"actions\"></suka-page-header>\n\n <ng-content></ng-content>\n `\n})\nexport class Page implements OnInit {\n @Input() fluid: false;\n @HostBinding('class.page--narrow') @Input() narrow = false;\n\n @HostBinding('class.page') default = true;\n @HostBinding('class.page--fluid') _fluid = false;\n\n @Input() title: string | TemplateRef<any>;\n\n @Input() subtitle: string;\n\n @Input() actions: TemplateRef<any>;\n\n @Input() breadcrumb = true;\n\n public ngOnInit() {\n if (this.fluid) {\n this._fluid = true;\n this.default = false;\n }\n }\n}\n","import { HostBinding, Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: `suka-page-header`,\n template: `\n <suka-breadcrumb *ngIf=\"breadcrumb\"></suka-breadcrumb>\n\n <suka-stack\n alignment=\"center\"\n >\n <div sukaStackItem fill=\"true\">\n <ng-container *ngIf=\"!isTemplate(title)\">\n <h3 class=\"page__header__title\">{{title}}</h3>\n <span *ngIf=\"subtitle\" class=\"page__header__subtitle\">{{subtitle}}</span>\n </ng-container>\n\n <ng-template *ngIf=\"isTemplate(title)\" [ngTemplateOutlet]=\"title\"></ng-template>\n </div>\n\n <ng-template [ngTemplateOutlet]=\"actions\"></ng-template>\n </suka-stack>\n `\n})\nexport class PageHeader {\n @HostBinding('class.page__header') baseClass = true;\n\n @Input() title: string | TemplateRef<any>;\n\n @Input() subtitle: string;\n\n @Input() actions: TemplateRef<any>;\n\n @Input() breadcrumb = true;\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { BreadcrumbModule } from '../breadcrumb/breadcrumb.module';\n\nimport { Page } from './page.component';\nimport { PageHeader } from './page-header.component';\nimport { StackModule } from '../stack/stack.module';\n\n@NgModule({\n declarations: [\n Page,\n PageHeader,\n ],\n exports: [\n Page,\n PageHeader,\n ],\n imports: [\n CommonModule,\n RouterModule,\n BreadcrumbModule,\n StackModule,\n ]\n})\nclass PageModule { }\n\nexport {\n PageModule,\n Page\n};\n","import {\n Component,\n Input,\n Output,\n ViewChild,\n EventEmitter,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FileItem } from './file-item.interface';\n\nconst noop = () => {};\n\n@Component({\n selector: 'suka-file-uploader',\n template: `\n <ng-container *ngIf=\"!skeleton; else skeletonTemplate\">\n <label class=\"label\">{{title}}</label>\n <div *ngIf=\"description\" class=\"form__helper-text\">{{description}}</div>\n <div class=\"file\">\n <button\n type=\"button\"\n [sukaButton]=\"buttonType\"\n (click)=\"fileInput.click()\"\n [attr.for]=\"fileUploaderId\"\n [size]=\"size\">\n {{buttonText}}\n </button>\n <input\n #fileInput\n type=\"file\"\n class=\"file-input\"\n [accept]=\"accept\"\n [id]=\"fileUploaderId\"\n [multiple]=\"multiple\"\n tabindex=\"-1\"\n (change)=\"onFilesAdded()\"/>\n <div class=\"file-container\">\n <div *ngFor=\"let fileItem of files\">\n <suka-file [fileItem]=\"fileItem\" (remove)=\"removeFile(fileItem)\"></suka-file>\n <div *ngIf=\"fileItem.invalid\" class=\"form-requirement\">\n {{fileItem.invalidText}}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #skeletonTemplate>\n <div class=\"skeleton__text\" style=\"width: 100px\"></div>\n <div class=\"skeleton__text\" style=\"width: 225px\"></div>\n <button sukaButton skeleton=\"true\"></button>\n </ng-template>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: FileUploader,\n multi: true\n }\n ]\n})\nexport class FileUploader {\n /**\n * Counter used to create unique ids for file-uploader components\n */\n static fileUploaderCount = 0;\n /**\n * Accessible text for the button that opens the upload window.\n */\n @Input() buttonText = 'Agregar archivo(s)';\n\n /**\n * Type set for button\n */\n @Input() buttonType: 'primary' | 'basic' | 'plain' | 'destructive' | 'outline_white' = 'basic';\n\n /**\n * Text set to the title\n */\n @Input() title: string;\n\n /**\n * Text set to the description\n */\n @Input() description: string;\n\n /**\n * Specify the types of files that the input should be able to receive\n */\n @Input() accept = [];\n\n /**\n * Set to `false` to tell the component to only accept a single file on upload.\n *\n * Defaults to `true`. Accepts multiple files.\n */\n @Input() multiple = true;\n\n /**\n * Set to `true` for a loading file uploader.\n */\n @Input() skeleton = false;\n\n /**\n * Sets the size of the button.\n */\n @Input() size: 'sm' | 'normal';\n\n /**\n * Provides a unique id for the underlying `<input>` node\n */\n @Input() fileUploaderId = `file-uploader-${FileUploader.fileUploaderCount}`;\n\n /**\n * Maintains a reference to the view DOM element of the underlying `<input>` node\n */\n @ViewChild('fileInput', {static: false}) fileInput;\n\n /**\n * The list of files that have been submitted to be uploaded\n */\n @Input() files = new Set<FileItem>();\n\n /**\n * Emits an event to other classes when files change\n */\n @Output() filesChange = new EventEmitter<any>();\n\n @HostBinding('class.file-uploader') baseClass = true;\n\n protected onTouchedCallback: () => void = noop;\n protected onChangeCallback: (_: Set<FileItem>) => void = noop;\n\n constructor() {\n FileUploader.fileUploaderCount++;\n }\n\n /**\n * Specifies the property to be used as the return value to `ngModel`\n */\n get value(): Set<FileItem> {\n return this.files;\n }\n set value(v: Set<FileItem>) {\n if (v !== this.files) {\n this.files = v;\n this.onChangeCallback(v);\n }\n }\n\n onBlur() {\n this.onTouchedCallback();\n }\n\n /**\n * Propagates the injected `value`.\n */\n writeValue(value: Set<FileItem>) {\n if (value !== this.value) {\n this.files = value;\n }\n }\n\n onFilesAdded() {\n const files = this.fileInput.nativeElement.files;\n if (!this.multiple) {\n this.files.clear();\n }\n for (let file of files) {\n const fileItem: FileItem = {\n file,\n uploaded: false,\n state: 'edit',\n invalid: false,\n invalidText: '',\n };\n this.files.add(fileItem);\n this.filesChange.emit(this.files);\n }\n\n this.value = this.files;\n }\n\n removeFile(fileItem) {\n this.files.delete(fileItem);\n this.fileInput.nativeElement.value = '';\n this.filesChange.emit(this.files);\n }\n\n /**\n * Registers the injected function to control the touch use of the `FileUploader`.\n */\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n /**\n * Sets a method in order to propagate changes back to the form.\n */\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n}\n","import {\n Component,\n Input,\n Output,\n ViewChild,\n EventEmitter,\n OnInit,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FileItem } from './file-item.interface';\n\n@Component({\n selector: 'suka-file',\n template: `\n <p class=\"file-filename\">{{fileItem.file.name}}</p>\n <span\n *ngIf=\"fileItem.state === 'edit'\"\n class=\"file__state-container\"\n (click)=\"remove.emit()\"\n (keyup.enter)=\"remove.emit()\"\n (keyup.space)=\"remove.emit()\"\n tabindex=\"0\">\n <suka-icon\n *ngIf=\"isInvalidText\"\n icon=\"alert-circle\"\n class=\"file--invalid\">\n </suka-icon>\n <suka-icon\n icon=\"x\"\n class=\"file-close\">\n </suka-icon>\n </span>\n <span *ngIf=\"fileItem.state === 'upload'\">\n <suka-loading size=\"sm\"></suka-loading>\n </span>\n <span\n *ngIf=\"fileItem.state === 'complete'\"\n class=\"file__state-container\"\n tabindex=\"0\">\n <suka-icon\n icon=\"check\"\n class=\"file-complete\">\n </suka-icon>\n </span>\n `\n})\nexport class File {\n /**\n * A single `FileItem` from the set of `FileItem`s\n */\n @Input() fileItem: FileItem;\n\n @Output() remove = new EventEmitter();\n\n @HostBinding('class.file__selected-file') selectedFile = true;\n\n @HostBinding('class.file__selected-file--invalid') get isInvalidText() {\n return this.fileItem.invalidText;\n }\n\n @HostBinding('class.file__selected-file--valid') get isValid() {\n return this.fileItem.state === 'complete';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonModule } from '../button/button.module';\nimport { IconModule } from '../icon/icon.module';\nimport { LoadingModule } from '../loading/loading.module';\n\nimport { FileUploader } from './file-uploader.component';\nimport { File } from './file.component';\n\nexport { FileUploader } from './file-uploader.component';\n\n@NgModule({\n declarations: [\n FileUploader,\n File\n ],\n exports: [\n FileUploader\n ],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n ]\n})\nexport class FileUploaderModule { }\n","import { HostBinding, Component, Input, TemplateRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Component({\n selector: `suka-avatar`,\n template: `\n <ng-container *ngIf=\"!imgSrc\">{{getInitials()}}</ng-container>\n <img *ngIf=\"imgSrc\" [src]=\"imgSrc\" />\n `\n})\nexport class Avatar {\n /**\n * Sets an image url for the avatar. If it is set, it displays instead of the name initials.\n */\n @Input() imgSrc: string;\n\n /**\n * Avatar name. Used to display its initials (Max 2).\n */\n @Input() name: string;\n\n /**\n * Sets the avatar color.\n */\n @Input() color: 'blue' | 'azure' | 'indigo' | 'purple' | 'pink' | 'red' | 'orange' |\n 'yellow' | 'lime' | 'green' | 'teal' | 'cyan' | 'gray' | 'gray-dark' = 'gray';\n\n /**\n * Sets the avatar class\n */\n @Input() class = '';\n\n /**\n * Sets the avatar size.\n */\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'md';\n\n @HostBinding('attr.class') get attrClass() {\n return `avatar avatar--${this.color} avatar--${this.size} ${this.class}`;\n }\n\n /**\n * Sets the avatar initials according to the name input.\n */\n getInitials(): string {\n if (this.name === '') {\n return '';\n }\n\n const names = this.name.split(' ');\n let initials = names[0].substring(0, 1).toUpperCase();\n\n if (names.length > 1) {\n initials += names[names.length - 1].substring(0, 1).toUpperCase();\n }\n return initials;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Avatar } from './avatar.component';\n\nexport { Avatar } from './avatar.component';\n\n@NgModule({\n declarations: [Avatar],\n exports: [Avatar],\n imports: [CommonModule]\n})\nexport class AvatarModule { }\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n TemplateRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'suka-date-picker-input',\n template: `\n <div class=\"date-picker-input\"\n [ngClass]=\"{\n 'date-picker--single' : type === 'single',\n 'date-picker--range' : type === 'range',\n 'skeleton' : skeleton\n }\">\n <div class=\"date-picker-input-container\">\n <label *ngIf=\"label\" [for]=\"id\" class=\"label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n <ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n </label>\n <div class=\"date-picker-input__wrapper\">\n <input\n *ngIf=\"!skeleton\"\n autocomplete=\"off\"\n type=\"text\"\n class=\"date-picker__input\"\n [value]=\"value\"\n [pattern]=\"pattern\"\n [placeholder]=\"placeholder\"\n [id]= \"id\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"/>\n <suka-icon\n icon=\"calendar\"\n class=\"date-picker__icon\">\n </suka-icon>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: DatePickerInput,\n multi: true\n }\n ]\n})\nexport class DatePickerInput {\n private static datePickerCount = 0;\n\n /**\n * Select a calendar type for the `model`.\n */\n @Input() type: 'simple' | 'single' | 'range' = 'simple';\n\n /**\n * Sets the id for the `DatePickerInput`.\n */\n @Input() id = `datepicker-${DatePickerInput.datePickerCount++}`;\n\n /**\n * Set to `true` to display a calendar icon\n */\n @Input() hasIcon = false;\n\n /**\n * label content.\n */\n @Input() label: string | TemplateRef<any>;\n\n /**\n * Sets the input's placeholder.\n */\n @Input() placeholder = 'dd/mm/yyyy';\n\n /**\n * Sets the pattern to follow.\n */\n @Input() pattern = '^\\\\d{1,2}/\\\\d{1,2}/\\\\d{4}$';\n\n /**\n * Emits event notifying other classes of a value change.\n */\n @Output() valueChange: EventEmitter<string> = new EventEmitter();\n\n /**\n * Set to `true` to disable the input\n */\n @Input() disabled = false;\n\n /**\n * Set to `true` to display invalid state.\n */\n @Input() invalid = false;\n\n /**\n * Feedback message to display when `DatepickerInput` is invalid.\n */\n @Input() invalidText: string | TemplateRef<any>;\n\n /**\n * Skeleton state.\n */\n @Input() skeleton = false;\n\n /**\n * Sets the `DatepickerInput` value.\n */\n @Input() value = '';\n\n constructor(protected elementRef: ElementRef) { }\n\n /**\n * Sets the value, marks the input as touched and emits a value change event.\n * @param event\n */\n onChange(event) {\n this.value = event.target.value;\n this.valueChange.emit(this.value);\n this.propagateChange(this.value);\n this.onTouched();\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n onTouched: () => any = () => { };\n\n propagateChange = (_: any) => { };\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatePickerInput } from './datepicker-input.component';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [\n DatePickerInput\n ],\n exports: [\n DatePickerInput\n ],\n imports: [\n CommonModule,\n IconModule,\n ]\n})\nexport class DatePickerInputModule { }\n","const monthToStr = (monthNumber, shorthand, locale) =>\n locale.months[shorthand ? 'shorthand' : 'longhand'][monthNumber];\n\nconst config = {\n selectorInit: '[data-date-picker]',\n selectorDatePickerInput: '[data-date-picker-input]',\n selectorDatePickerInputFrom: '[data-date-picker-input-from]',\n selectorDatePickerInputTo: '[data-date-picker-input-to]',\n selectorDatePickerIcon: '[data-date-picker-icon]',\n selectorFlatpickrMonthYearContainer: '.flatpickr-current-month',\n selectorFlatpickrYearContainer: '.numInputWrapper',\n selectorFlatpickrCurrentMonth: '.cur-month',\n classCalendarContainer: `date-picker__calendar`,\n classMonth: `date-picker__month`,\n classWeekdays: `date-picker__weekdays`,\n classDays: `date-picker__days`,\n classWeekday: `date-picker__weekday`,\n classDay: `date-picker__day`,\n classFocused: `focused`,\n classVisuallyHidden: `visually-hidden`,\n classFlatpickrCurrentMonth: 'cur-month',\n attribType: 'data-date-picker-type',\n dateFormat: 'd/m/Y',\n shorthand: false\n};\n\nexport const sukaFlatpickrMonthSelectPlugin = fp => {\n const setupElements = () => {\n if (!fp.monthElements) {\n return;\n }\n fp.monthElements.forEach(elem => {\n if (!elem.parentNode) { return; }\n elem.parentNode.removeChild(elem);\n });\n fp.monthElements.splice(\n 0,\n fp.monthElements.length,\n ...fp.monthElements.map(() => {\n const monthElement = fp._createElement(\n 'span',\n config.classFlatpickrCurrentMonth\n );\n monthElement.textContent = monthToStr(\n fp.currentMonth,\n config.shorthand === true,\n fp.l10n\n );\n fp.yearElements[0]\n .closest(config.selectorFlatpickrMonthYearContainer)\n .insertBefore(\n monthElement,\n fp.yearElements[0].closest(config.selectorFlatpickrYearContainer)\n );\n return monthElement;\n })\n );\n };\n const updateCurrentMonth = () => {\n const monthStr = monthToStr(\n fp.currentMonth,\n config.shorthand === true,\n fp.l10n\n );\n\n if (fp.yearElements) {\n fp.yearElements.forEach(elem => {\n const currentMonthContainer = elem.closest(\n config.selectorFlatpickrMonthYearContainer\n );\n Array.prototype.forEach.call(\n currentMonthContainer.querySelectorAll('.cur-month'),\n monthElement => {\n monthElement.textContent = monthStr;\n }\n );\n });\n }\n };\n\n const register = () => {\n fp.loadedPlugins.push('sukaFlatpickrMonthSelectPlugin');\n };\n\n return {\n onMonthChange: updateCurrentMonth,\n onOpen: updateCurrentMonth,\n onReady: [setupElements, updateCurrentMonth, register]\n };\n};\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n ElementRef,\n OnDestroy,\n HostListener,\n TemplateRef,\n OnChanges,\n SimpleChanges,\n AfterViewChecked\n} from '@angular/core';\nimport rangePlugin from 'flatpickr/dist/plugins/rangePlugin';\nimport flatpickr from 'flatpickr';\nimport { Spanish } from \"flatpickr/dist/l10n/es.js\"\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { sukaFlatpickrMonthSelectPlugin } from './sukaFlatpickrMonthSelectPlugin';\n\n\n@Component({\n selector: 'suka-date-picker',\n template: `\n <div class=\"form-item\">\n <div\n class=\"date-picker\"\n [ngClass]=\"{\n 'date-picker--range' : range,\n 'date-picker--single' : !range,\n 'skeleton' : skeleton\n }\">\n <div class=\"date-picker-container\">\n <suka-date-picker-input\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [pattern]=\"pattern\"\n [id]=\"id\"\n [type]=\"(range ? 'range' : 'single')\"\n [hasIcon]=\"(range ? false : true)\"\n [disabled]=\"disabled\"\n [invalid]=\"invalid\"\n [invalidText]=\"invalidText\"\n [skeleton]=\"skeleton\"\n (valueChange)=\"onValueChange($event)\">\n </suka-date-picker-input>\n </div>\n <div *ngIf=\"range\" class=\"date-picker-container\">\n <suka-date-picker-input\n [label]=\"rangeLabel\"\n [placeholder]=\"placeholder\"\n [pattern]=\"pattern\"\n [id]=\"id + '-rangeInput'\"\n [type]=\"(range ? 'range' : 'single')\"\n [hasIcon]=\"(range ? true : null)\"\n [disabled]=\"disabled\"\n [invalid]=\"invalid\"\n [invalidText]=\"invalidText\"\n [skeleton]=\"skeleton\"\n (valueChange)=\"onRangeValueChange($event)\">\n </suka-date-picker-input>\n </div>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: DatePicker,\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class DatePicker implements OnDestroy, OnChanges, AfterViewChecked {\n private static datePickerCount = 0;\n\n /**\n * Select calendar range mode\n */\n @Input() range = false;\n\n /**\n * Format of date\n *\n * For reference: https://flatpickr.js.org/formatting/\n */\n @Input() dateFormat = 'd/m/Y';\n\n /**\n * Date picker label.\n */\n @Input() label: string | TemplateRef<any>;\n\n /**\n * Label for date range selector.\n */\n @Input() rangeLabel: string;\n\n /**\n * Sets the placeholder text.\n */\n @Input() placeholder = 'dd/mm/yyyy';\n\n /**\n * Sets the pattern to follow.\n */\n @Input() pattern = '^\\\\d{1,2}/\\\\d{1,2}/\\\\d{4}$';\n\n /**\n * Date picker id.\n */\n @Input() id = `datepicker-${DatePicker.datePickerCount++}`;\n\n /**\n * Sets the value.\n */\n @Input() set value(v: (Date | string)[]) {\n if (!v) {\n v = [];\n }\n this._value = v;\n }\n\n get value() {\n return this._value;\n }\n\n /**\n * Set to `true` to disable the `Datepicker`\n */\n @Input() disabled = false;\n\n /**\n * Set to `true` to display invalid state.\n */\n @Input() invalid = false;\n\n /**\n * Feedback message to display when `Datepicker` is invalid.\n */\n @Input() invalidText: string | TemplateRef<any>;\n\n /**\n * Skeleton state.\n */\n @Input() skeleton = false;\n\n /**\n * Array of date picker plugins.\n */\n @Input() plugins = [];\n\n /**\n * Flatpickr options\n */\n @Input()\n set flatpickrOptions(options) {\n this._flatpickrOptions = Object.assign({}, this._flatpickrOptions, options);\n }\n get flatpickrOptions() {\n const plugins = [...this.plugins, sukaFlatpickrMonthSelectPlugin];\n if (this.range) {\n plugins.push(rangePlugin({ input: `#${this.id}-rangeInput`, position: 'left' }));\n }\n return Object.assign({}, this._flatpickrOptions, this.flatpickrBaseOptions, {\n mode: this.range ? 'range' : 'single',\n plugins,\n dateFormat: this.dateFormat\n });\n }\n\n /**\n * Emits event notifying other classes of a change.\n */\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n protected _value = [];\n\n protected _flatpickrOptions = {\n allowInput: true\n };\n\n protected flatpickrBaseOptions = {\n mode: 'single',\n dateFormat: 'd/m/Y',\n locale: Spanish,\n plugins: this.plugins,\n onOpen: () => { this.updateClassNames(); },\n value: this.value\n };\n\n protected flatpickrInstance = null;\n\n constructor(protected elementRef: ElementRef) { }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isFlatpickrLoaded()) {\n let dates = this.flatpickrInstance.selectedDates;\n if (changes.value && this.didDateValueChange(changes.value.currentValue, changes.value.previousValue)) {\n dates = changes.value.currentValue;\n }\n // only reset the flatpickr instance on Input changes\n this.flatpickrInstance = flatpickr(`#${this.id}`, this.flatpickrOptions);\n this.setDateValues(dates);\n }\n }\n\n // because the actual view may be delayed in loading (think projection into a tab pane)\n // and because we rely on a library that operates outside the Angular view of the world\n // we need to keep trying to load the library, until the relevant DOM is actually live\n ngAfterViewChecked() {\n if (!this.isFlatpickrLoaded()) {\n this.flatpickrInstance = flatpickr(`#${this.id}`, this.flatpickrOptions);\n\n // if (and only if) the initialization succeeded, we can set the date values\n if (this.isFlatpickrLoaded()) {\n if (this.value.length > 0) {\n this.setDateValues(this.value);\n }\n }\n }\n }\n\n @HostListener('focusin')\n onFocus() {\n this.onTouched();\n }\n\n /**\n * Writes a value from the model to the component. Expects the value to be `null` or `(Date | string)[]`\n * @param value value received from the model\n */\n writeValue(value: (Date | string)[]) {\n this.value = value;\n if (this.isFlatpickrLoaded() && this.flatpickrInstance.config) {\n this.setDateValues(this.value);\n }\n }\n\n registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n onTouched: () => any = () => { };\n\n propagateChange = (_: any) => { };\n\n /**\n * Cleans up our flatpickr instance\n */\n ngOnDestroy() {\n if (!this.isFlatpickrLoaded()) { return; }\n this.flatpickrInstance.destroy();\n }\n\n /**\n * Handles the `valueChange` event from the primary/single input\n */\n onValueChange(event: string) {\n if (this.isFlatpickrLoaded()) {\n const date = this.flatpickrInstance.parseDate(event, this.dateFormat);\n if (this.range) {\n this.setDateValues([date, this.flatpickrInstance.selectedDates[1]]);\n } else {\n this.setDateValues([date]);\n }\n this.doSelect(this.flatpickrInstance.selectedDates);\n }\n }\n\n /**\n * Handles the `valueChange` event from the range input\n */\n onRangeValueChange(event: string) {\n if (this.isFlatpickrLoaded()) {\n const date = this.flatpickrInstance.parseDate(event, this.dateFormat);\n this.setDateValues([this.flatpickrInstance.selectedDates[0], date]);\n this.doSelect(this.flatpickrInstance.selectedDates);\n }\n }\n\n /**\n * Carbon uses a number of specific classnames for parts of the flatpickr - this idempotent method applies them if needed.\n */\n protected updateClassNames() {\n if (!this.elementRef) { return; }\n\n // get all the possible flatpickrs in the document - we need to add classes to (potentially) all of them\n const calendarContainer = document.querySelectorAll('.flatpickr-calendar');\n const monthContainer = document.querySelectorAll('.flatpickr-month');\n const weekdaysContainer = document.querySelectorAll('.flatpickr-weekdays');\n const weekdayContainer = document.querySelectorAll('.flatpickr-weekday');\n const daysContainer = document.querySelectorAll('.flatpickr-days');\n const dayContainer = document.querySelectorAll('.flatpickr-day');\n\n // add classes to lists of elements\n const addClassIfNotExists = (classname: string, elementList: NodeListOf<Element>) => {\n Array.from(elementList).forEach(element => {\n if (!element.classList.contains(classname)) {\n element.classList.add(classname);\n }\n });\n };\n\n // add classes (but only if they don't exist, small perf win)\n addClassIfNotExists('date-picker__calendar', calendarContainer);\n addClassIfNotExists('date-picker__month', monthContainer);\n addClassIfNotExists('date-picker__weekdays', weekdaysContainer);\n addClassIfNotExists('date-picker__days', daysContainer);\n\n // add weekday classes and format the text\n Array.from(weekdayContainer).forEach(element => {\n element.innerHTML = element.innerHTML.replace(/\\s+/g, '');\n element.classList.add('date-picker__weekday');\n });\n\n // add day classes and special case the \"today\" element based on `this.value`\n Array.from(dayContainer).forEach(element => {\n element.classList.add('date-picker__day');\n if (!this.value) {\n return;\n }\n if (element.classList.contains('today') && this.value.length > 0) {\n element.classList.add('no-border');\n } else if (element.classList.contains('today') && this.value.length === 0) {\n element.classList.remove('no-border');\n }\n });\n }\n\n /**\n * Applies the given date value array to both the flatpickr instance and the `input`(s)\n * @param dates the date values to apply\n */\n protected setDateValues(dates: (Date | string)[]) {\n if (this.isFlatpickrLoaded()) {\n const singleInput = this.elementRef.nativeElement.querySelector(`#${this.id}`);\n const rangeInput = this.elementRef.nativeElement.querySelector(`#${this.id}-rangeInput`);\n\n // set the date on the instance\n this.flatpickrInstance.setDate(dates);\n\n // we can either set a date value or an empty string, so we start with an empty string\n let singleDate = '';\n // if date is a string, parse and format\n if (typeof this.flatpickrInstance.selectedDates[0] === 'string') {\n singleDate = this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[0], this.dateFormat);\n singleDate = this.flatpickrInstance.formatDate(singleDate, this.dateFormat);\n // if date is not a string we can assume it's a Date and we should format\n } else if (!!this.flatpickrInstance.selectedDates[0]) {\n singleDate = this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[0], this.dateFormat);\n }\n\n if (rangeInput) {\n // we can either set a date value or an empty string, so we start with an empty string\n let rangeDate = '';\n // if date is a string, parse and format\n if (typeof this.flatpickrInstance.selectedDates[1] === 'string') {\n rangeDate = this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[1].toString(), this.dateFormat);\n rangeDate = this.flatpickrInstance.formatDate(rangeDate, this.dateFormat);\n // if date is not a string we can assume it's a Date and we should format\n } else if (!!this.flatpickrInstance.selectedDates[1]) {\n rangeDate = this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[1], this.dateFormat);\n }\n setTimeout(() => {\n // apply the values\n rangeInput.value = rangeDate;\n singleInput.value = singleDate;\n });\n }\n }\n }\n\n protected doSelect(selectedValue: (Date | string)[]) {\n this.valueChange.emit(selectedValue);\n this.propagateChange(selectedValue);\n }\n\n protected didDateValueChange(currentValue, previousValue) {\n return currentValue[0] !== previousValue[0] || currentValue[1] !== previousValue[1];\n }\n\n /**\n * More advanced checking of the loaded state of flatpickr\n */\n protected isFlatpickrLoaded() {\n // cast the instance to a boolean, and some method that has to exist for the library to be loaded in this case `setDate`\n return !!this.flatpickrInstance && !!this.flatpickrInstance.setDate;\n }\n}\n","import { DatePickerInputModule } from './../datepicker-input/datepicker-input.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatePicker } from './datepicker.component';\n\n@NgModule({\n declarations: [\n DatePicker\n ],\n exports: [\n DatePicker,\n DatePickerInputModule\n ],\n imports: [\n CommonModule,\n DatePickerInputModule\n ]\n})\nexport class DatePickerModule { }\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ToastContainer } from './toast-container.component';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nexport class ToastRef {\n public componentInstance: ToastContainer;\n\n constructor(private readonly overlayRef: OverlayRef) { }\n\n isVisible() {\n return this.overlayRef && this.overlayRef.overlayElement;\n }\n\n getPosition() {\n return this.overlayRef.overlayElement.getBoundingClientRect();\n }\n\n public close(data?: any): void {\n this.overlayRef.dispose();\n\n // tslint:disable-next-line: no-non-null-assertion\n this.componentInstance = null!;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ToastConfig } from './toast.service';\n\nexport const TOAST_CONFIG_DATA = new InjectionToken<ToastConfig>('TOAST_CONFIG_DATA');\n","import {\n AnimationTriggerMetadata,\n trigger,\n state,\n transition,\n style,\n animate,\n} from '@angular/animations';\n\nexport const toastAnimations: {\n readonly fadeToast: AnimationTriggerMetadata;\n} = {\n fadeToast: trigger('fadeAnimation', [\n state('default', style({ opacity: 1, transform: '*' })),\n transition('void => *', [style({ opacity: 0, transform: 'scale(.9) translate3d(0, -50%, 0)' }), animate('{{ fadeIn }}ms')]),\n transition(\n 'default => closing',\n animate('{{ fadeOut }}ms', style({ opacity: 0 })),\n ),\n ]),\n};\n\nexport type ToastAnimationState = 'default' | 'closing';\n","import { Component, Inject, TemplateRef, HostListener, EventEmitter, OnInit, HostBinding, OnDestroy } from '@angular/core';\n\nimport { ToastRef } from './toast-ref';\nimport { TOAST_CONFIG_DATA } from './toast.tokens';\nimport { AnimationEvent } from '@angular/animations';\nimport { toastAnimations, ToastAnimationState } from './toast-animations';\nimport { ToastContent, ToastConfig } from './toast.service';\n\n@Component({\n selector: 'suka-toast',\n template: `\n <div class=\"toast\"\n [@fadeAnimation]=\"{\n value: animationState,\n params: {\n fadeIn: toastConfig.animation.fadeIn,\n fadeOut: toastConfig.animation.fadeOut\n }\n }\"\n (@fadeAnimation.done)=\"onFadeFinished($event)\"\n [ngClass]=\"{\n 'toast--success': content.type === 'success',\n 'toast--alert': content.type === 'alert',\n 'toast--attention': content.type === 'attention'\n }\"\n >\n <suka-icon icon=\"check\" *ngIf=\"content.type === 'success'\" class=\"toast__icon--success\"></suka-icon>\n <suka-icon icon=\"alert-circle\" *ngIf=\"content.type === 'alert'\" class=\"toast__icon--alert\"></suka-icon>\n <suka-icon icon=\"alert-triangle\" *ngIf=\"content.type === 'attention'\" class=\"toast__icon--attention\"></suka-icon>\n <div>{{ content.body }}</div>\n <suka-icon icon=\"x\" (click)=\"close()\" class=\"toast__close\">close</suka-icon>\n </div>\n `,\n animations: [toastAnimations.fadeToast],\n})\nexport class ToastContainer implements OnInit, OnDestroy {\n private intervalId: number;\n\n public animationState: ToastAnimationState = 'default';\n public animationStateChanged = new EventEmitter<AnimationEvent>();\n showFooter = false;\n primaryActions: [];\n secondaryActions: [];\n content: ToastContent;\n\n @HostBinding('class.toast--default') baseClass = true;\n\n constructor(\n public toastRef: ToastRef,\n @Inject(TOAST_CONFIG_DATA) public toastConfig: any\n ) { }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n\n ngOnInit() {\n this.content = this.toastConfig.content;\n this.intervalId = window.setTimeout(() => this.startExitAnimation(), 5000);\n }\n\n ngOnDestroy() {\n clearTimeout(this.intervalId);\n }\n\n close() {\n this.toastRef.close();\n }\n\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n onAnimationDone(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n closeToast($event: any) {\n this.toastRef.close();\n }\n\n onFadeFinished(event: AnimationEvent) {\n const { toState } = event;\n const isFadeOut = (toState as ToastAnimationState) === 'closing';\n const itFinished = this.animationState === 'closing';\n\n if (isFadeOut && itFinished) {\n this.close();\n }\n }\n\n startExitAnimation() {\n this.animationState = 'closing';\n }\n}\n","import { Injectable, Injector, ComponentRef, TemplateRef } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\n\nimport { ToastRef } from './toast-ref';\nimport { ToastContainer } from './toast-container.component';\nimport { TOAST_CONFIG_DATA } from './toast.tokens';\n\nexport type ToastType = 'info' | 'success' | 'attention' | 'alert';\n\nexport interface ToastContent {\n type: ToastType;\n body?: string | TemplateRef<any>;\n}\n\nexport interface ToastConfig {\n content?: ToastContent;\n position?: {\n top: number;\n };\n animation?: {\n fadeOut: number;\n fadeIn: number;\n };\n}\n\nconst DEFAULT_CONFIG: ToastConfig = {\n position: {\n top: 20,\n },\n animation: {\n fadeOut: 2500,\n fadeIn: 150,\n },\n content: null,\n};\n\n@Injectable()\nexport class ToastService {\n private lastToast: ToastRef;\n\n constructor(\n private injector: Injector,\n private overlay: Overlay\n ) { }\n\n show(config: ToastConfig = {}) {\n // Override default configuration\n const dialogConfig = { ...DEFAULT_CONFIG, ...config };\n\n // Returns an OverlayRef which is a PortalHost\n const overlayRef = this.createOverlay(dialogConfig);\n\n // Instantiate remote control\n const toastRef = new ToastRef(overlayRef);\n\n this.lastToast = toastRef;\n\n const overlayComponent = this.attachToastContainer(overlayRef, dialogConfig, toastRef);\n\n toastRef.componentInstance = overlayComponent;\n\n return toastRef;\n }\n\n private createOverlay(config: ToastConfig) {\n const overlayConfig = this.getOverlayConfig(config);\n return this.overlay.create(overlayConfig);\n }\n\n private attachToastContainer(overlayRef: OverlayRef, config: ToastConfig, toastRef: ToastRef) {\n const injector = this.createInjector(config, toastRef);\n\n const containerPortal = new ComponentPortal(ToastContainer, null, injector);\n const containerRef: ComponentRef<ToastContainer> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n private createInjector(config: ToastConfig, toastRef: ToastRef): PortalInjector {\n const injectionTokens = new WeakMap();\n\n injectionTokens.set(ToastRef, toastRef);\n injectionTokens.set(TOAST_CONFIG_DATA, config);\n\n return new PortalInjector(this.injector, injectionTokens);\n }\n\n private getOverlayConfig(config: ToastConfig): OverlayConfig {\n const positionStrategy = this.overlay.position()\n .global()\n .centerHorizontally()\n .top(this.getPosition(config));\n\n const overlayConfig = new OverlayConfig({\n positionStrategy\n });\n\n return overlayConfig;\n }\n\n getPosition(config: ToastConfig) {\n const lastToastIsVisible = this.lastToast && this.lastToast.isVisible();\n const position = lastToastIsVisible\n ? this.lastToast.getPosition().bottom\n : config.position.top;\n\n return position + 'px';\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\nimport { ToastContainer } from './toast-container.component';\nimport { ToastService } from './toast.service';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ButtonModule } from '../button/button.module';\n\nexport { ToastContainer } from './toast-container.component';\nexport { ToastService } from './toast.service';\nexport { ToastRef } from './toast-ref';\n\n@NgModule({\n declarations: [\n ToastContainer,\n ],\n exports: [\n ToastContainer,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n ButtonModule,\n IconModule,\n ],\n entryComponents: [\n ToastContainer\n ],\n providers: [\n ToastService,\n ],\n})\nexport class ToastModule { }\n","import { Component, Input, HostBinding, Output, EventEmitter, OnInit } from '@angular/core';\nimport { ProgressStep } from './progress-step.interface';\n\n@Component({\n selector: 'suka-progress',\n template: `\n <div class=\"progress__wrapper\">\n <ul class=\"progress-bar\">\n <li\n *ngFor=\"let step of steps; let i = index\"\n class=\"progress-bar__step\"\n [ngClass]=\"{\n 'progress-bar__step--complete': isComplete(step),\n 'progress-bar__step--editable': isEditable(step),\n 'progress-bar__step--error': step.state === 'error',\n 'progress-bar__step--current': step.current,\n 'progress-bar__step--unclickable': isUnclickable(step, i)\n }\"\n >\n <div class=\"step\" role=\"button\" (click)=\"select(i)\">\n <div class=\"step__indicator\">\n <ng-container *ngIf=\"step.state !== 'complete' || step.current\">{{ i + 1 }}</ng-container>\n <suka-icon icon=\"check\" *ngIf=\"isComplete(step) && !isEditable(step) && !step.current\"></suka-icon>\n <suka-icon icon=\"edit-2\" *ngIf=\"isEditable(step) && !step.current\"></suka-icon>\n </div>\n <span class=\"step__label\"> {{ step.label }}</span>\n </div>\n </li>\n </ul>\n </div>\n `\n})\nexport class Progress {\n private _steps: Array<ProgressStep>;\n\n @HostBinding('class.progress') baseClass = true;\n\n /**\n * Set to `true` to make the progress linear. This allows the user to access any of the steps at any time (like tabs).\n */\n @Input() linear = false;\n\n /**\n * Set to `true` to allow the user to edit a step after completed.\n */\n @Input() editable = false;\n\n /**\n * Emits an event when a index is selected\n */\n @Output() selected = new EventEmitter();\n\n /**\n * Emits an event when the steps change.\n */\n @Output() stepsChange = new EventEmitter();\n /**\n * Sets the steps for the `Progress` component.\n */\n @Input() get steps() {\n return this._steps;\n }\n set steps(value) {\n this._steps = value;\n\n this.stepsChange.emit(this._steps);\n }\n\n select(newIndex): void {\n this._steps.forEach((step, index) => {\n if (index === newIndex) {\n step.current = true;\n } else if (step.current) {\n delete step.current;\n }\n });\n\n this.selected.emit(newIndex);\n\n this.steps = this._steps;\n }\n\n /**\n * Step is completed.\n */\n isComplete(step: ProgressStep) {\n return step.state === 'complete';\n }\n\n /**\n * Step is editable.\n */\n isEditable(step: ProgressStep) {\n return step.state === 'complete' && this.editable;\n }\n\n /**\n * Step is unclickable.\n */\n isUnclickable(step: ProgressStep, index: number): boolean {\n if (step.state === 'complete' && !this.editable) {\n return true;\n }\n if (step.state === 'incomplete' && !this.linear && index !== this.getNextStep()) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Returns the next uncompleted step.\n */\n getNextStep(): number {\n for (const [index, step] of this.steps.entries()) {\n if (step.state === 'incomplete') {\n return index;\n }\n }\n\n return -1;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Progress } from './progress.component';\nimport { IconModule } from '../icon/icon.module';\n\nexport { Progress } from './progress.component';\n\n@NgModule({\n declarations: [\n Progress\n ],\n exports: [\n Progress\n ],\n imports: [\n CommonModule,\n IconModule,\n ]\n})\nexport class ProgressModule { }\n","import { HostBinding, Component } from '@angular/core';\n\n@Component({\n selector: `suka-layout`,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class Layout {\n @HostBinding('class.layout') baseClass = true;\n}\n","import { Component, HostBinding, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'suka-layout-section',\n template: `\n <div *ngIf=\"annotated else elseTpl\" class=\"annotation__wrapper\">\n <div class=\"annotation\">\n <h5>{{title}}</h5>\n <p>{{description}}</p>\n </div>\n <div class=\"annotation-content\">\n <ng-content *ngTemplateOutlet=\"elseTpl\"></ng-content>\n </div>\n </div>\n\n <ng-template #elseTpl>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class LayoutSection {\n @HostBinding('class.layout__section') baseClass = true;\n\n @HostBinding('class.layout__section--secondary') @Input() secondary = false;\n @HostBinding('class.layout__section--one-half') @Input() oneHalf = false;\n @HostBinding('class.layout__section--one-third') @Input() oneThird = false;\n @HostBinding('class.layout__section--annotated') @Input() annotated = false;\n\n /**\n * Sets the title for an annotated layout section.\n */\n @Input() title: string | TemplateRef<any>;\n /**\n * Sets the description for an annotated layout section.\n */\n @Input() description: string | TemplateRef<any>;\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { Layout } from './layout.component';\nimport { LayoutSection } from './layout-section.component';\n\n@NgModule({\n declarations: [\n Layout,\n LayoutSection,\n ],\n exports: [\n Layout,\n LayoutSection,\n ],\n imports: [\n CommonModule,\n ]\n})\nclass LayoutModule { }\n\nexport { Layout, LayoutSection, LayoutModule };\n","import { Input, Component, HostBinding, Output, EventEmitter, OnInit } from '@angular/core';\nimport { IconType } from '../icon/icon-types';\nimport { trigger, style, state, transition, animate } from '@angular/animations';\n\n/**\n * Informa a los usuarios sobre cambios importantes o condiciones persistentes.\n *\n * Usa este componente si necesitas comunicar a los usuarios de una manera prominente. Los Banner son ubicados en la parte superior de una página o sección al que aplican, abajo del header de los mismos.\n */\n@Component({\n selector: 'suka-banner',\n template: `\n <div\n [@fadeAnimation]=\"{\n value: animationState,\n params: {\n fadeIn: 200,\n fadeOut: 200\n }\n }\"\n (@fadeAnimation.done)=\"onFadeFinished($event)\"\n class=\"banner banner--{{status}}\"\n [ngClass]=\"{\n 'banner--hidden': hide\n }\"\n >\n <button\n *ngIf=\"dismissable\"\n sukaButton=\"plain\"\n (click)=\"onClose($event)\"\n class=\"banner__close-button\"\n >\n <suka-icon icon=\"x\"></suka-icon>\n </button>\n\n <div class=\"banner__status-icon\" *ngIf=\"status !== 'default'\">\n <div class=\"banner__status-icon__wrapper\">\n <suka-icon [icon]=\"statusIcon\"></suka-icon>\n </div>\n </div>\n\n <div class=\"banner__content\">\n <h5>{{title}}</h5>\n <div class=\"banner__description\">\n <ng-content></ng-content>\n </div>\n <button *ngIf=\"actionLabel\" sukaButton outline=\"true\" (click)=\"onAction()\">{{actionLabel}}</button>\n </div>\n </div>\n `,\n animations: [\n trigger('fadeAnimation', [\n state('default', style({ opacity: 1, transform: '*' })),\n transition('void => *', [style({ opacity: 0, transform: 'scale(.9)' }), animate('150ms cubic-bezier(.17,.67,.78,1.21)')]),\n transition(\n 'default => closing',\n animate('150ms', style({ opacity: 0, transform: 'scale(.9)' })),\n ),\n ]),\n ]\n})\nexport class Banner implements OnInit {\n statusIcon: IconType;\n hide = false;\n\n public animationState: 'default' | 'closing' = 'default';\n\n /**\n * Title content for the banner\n */\n @Input() title;\n\n /**\n * Sets the status for the banner\n */\n @Input() status: 'default' | 'info' | 'success' | 'attention' | 'alert' = 'default';\n\n /**\n * Displays a close button\n */\n @Input() dismissable = true;\n\n /**\n * Action label content\n */\n @Input() actionLabel = '';\n\n /**\n * Callback when the action\n */\n @Output() action = new EventEmitter();\n\n /**\n * Callback when the banner is dismissed.\n */\n @Output() dismiss = new EventEmitter();\n\n ngOnInit() {\n switch (this.status) {\n case 'info':\n this.statusIcon = 'info';\n break;\n case 'success':\n this.statusIcon = 'check';\n break;\n case 'attention':\n this.statusIcon = 'alert-triangle';\n break;\n case 'alert':\n this.statusIcon = 'alert-circle';\n break;\n }\n }\n\n /**\n * Emits the action callback.\n */\n onAction() {\n this.action.emit();\n }\n\n /**\n * Closes the banner.\n * Emits the dismiss callback.\n */\n onClose(event?: any) {\n this.animationState = 'closing';\n this.dismiss.emit();\n }\n\n onFadeFinished(event: AnimationEvent) {\n const itFinished = this.animationState === 'closing';\n\n if (itFinished) {\n this.hide = true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Banner } from './banner.component';\nimport { IconModule } from '../icon/icon.module';\nimport { ButtonModule } from '../button/button.module';\n\nexport * from './banner.component';\n\n@NgModule({\n declarations: [\n Banner\n ],\n exports: [\n Banner\n ],\n imports: [\n CommonModule,\n IconModule,\n ButtonModule,\n ]\n})\nexport class BannerModule { }\n","import {\n Component,\n Input,\n HostBinding,\n ViewChild,\n HostListener,\n OnInit,\n SecurityContext\n} from '@angular/core';\nimport * as prism from 'prismjs';\nimport 'prismjs/components/prism-markup-templating.js';\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-php';\nimport 'prismjs/components/prism-ruby';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/components/prism-java';\nimport 'prismjs/components/prism-markdown';\nimport 'prismjs/components/prism-scss';\nimport 'prismjs/components/prism-swift';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nexport enum SnippetType {\n single = 'single',\n multi = 'multi',\n inline = 'inline'\n}\n\nexport enum SnippetLanguage {\n javascript = 'javascript',\n json = 'json',\n typescript = 'typescript',\n markup = 'markup',\n markdown = 'markdown',\n php = 'php',\n ruby = 'ruby',\n scss = 'scss',\n css = 'css',\n html = 'html',\n xml = 'xml',\n clike = 'clike',\n java = 'java',\n swift = 'swift',\n}\n\n@Component({\n selector: 'suka-code-snippet',\n template: `\n <ng-container *ngIf=\"display === 'inline'; else notInline\">\n <span\n sukaTooltip=\"Copiado\"\n tooltipTrigger=\"click\"\n tooltipDuration=\"3000\"\n >\n <ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n </span>\n </ng-container>\n\n <ng-template #notInline>\n <div class=\"snippet-container\" attr.aria-label=\"Copy code snippet\">\n <ng-container *ngIf=\"skeleton\">\n <span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n <ng-template #multiSkeleton>\n <span></span>\n <span></span>\n <span></span>\n </ng-template>\n </ng-container>\n <pre *ngIf=\"!skeleton\"><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></pre>\n </div>\n\n <button\n *ngIf=\"!skeleton\"\n class=\"snippet-button\"\n attr.aria-label=\"Copiar\"\n (click)=\"onCopyButtonClicked()\"\n [ngClass]=\"{\n 'snippet-button--copied': showFeedback\n }\"\n sukaTooltip=\"Copiado\"\n tooltipTrigger=\"click\"\n tooltipDuration=\"3000\"\n tabindex=\"0\">\n <suka-icon icon=\"copy\"></suka-icon>\n </button>\n\n <button\n *ngIf=\"display === 'multi' && shouldShowExpandButton\"\n class=\"btn snippet-btn--expand\"\n (click)=\"toggleSnippetExpansion()\"\n type=\"button\">\n <span class=\"snippet-btn--text\">{{expanded ? 'Mostrar menos' : 'Mostrar mas'}}\n <suka-icon icon=\"chevron-down\"></suka-icon>\n </span>\n </button>\n </ng-template>\n <ng-template #codeTemplate>\n <code #code [innerHtml]=\"codeHtml\"></code>\n </ng-template>\n `\n})\n// tslint:disable-next-line: component-class-suffix\nexport class CodeSnippet implements OnInit {\n /**\n * Variable used for creating unique ids for code-snippet components.\n */\n static codeSnippetCount = 0;\n public codeHtml: SafeHtml;\n\n /**\n * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n */\n @Input() display: SnippetType = SnippetType.single;\n /**\n * Text displayed in the tooltip when user clicks button to copy code.\n *\n */\n @Input() feedbackText = 'Copiado'; // TODO: i18n\n\n /**\n * Code content\n *\n */\n @Input() content: string;\n\n /**\n * Code highlight\n *\n */\n @Input() highlight: false;\n\n /**\n * Snippet highlight language\n *\n */\n @Input() language: SnippetLanguage = SnippetLanguage.javascript;\n\n /**\n * Time in miliseconds to keep the feedback tooltip displayed.\n *\n */\n @Input() feedbackTimeout = 3000;\n\n /**\n * Set to `true` to show an expanded code snippet.\n */\n @HostBinding('class.snippet--expand') @Input() expanded = false;\n\n /**\n * Set to `true` to show a loading code snippet.\n */\n @HostBinding('class.skeleton') @Input() skeleton = false;\n\n @HostBinding('class.snippet') snippetClass = true;\n @HostBinding('class.snippet--single') get snippetSingleClass() {\n return this.display === SnippetType.single;\n }\n @HostBinding('class.snippet--multi') get snippetMultiClass() {\n return this.display === SnippetType.multi;\n }\n @HostBinding('class.snippet--inline') get snippetInlineClass() {\n return this.display === SnippetType.inline;\n }\n @HostBinding('class.btn--copy') get btnCopyClass() {\n return this.display === SnippetType.inline;\n }\n\n @HostBinding('style.display') get displayStyle() {\n return this.display !== SnippetType.inline ? 'block' : null;\n }\n @HostBinding('attr.type') get attrType() {\n return this.display === SnippetType.inline ? 'button' : null;\n }\n\n @ViewChild('code', { static: false }) code;\n\n get shouldShowExpandButton() {\n return this.code ? this.code.nativeElement.getBoundingClientRect().height > 255 : false;\n }\n\n showFeedback = false;\n\n /**\n * Creates an instance of CodeSnippet.\n */\n constructor(private sanitizer: DomSanitizer) {\n CodeSnippet.codeSnippetCount++;\n }\n\n ngOnInit() {\n if (this.highlight) {\n this.content = prism.highlight(this.content, prism.languages[this.language], this.language);\n }\n\n this.codeHtml = this.sanitizer.sanitize(SecurityContext.HTML, this.content);\n }\n\n toggleSnippetExpansion() {\n this.expanded = !this.expanded;\n }\n\n /**\n * Copies the code from the `<code>` block to clipboard.\n */\n public copyCode() {\n // create invisible, uneditable textarea with our code in it\n const textarea = document.createElement('textarea');\n textarea.value = this.code.nativeElement.innerText || this.code.nativeElement.textContent;\n textarea.setAttribute('readonly', '');\n textarea.style.position = 'absolute';\n textarea.style.right = '-99999px';\n document.body.appendChild(textarea);\n\n // save user selection\n const selected = document.getSelection().rangeCount ? document.getSelection().getRangeAt(0) : null;\n\n // copy to clipboard\n textarea.select();\n document.execCommand('copy');\n\n // remove textarea\n document.body.removeChild(textarea);\n\n // restore user selection\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n }\n }\n\n /**\n * On copy button click, copies the code and shows feedback.\n */\n onCopyButtonClicked() {\n this.copyCode();\n\n this.showFeedback = true;\n\n setTimeout(() => {\n this.showFeedback = false;\n }, this.feedbackTimeout);\n }\n\n /**\n * Inline code snippet acts as button and makes the whole component clickable.\n *\n * This handles clicks in that case.\n */\n @HostListener('click')\n hostClick() {\n if (this.display !== SnippetType.inline) {\n return;\n }\n\n this.onCopyButtonClicked();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { TooltipModule } from '../tooltip/tooltip.module';\nimport { IconModule } from '../icon/icon.module';\n\n// imports\nimport { CodeSnippet } from './code-snippet.component';\n\n// exports\nexport {\n CodeSnippet,\n SnippetLanguage,\n SnippetType,\n} from './code-snippet.component';\n\n@NgModule({\n declarations: [\n CodeSnippet,\n ],\n exports: [\n CodeSnippet,\n ],\n imports: [\n CommonModule,\n FormsModule,\n TooltipModule,\n IconModule,\n ]\n})\nexport class CodeSnippetModule { }\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'suka-empty-state',\n template: `\n <div class=\"empty-state\">\n <div class=\"empty-state__description\">\n <h3 class=\"empty-state__heading\">{{heading}}</h3>\n\n <div class=\"empty-state__content\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"primaryActionLabel\"\n class=\"empty-state__actions\"\n >\n <suka-button-group>\n <button\n sukaButton=\"primary\"\n (click)=\"onClick('primary')\"\n >\n {{primaryActionLabel}}\n </button>\n <button\n *ngIf=\"secondaryActionLabel\"\n sukaButton=\"plain\"\n (click)=\"onClick('secondary')\"\n >\n {{secondaryActionLabel}}\n </button>\n </suka-button-group>\n </div>\n </div>\n\n <div class=\"empty-state__image\">\n <img *ngIf=\"imgSrc\" [src]=\"imgSrc\" />\n <suka-icon *ngIf=\"!imgSrc\" icon=\"inbox\"></suka-icon>\n </div>\n </div>\n `\n})\nexport class EmptyState {\n /**\n * Heading content.\n */\n @Input() heading = '';\n\n /**\n * Sets an image url for the avatar. If it is set, it displays instead of the empty icon.\n */\n @Input() imgSrc: string;\n\n /**\n * Primary action label content\n */\n @Input() primaryActionLabel: string;\n /**\n * Emits the primary action event.\n */\n @Output() primaryAction = new EventEmitter();\n\n /**\n * Secondary action label content\n */\n @Input() secondaryActionLabel: string;\n /**\n * Emits the secondary action event.\n */\n @Output() secondaryAction = new EventEmitter();\n\n /**\n * On button click, emits a primary o secondary action event accordingly\n */\n onClick(type: string) {\n if (type === 'primary') {\n this.primaryAction.emit('primary');\n }\n\n if (type === 'secondary') {\n this.secondaryAction.emit('secondary');\n }\n }\n}\n","// modules\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// imports\nimport { EmptyState } from './empty-state.component';\nimport { IconModule } from '../icon/icon.module';\nimport { ButtonModule } from '../button/button.module';\n\n@NgModule({\n declarations: [\n EmptyState,\n ],\n exports: [\n EmptyState,\n ],\n imports: [\n CommonModule,\n IconModule,\n ButtonModule,\n ]\n})\nclass EmptyStateModule { }\n\nexport { EmptyState, EmptyStateModule };\n","export function rgbToHsv(r, g, b) {\n let h;\n let s;\n\n const rabs = r / 255;\n const gabs = g / 255;\n const babs = b / 255;\n const v = Math.max(rabs, gabs, babs);\n const diff = v - Math.min(rabs, gabs, babs);\n const diffc = c => (v - c) / 6 / diff + 1 / 2;\n const percentRoundFn = num => Math.round(num * 100) / 100;\n if (diff === 0) {\n h = s = 0;\n } else {\n s = diff / v;\n const rr = diffc(rabs);\n const gg = diffc(gabs);\n const bb = diffc(babs);\n\n if (rabs === v) {\n h = bb - gg;\n } else if (gabs === v) {\n h = (1 / 3) + rr - bb;\n } else if (babs === v) {\n h = (2 / 3) + gg - rr;\n }\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n return {\n h: Math.round(h * 360),\n s: percentRoundFn(s * 100),\n v: percentRoundFn(v * 100)\n };\n}\n\nexport function hexToRgb(hex) {\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, (m, r, g, b) => {\n return r + r + g + g + b + b;\n });\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport function rgbToHex(r, g, b) {\n function hex(x) {\n return ('0' + parseInt(x).toString(16)).slice(-2);\n }\n return '#' + hex(r) + hex(g) + hex(b);\n}\n\nexport function hsvToRgb(hue, saturation, value) {\n const h = hue / 60;\n const s = saturation / 100;\n let v = value / 100;\n const hi = Math.floor(h) % 6;\n\n const f = h - Math.floor(h);\n const p = 255 * v * (1 - s);\n const q = 255 * v * (1 - (s * f));\n const t = 255 * v * (1 - (s * (1 - f)));\n v *= 255;\n\n let rgbArray;\n switch (hi) {\n case 0:\n rgbArray = [v, t, p];\n break;\n case 1:\n rgbArray = [q, v, p];\n break;\n case 2:\n rgbArray = [p, v, t];\n break;\n case 3:\n rgbArray = [p, q, v];\n break;\n case 4:\n rgbArray = [t, p, v];\n break;\n case 5:\n rgbArray = [v, p, q];\n break;\n }\n\n return {\n r: rgbArray[0],\n g: rgbArray[1],\n b: rgbArray[2],\n };\n}\n\nexport function hsvToHex(h, s, v) {\n const rgbColor = hsvToRgb(h, s, v);\n return rgbToHex(rgbColor.r, rgbColor.g, rgbColor.b);\n}\n","import { Component, HostBinding, Input, OnInit, Output, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';\nimport { hexToRgb, rgbToHsv, hsvToHex } from './color-utils';\n\n@Component({\n selector: 'suka-color-picker',\n template: `\n <div class=\"input-wrapper\" *ngIf=\"showInput\">\n <input\n [ngModel]=\"color\"\n (ngModelChange)=\"onColorChange($event)\"\n />\n <div\n class=\"color-div\"\n [ngStyle]=\"{'background-color': color || 'white'}\"\n ></div>\n </div>\n <div class=\"color-wrapper\">\n <suka-color-palette\n [hue]=\"hue\"\n [color]=\"color\"\n (colorChange)=\"onColorSelect($event)\"\n ></suka-color-palette>\n <suka-color-slider\n [(hue)]=\"hue\"\n ></suka-color-slider>\n </div>\n `\n})\nexport class ColorPicker implements OnInit {\n @HostBinding('class.color-picker') baseClass = true;\n\n @Input() color: string;\n @Output() colorChange = new EventEmitter();\n @Input() showInput = true;\n\n public hue: string;\n public globalHue: string;\n\n ngOnInit() {\n const rgbColor = hexToRgb(this.color);\n if (rgbColor) {\n const hsv = rgbToHsv(rgbColor.r, rgbColor.g, rgbColor.b);\n this.hue = hsvToHex(hsv.h, 100, 100);\n }\n }\n\n onColorChange(event) {\n const rgbColor = hexToRgb(event);\n\n if (rgbColor) {\n const hsv = rgbToHsv(rgbColor.r, rgbColor.g, rgbColor.b);\n this.hue = hsvToHex(hsv.h, 100, 100);\n this.color = event;\n }\n\n this.emitColorChange(this.color);\n }\n\n onColorSelect(event) {\n this.color = event;\n this.emitColorChange(this.color);\n }\n\n private emitColorChange(color) {\n this.colorChange.emit(color);\n }\n}\n","import {\n Component,\n HostBinding,\n ViewChild,\n ElementRef,\n AfterViewInit,\n HostListener,\n Output,\n EventEmitter,\n Input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\n\nimport { hexToRgb, rgbToHsv, rgbToHex } from './color-utils';\n\n@Component({\n selector: 'suka-color-slider',\n template: `\n <canvas\n #canvas\n class=\"color-slider\"\n width=\"20\"\n height=\"250\"\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n >\n </canvas>\n `\n})\nexport class ColorSlider implements OnChanges, AfterViewInit {\n @HostBinding('class.color-slider-wrapper') baseClass = true;\n private ctx: CanvasRenderingContext2D;\n private mousedown = false;\n private selectedHeight: number;\n\n @Input() hue: string;\n @Output() hueChange: EventEmitter<string> = new EventEmitter();\n\n @ViewChild('canvas', {static: false}) canvas: ElementRef<HTMLCanvasElement>;\n\n @HostListener('window:mouseup', ['$event'])\n onMouseUp(evt: MouseEvent) {\n this.mousedown = false;\n }\n\n draw() {\n if (!this.ctx) {\n this.ctx = this.canvas.nativeElement.getContext('2d');\n }\n\n const width = this.canvas.nativeElement.width;\n const height = this.canvas.nativeElement.height;\n this.ctx.clearRect(0, 0, width, height);\n\n const gradient = this.ctx.createLinearGradient(0, 0, 0, height);\n gradient.addColorStop(0, 'rgba(255, 0, 0, 1)');\n gradient.addColorStop(0.17, 'rgba(255, 255, 0, 1)');\n gradient.addColorStop(0.34, 'rgba(0, 255, 0, 1)');\n gradient.addColorStop(0.51, 'rgba(0, 255, 255, 1)');\n gradient.addColorStop(0.68, 'rgba(0, 0, 255, 1)');\n gradient.addColorStop(0.85, 'rgba(255, 0, 255, 1)');\n gradient.addColorStop(1, 'rgba(255, 0, 0, 1)');\n\n this.ctx.beginPath();\n this.ctx.rect(0, 0, width, height);\n this.ctx.fillStyle = gradient;\n this.ctx.fill();\n this.ctx.closePath();\n\n if (this.selectedHeight) {\n this.ctx.beginPath();\n this.ctx.strokeStyle = 'white';\n this.ctx.lineWidth = 4;\n this.ctx.rect(0, this.selectedHeight - 5, width, 10);\n this.ctx.stroke();\n this.ctx.closePath();\n }\n }\n\n onMouseDown(evt: MouseEvent) {\n this.mousedown = true;\n this.selectedHeight = evt.offsetY;\n this.draw();\n this.emitHue(evt.offsetY);\n }\n\n onMouseMove(evt: MouseEvent) {\n if (this.mousedown) {\n this.selectedHeight = evt.offsetY;\n this.draw();\n this.emitHue(evt.offsetY);\n }\n }\n\n emitHue(y: number) {\n if (y < 0) {\n y = 0;\n } else if (y >= 250) {\n y = 249;\n }\n const color = this.getColorAtPosition(y);\n this.hueChange.emit(rgbToHex(color.r, color.g, color.b));\n }\n\n getColorAtPosition(y: number) {\n const imageData = this.ctx.getImageData(5, y, 1, 1).data;\n return {\n r: imageData[0],\n g: imageData[1],\n b: imageData[2],\n };\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.hue && !changes.hue.isFirstChange()) {\n const rgbColor = hexToRgb(this.hue);\n if (rgbColor) {\n const hsvColor = rgbToHsv(rgbColor.r, rgbColor.g, rgbColor.b);\n const hueFactor = hsvColor.h / 360;\n this.selectedHeight = hueFactor * 250;\n this.draw();\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.hue) {\n const rgbColor = hexToRgb(this.hue);\n const hsvColor = rgbToHsv(rgbColor.r, rgbColor.g, rgbColor.b);\n const hueFactor = hsvColor.h / 360;\n this.selectedHeight = hueFactor * 250;\n }\n\n this.draw();\n }\n}\n","import {\n Component,\n HostBinding,\n ViewChild,\n ElementRef,\n AfterViewInit,\n HostListener,\n Output,\n EventEmitter,\n OnChanges,\n Input,\n SimpleChanges\n} from '@angular/core';\nimport { hexToRgb, rgbToHex, rgbToHsv, hsvToHex } from './color-utils';\n\n@Component({\n selector: 'suka-color-palette',\n template: `\n <canvas\n #canvas\n class=\"color-palette\"\n width=\"250\"\n height=\"250\"\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n >\n </canvas>\n `\n})\nexport class ColorPalette implements AfterViewInit, OnChanges {\n @HostBinding('class.color-palette-container') baseClass = true;\n\n @Input() hue: string;\n\n @Input() color: string;\n @Output() colorChange: EventEmitter<string> = new EventEmitter(true);\n\n @ViewChild('canvas', {static: false}) canvas: ElementRef<HTMLCanvasElement>;\n\n private ctx: CanvasRenderingContext2D;\n\n private mousedown = false;\n\n public selectedPosition: { x: number; y: number };\n\n draw() {\n if (!this.ctx) {\n this.ctx = this.canvas.nativeElement.getContext('2d');\n }\n\n const width = this.canvas.nativeElement.width;\n const height = this.canvas.nativeElement.height;\n\n if (this.hue) {\n this.ctx.fillStyle = this.hue;\n } else {\n this.ctx.fillStyle = '#ff0000';\n }\n\n this.ctx.fillRect(0, 0, width, height);\n\n const whiteGrad = this.ctx.createLinearGradient(0, 0, width, 0);\n whiteGrad.addColorStop(0, 'rgba(255,255,255,1)');\n whiteGrad.addColorStop(1, 'rgba(255,255,255,0)');\n\n this.ctx.fillStyle = whiteGrad;\n this.ctx.fillRect(0, 0, width, height);\n\n const blackGrad = this.ctx.createLinearGradient(0, 0, 0, height);\n blackGrad.addColorStop(0, 'rgba(0,0,0,0)');\n blackGrad.addColorStop(1, 'rgba(0,0,0,1)');\n\n this.ctx.fillStyle = blackGrad;\n this.ctx.fillRect(0, 0, width, height);\n\n if (this.selectedPosition) {\n this.ctx.strokeStyle = 'white';\n this.ctx.fillStyle = 'white';\n this.ctx.beginPath();\n this.ctx.arc(\n this.selectedPosition.x,\n this.selectedPosition.y,\n 5,\n 0,\n 2 * Math.PI\n );\n this.ctx.lineWidth = 3;\n this.ctx.stroke();\n this.ctx.closePath();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.color && !changes.color.isFirstChange()) {\n const rgbColor = hexToRgb(this.color);\n\n if (rgbColor) {\n const hsv = rgbToHsv(rgbColor.r, rgbColor.g, rgbColor.b);\n this.selectedPosition = {\n x: (hsv.s * 250) / 100,\n y: 250 - (hsv.v * 250) / 100\n };\n this.draw();\n }\n } else if (changes.hue && !changes.hue.isFirstChange()) {\n this.draw();\n\n const pos = this.selectedPosition;\n\n if (pos) {\n this.colorChange.emit(this.getColorAtPosition(pos.x, pos.y));\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.color) {\n const rgbColor = hexToRgb(this.color);\n\n if (rgbColor) {\n const hsv = rgbToHsv(rgbColor.r, rgbColor.g, rgbColor.b);\n this.selectedPosition = {\n x: (hsv.s * 250) / 100,\n y: 250 - (hsv.v * 250) / 100\n };\n }\n }\n this.draw();\n }\n\n @HostListener('window:mouseup', ['$event'])\n onMouseUp(evt: MouseEvent) {\n this.mousedown = false;\n }\n\n onMouseDown(evt: MouseEvent) {\n this.mousedown = true;\n const xPos = evt.offsetX < 0 ? 0 : evt.offsetX >= 250 ? 249 : evt.offsetX;\n const yPos = evt.offsetY < 0 ? 0 : evt.offsetY >= 250 ? 249 : evt.offsetY;\n\n this.selectedPosition = {\n x: xPos,\n y: yPos,\n };\n this.draw();\n this.emitColor(xPos, yPos);\n }\n\n onMouseMove(evt: MouseEvent) {\n if (this.mousedown) {\n const xPos = evt.offsetX < 0 ? 0 : evt.offsetX >= 250 ? 249 : evt.offsetX;\n const yPos = evt.offsetY < 0 ? 0 : evt.offsetY >= 250 ? 249 : evt.offsetY;\n\n this.selectedPosition = {\n x: xPos,\n y: yPos,\n };\n this.draw();\n this.emitColor(xPos, yPos);\n }\n }\n\n emitColor(x: number, y: number) {\n const rgbaColor = this.getColorAtPosition(x, y);\n this.colorChange.emit(rgbaColor);\n }\n\n getColorAtPosition(x: number, y: number) {\n const imageData = this.ctx.getImageData(x, y, 1, 1).data;\n return rgbToHex(imageData[0], imageData[1], imageData[2]);\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n EventEmitter,\n Output,\n TemplateRef,\n ViewChild,\n ElementRef,\n ViewContainerRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { OverlayRef, Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'suka-color-input',\n template: `\n <label *ngIf=\"skeleton && label\" class=\"label skeleton\"></label>\n <label *ngIf=\"!skeleton && label\" [for]=\"id\" class=\"label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n <ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n </label>\n <div *ngIf=\"!skeleton && helperText\" class=\"form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n </div>\n <div\n data-color-input\n [attr.data-invalid]=\"(invalid ? true : null)\"\n [attr.data-valid]=\"(valid ? true : null)\"\n class=\"color-input\"\n [ngClass]=\"{\n 'color-input--nolabel': !label,\n 'color-input--helpertext': helperText,\n 'skeleton' : skeleton,\n 'color-input--disabled': disabled\n }\">\n <div class=\"color-input__input-wrapper\">\n <div\n class=\"color-input__color-preview\"\n *ngIf=\"value\"\n [ngStyle]=\"{'background-color': value || 'white'}\"\n (click)=\"openColorDialog()\"\n ></div>\n <svg\n class=\"color-input__color-preview-icon\"\n *ngIf=\"!value\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"openColorDialog()\"\n >\n <path d=\"M8 0C3.55556 0 0 3.55556 0 8C0 12.4444 3.55556 16 8 16C8.71111 16 9.33333 15.3778 9.33333 14.6667C9.33333 14.3111 9.24444 14.0444 8.97778 13.7778C8.8 13.5111 8.62222 13.2444 8.62222 12.8889C8.62222 12.1778 9.24448 11.5556 9.95556 11.5556H11.5556C14.0444 11.5556 16 9.6 16 7.11111C16 3.2 12.4444 0 8 0ZM3.11111 8C2.4 8 1.77778 7.37778 1.77778 6.66667C1.77778 5.95556 2.4 5.33333 3.11111 5.33333C3.82222 5.33333 4.44444 5.95556 4.44444 6.66667C4.44444 7.37778 3.82222 8 3.11111 8ZM5.77778 4.44444C5.06667 4.44444 4.44444 3.82222 4.44444 3.11111C4.44444 2.4 5.06667 1.77778 5.77778 1.77778C6.48889 1.77778 7.11111 2.4 7.11111 3.11111C7.11111 3.82222 6.48889 4.44444 5.77778 4.44444ZM10.2222 4.44444C9.51111 4.44444 8.88889 3.82222 8.88889 3.11111C8.88889 2.4 9.51111 1.77778 10.2222 1.77778C10.9333 1.77778 11.5556 2.4 11.5556 3.11111C11.5556 3.82222 10.9333 4.44444 10.2222 4.44444ZM12.8889 8C12.1778 8 11.5556 7.37778 11.5556 6.66667C11.5556 5.95556 12.1778 5.33333 12.8889 5.33333C13.6 5.33333 14.2222 5.95556 14.2222 6.66667C14.2222 7.37778 13.6 8 12.8889 8Z\" fill=\"#677784\"/>\n </svg>\n\n <input\n #origin\n type=\"text\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (focus)=\"openColorDialog()\"\n disabled=\"true\"\n (change)=\"onColorInputChange($event)\"/>\n\n <suka-icon *ngIf=\"!skeleton && invalid\" icon=\"alert-circle\" class=\"color-input__invalid\"></suka-icon>\n <suka-icon *ngIf=\"!skeleton && valid\" icon=\"check\" class=\"color-input__valid\"></suka-icon>\n </div>\n <div *ngIf=\"invalid\" class=\"form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{invalidText}}</ng-container>\n <ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n </div>\n </div>\n\n <ng-template #colorPickerDialog>\n <div class=\"color-picker-dialog\">\n <suka-color-picker [color]=\"value\" (colorChange)=\"onColorChange($event)\">\n </suka-color-picker>\n </div>\n </ng-template>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ColorInput,\n multi: true\n }\n ]\n})\nexport class ColorInput implements ControlValueAccessor {\n /**\n * Variable used for creating unique ids for color input components.\n */\n static colorInputCount = 0;\n private _overlayRef: OverlayRef;\n private _portal: TemplatePortal<any>;\n\n @HostBinding('class.form-item') containerClass = true;\n /**\n * Set to `true` for a disabled color input.\n */\n @Input() disabled = false;\n /**\n * Set to `true` for a loading color input component.\n */\n @Input() skeleton = false;\n /**\n * Set to `true` for an invalid color input component.\n */\n @Input() invalid = false;\n /**\n * Set to `true` for a valid color input component.\n */\n @Input() valid = false;\n /**\n * The unique id for the color input component.\n */\n @Input() id = `color-input-${ColorInput.colorInputCount}`;\n /**\n * Reflects the required attribute of the `input` element.\n */\n @Input() required: boolean;\n /**\n * Sets the value attribute on the `input` element.\n */\n @Input() value = '';\n /**\n * Sets the placeholder on the `input` element.\n */\n @Input() placeholder = '';\n /**\n * Sets the text inside the `label` tag.\n */\n @Input() label: string | TemplateRef<any>;\n /**\n * Sets the optional helper text.\n */\n @Input() helperText: string | TemplateRef<any>;\n /**\n * Sets the invalid text.\n */\n @Input() invalidText: string | TemplateRef<any>;\n /**\n * Emits event notifying other classes when a change in state occurs in the input.\n */\n // tslint:disable-next-line: no-output-native\n @Output() change = new EventEmitter();\n\n @ViewChild('origin', { static: false }) origin: ElementRef;\n @ViewChild('colorPickerDialog', { static: false }) dialog: TemplateRef<any>;\n\n /**\n * Creates an instance of `ColorInput`.\n */\n constructor(\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef\n ) {\n ColorInput.colorInputCount++;\n }\n\n /**\n * This is the initial value set to the component\n * @param value The input value.\n */\n public writeValue(value: any) {\n this.value = value;\n }\n\n /**\n * Sets a method in order to propagate changes back to the form.\n */\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control has been touched.\n * @param fn Callback to be triggered when the number input is touched.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state through the model\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /**\n * Called when number input is blurred. Needed to properly implement `ControlValueAccessor`.\n */\n onTouched: () => any = () => { };\n\n /**\n * Method set in `registerOnChange` to propagate changes back to the form.\n */\n propagateChange = (_: any) => { };\n\n /**\n * Creates a class of `NumberChange` to emit the change in the `Number`.\n */\n emitChangeEvent(): void {\n this.change.emit(this.value);\n this.propagateChange(this.value);\n }\n\n onColorChange(value) {\n this.value = value;\n this.emitChangeEvent();\n }\n\n onColorInputChange(event) {\n this.value = event.target.value;\n this.emitChangeEvent();\n }\n\n /**\n * Opens the color picker dialog\n */\n openColorDialog() {\n if (!this._overlayRef) {\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this.origin)\n .withPositions([{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n }]);\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n });\n\n this._overlayRef.backdropClick().subscribe(() => this._overlayRef.detach());\n this._portal = new TemplatePortal(this.dialog, this._viewContainerRef);\n\n }\n\n this._overlayRef.attach(this._portal);\n }\n\n /**\n * Closes the color picker dialog\n */\n closeColorDialog() {\n this._overlayRef.detach();\n }\n\n /**\n * Checks if it is a template\n */\n public isTemplate(value) {\n return value instanceof TemplateRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { ColorPicker } from './color-picker.component';\nimport { ColorSlider } from './color-slider.component';\nimport { ColorPalette } from './color-palette.component';\nimport { ColorInput } from './color-picker-input.component';\nimport { IconModule } from '../icon/icon.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n declarations: [\n ColorPicker,\n ColorSlider,\n ColorPalette,\n ColorInput,\n ],\n exports: [\n ColorPicker,\n ColorSlider,\n ColorPalette,\n ColorInput,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n FormsModule,\n IconModule,\n ],\n entryComponents: [\n ColorPicker,\n ],\n})\nclass ColorPickerModule { }\n\nexport {\n ColorPickerModule,\n ColorPicker,\n ColorSlider,\n ColorPalette,\n ColorInput,\n};\n"]}
\No newline at end of file