UNPKG

817 kBSource Map (JSON)View Raw
1{"version":3,"file":"kushki-ng-suka.js","sources":["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-utils.ts","ng://@kushki/ng-suka/lib/pagination/pagination.component.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/sukaRangePlugin.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","ng://@kushki/ng-suka/lib/sheet/sheet-ref.ts","ng://@kushki/ng-suka/lib/sheet/sheet.tokens.ts","ng://@kushki/ng-suka/lib/sheet/sheet-container.component.ts","ng://@kushki/ng-suka/lib/sheet/sheet.service.ts","ng://@kushki/ng-suka/lib/sheet/sheet.directive.ts","ng://@kushki/ng-suka/lib/sheet/sheet.module.ts","ng://@kushki/ng-suka/lib/calendar-day-picker/calendar-day-picker.component.ts","ng://@kushki/ng-suka/lib/calendar-day-picker/calendar-day-overlay.component.ts","ng://@kushki/ng-suka/lib/calendar-day-picker/calendar-day-picker.module.ts"],"sourcesContent":["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 throw new 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 TemplateRef,\n ChangeDetectorRef,\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 {\n /**\n * Sets the tab title.\n */\n @Input() title: string | TemplateRef<any>;\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 | TemplateRef<any>>();\n\n constructor(private cdRef: ChangeDetectorRef) { }\n\n /**\n * Activates tab item\n */\n activate(): void {\n this.active = true;\n this.cdRef.detectChanges();\n this.selected.emit(this.title);\n }\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n HostBinding,\n Input,\n TemplateRef,\n} from '@angular/core';\n\nimport { TabItem } from './tab-item.component';\n\n@Component({\n selector: 'suka-tabs',\n template: `\n <div class=\"tabs-wrapper\">\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\">\n <ng-container *ngIf=\"!isTemplate(tab.title)\">{{tab.title}}</ng-container>\n <ng-template *ngIf=\"isTemplate(tab.title)\" [ngTemplateOutlet]=\"tab.title\"></ng-template>\n </span>\n </button>\n </li>\n </ul>\n </div>\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 && this.tabs.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.activate();\n }\n\n public isTemplate(value) {\n return value instanceof TemplateRef;\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.noop(),\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","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","// 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 <span class=\"d-none d-sm-inline-block\">Anterior</span>\n </button>\n <div class=\"suka-pagination-actions__numbers\">\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 </div>\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 <span class=\"d-none d-sm-inline-block\">Siguiente</span>\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","// 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","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(\n protected domSanitizer: DomSanitizer,\n @Optional() protected router: Router\n ) {\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 group\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\n [breadcrumb]=\"breadcrumb\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [actions]=\"actions\"\n ></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 === '' || !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 *ngIf=\"!timePicker\"\n >\n </suka-icon>\n <suka-icon\n icon=\"clock\"\n class=\"date-picker__icon\"\n *ngIf=\"timePicker\"\n >\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 * Sets a time picker icon for input\n */\n @Input() timePicker = false;\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 */\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","// tslint:disable: variable-name\n\nimport { Plugin, Options } from 'flatpickr/dist/types/options';\nimport { Instance } from 'flatpickr/dist/types/instance';\n\nexport interface Config {\n input?: string | HTMLInputElement;\n position?: 'left';\n}\n\ndeclare global {\n interface Window {\n rangePlugin: (config?: Config) => void;\n }\n\n interface HTMLElement {\n flatpickr: (config?: Options) => Instance;\n _flatpickr?: Instance;\n }\n}\n\nfunction rangePlugin(config: Config = {}): Plugin {\n return function(fp) {\n let dateFormat = '';\n let secondInput: HTMLInputElement;\n let _secondInputFocused: boolean;\n let _prevDates: Date[];\n\n const createSecondInput = () => {\n if (config.input) {\n secondInput =\n config.input instanceof Element\n ? config.input\n : (window.document.querySelector(config.input) as HTMLInputElement);\n } else {\n secondInput = fp._input.cloneNode() as HTMLInputElement;\n secondInput.removeAttribute('id');\n secondInput._flatpickr = undefined;\n }\n\n if (secondInput.value) {\n const parsedDate = fp.parseDate(secondInput.value);\n\n if (parsedDate) { fp.selectedDates.push(parsedDate); }\n }\n\n secondInput.setAttribute('data-fp-omit', '');\n\n fp._bind(secondInput, ['focus', 'click'], () => {\n if (fp.selectedDates[1]) {\n fp.latestSelectedDateObj = fp.selectedDates[1];\n fp._setHoursFromDate(fp.selectedDates[1]);\n fp.jumpToDate(fp.selectedDates[1]);\n }\n\n _secondInputFocused = true;\n fp.isOpen = false;\n fp.open(\n undefined,\n config.position === 'left' ? fp._input : secondInput\n );\n });\n\n fp._bind(fp._input, ['focus', 'click'], (e: FocusEvent) => {\n e.preventDefault();\n fp.isOpen = false;\n fp.open();\n });\n\n if (fp.config.allowInput) {\n fp._bind(secondInput, 'keydown', (e: KeyboardEvent) => {\n if ((e as KeyboardEvent).key === 'Enter') {\n fp.setDate(\n [fp.selectedDates[0], secondInput.value],\n true,\n dateFormat\n );\n secondInput.click();\n }\n });\n }\n\n if (!config.input) {\n fp._input.parentNode &&\n fp._input.parentNode.insertBefore(secondInput, fp._input.nextSibling);\n }\n };\n\n const plugin = {\n onParseConfig() {\n fp.config.mode = 'range';\n\n dateFormat = fp.config.altInput\n ? fp.config.altFormat\n : fp.config.dateFormat;\n },\n\n onReady() {\n createSecondInput();\n fp.config.ignoredFocusElements.push(secondInput);\n if (fp.config.allowInput) {\n fp._input.removeAttribute('readonly');\n secondInput.removeAttribute('readonly');\n } else {\n secondInput.setAttribute('readonly', 'readonly');\n }\n\n fp._bind(fp._input, 'focus', () => {\n fp.latestSelectedDateObj = fp.selectedDates[0];\n fp._setHoursFromDate(fp.selectedDates[0]);\n _secondInputFocused = false;\n fp.jumpToDate(fp.selectedDates[0]);\n });\n\n if (fp.config.allowInput) {\n fp._bind(fp._input, 'keydown', (e: KeyboardEvent) => {\n if ((e as KeyboardEvent).key === 'Enter') {\n fp.setDate(\n [fp._input.value, fp.selectedDates[1]],\n true,\n dateFormat\n );\n }\n });\n }\n\n fp.setDate(fp.selectedDates, false);\n plugin.onValueUpdate(fp.selectedDates);\n fp.loadedPlugins.push('range');\n },\n\n onPreCalendarPosition() {\n if (_secondInputFocused) {\n fp._positionElement = secondInput;\n setTimeout(() => {\n fp._positionElement = fp._input;\n }, 0);\n }\n },\n\n onChange() {\n if (!fp.selectedDates.length) {\n setTimeout(() => {\n if (fp.selectedDates.length) { return; }\n\n secondInput.value = '';\n _prevDates = [];\n }, 10);\n }\n\n if (_secondInputFocused) {\n setTimeout(() => {\n secondInput.focus();\n }, 0);\n }\n },\n\n onDestroy() {\n if (!config.input) {\n secondInput.parentNode &&\n secondInput.parentNode.removeChild(secondInput);\n }\n },\n\n onValueUpdate(selDates: Date[]) {\n if (!secondInput) { return; }\n\n _prevDates =\n !_prevDates || selDates.length >= _prevDates.length\n ? [...selDates]\n : _prevDates;\n\n let newDates: Date[];\n\n if (_prevDates.length > selDates.length) {\n const newSelectedDate = selDates[0];\n newDates = _secondInputFocused\n ? [_prevDates[0], newSelectedDate]\n : [newSelectedDate, _prevDates[1]];\n\n if (newDates[0].getTime() > newDates[1].getTime()) {\n if (_secondInputFocused) {\n newDates[0] = newDates[1];\n } else {\n newDates[1] = newDates[0];\n }\n }\n\n fp.setDate(newDates, false);\n _prevDates = [...newDates];\n } else if (selDates.length === 2) {\n newDates = selDates;\n fp.setDate(newDates, false);\n _prevDates = [...newDates];\n\n const changeEvent = document.createEvent('HTMLEvents');\n changeEvent.initEvent('change', false, true);\n\n fp._input.dispatchEvent(changeEvent);\n }\n\n [fp._input.value = '', secondInput.value = ''] = fp.selectedDates.map(\n d => fp.formatDate(d, dateFormat)\n );\n },\n };\n\n return plugin;\n };\n}\n\nexport default rangePlugin;\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 './sukaRangePlugin';\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 'date-picker--range-with-time' : range && hasTime,\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 [timePicker]=\"hasTime && noCalendar\"\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 [timePicker]=\"hasTime && noCalendar\"\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 * Defines if time selector should be present. Please define dateFormat accordingly. i.e.: \"d/m/Y H:i\"\n *\n * For reference: https://flatpickr.js.org/formatting/\n */\n @Input() hasTime = false;\n\n /**\n * Disables calendar input. Useful for time picker functionality. Pair it with a time related format accordingly. i.e.: \"H:i\"\n */\n @Input() noCalendar = false;\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 enableTime: this.hasTime,\n noCalendar: this.noCalendar,\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 * Suka 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=\"mobile-progress\">\n <div class=\"mobile-progress__label\">\n <h3 class=\"mobile-progress__label__current-step\">{{currentStep().label}}</h3>\n <p class=\"mobile-progress__label__next-step\" *ngIf=\"getCurrentStepIndex() + 1 < steps.length\">Próximo paso: {{nextStep().label}}</p>\n <p class=\"mobile-progress__label__next-step\" *ngIf=\"getCurrentStepIndex() + 1 >= steps.length\">Último paso</p>\n </div>\n\n <div\n class=\"mobile-progress__status\"\n [ngClass]=\"[\n 'radial-progress-' + (getCurrentStepIndex() + 1) * 100 / steps.length\n ]\"\n >\n <div class=\"mobile-progress__status-overlay\">\n {{getCurrentStepIndex() + 1}} de {{steps.length}}\n </div>\n </div>\n </div>\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.getNextUncompletedStepIndex()) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Returns the index of the next uncompleted step.\n */\n getNextUncompletedStepIndex(): 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\n /**\n * Returns the current step.\n */\n currentStep() {\n for (const [_, step] of this.steps.entries()) {\n if (step.current) {\n return step;\n }\n }\n\n return null;\n }\n\n /**\n * Returns the next step.\n */\n nextStep() {\n let currentIndex = -1;\n\n for (const [index, step] of this.steps.entries()) {\n if (step.current) {\n currentIndex = index;\n }\n if (currentIndex >= 0 && currentIndex + 1 === index) {\n return step;\n }\n }\n\n return null;\n }\n\n /**\n * Returns the current step index.\n */\n getCurrentStepIndex() {\n for (const [index, step] of this.steps.entries()) {\n if (step.current) {\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 (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"," // tslint:disable: variable-name\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { SheetContainer } from './sheet-container.component';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nexport class SheetRef {\n public componentInstance: SheetContainer;\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 { SheetContent } from './sheet.service';\n\nexport const SHEET_CONTENT_DATA = new InjectionToken<SheetContent>('SHEET_CONTENT_DATA');\n","import { Component, Inject, TemplateRef, HostListener, EventEmitter, OnInit, HostBinding } from '@angular/core';\n\nimport { SheetRef } from './sheet-ref';\nimport { SHEET_CONTENT_DATA } from './sheet.tokens';\nimport { AnimationEvent, trigger, state, style, transition, animate } from '@angular/animations';\n\nconst ESCAPE_KEY = 27;\nconst SHEET_ANIMATION_TIMINGS = '200ms cubic-bezier(0.64, 0, 0.35, 1)';\n\n@Component({\n selector: 'suka-sheet',\n template: `\n <div class=\"sheet\"\n [@slideContent]=\"animationState\"\n (@slideContent.start)=\"onAnimationStart($event)\"\n (@slideContent.done)=\"onAnimationDone($event)\"\n cdkTrapFocus\n >\n <div class=\"sheet__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 sukaButton=\"plain\"\n (click)=\"onClose($event)\"\n >\n <suka-icon icon=\"x\"></suka-icon>\n </button>\n </div>\n <div class=\"sheet__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: {closeSheet: closeSheet.bind(this)}\"\n ></ng-container>\n </ng-container>\n </div>\n <div class=\"sheet__footer\" *ngIf=\"showFooter\">\n <button\n *ngFor=\"let secondaryAction of secondaryActions\"\n sukaButton=\"plain\"\n (click)=\"onAction(secondaryAction.tag)\"\n >\n {{secondaryAction.label}}\n </button>\n\n <button\n *ngFor=\"let primaryAction of primaryActions\"\n sukaButton=\"primary\"\n (click)=\"onAction(primaryAction.tag)\"\n >\n {{primaryAction.label}}\n </button>\n </div>\n </div>\n `,\n animations: [\n trigger('slideContent', [\n state('void', style({ transform: 'translate3d(20rem, 0, 0)', opacity: 0 })),\n state('enter', style({ transform: 'none', opacity: 1 })),\n state('leave', style({ transform: 'translate3d(20rem, 0, 0)', opacity: 0 })),\n transition('* => *', animate(SHEET_ANIMATION_TIMINGS)),\n ])\n ]\n})\nexport class SheetContainer 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.sheet--default') baseClass = true;\n\n constructor(\n public dialogRef: SheetRef,\n @Inject(SHEET_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 closeSheet($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 { SheetRef } from './sheet-ref';\nimport { SHEET_CONTENT_DATA } from './sheet.tokens';\nimport { SheetContainer } from './sheet-container.component';\n\nexport interface SheetContent {\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 SheetConfig {\n closeOnBackdropClick?: boolean;\n panelClass?: string;\n hasBackdrop?: boolean;\n backdropClass?: string;\n content?: SheetContent;\n}\n\nconst DEFAULT_CONFIG: SheetConfig = {\n closeOnBackdropClick: true,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n panelClass: 'modal--default',\n content: null\n};\n\n@Injectable()\nexport class SheetService {\n\n constructor(\n private injector: Injector,\n private overlay: Overlay\n ) { }\n\n open(config: SheetConfig = {}) {\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 SheetRef(overlayRef);\n\n const overlayComponent = this.attachSheetContainer(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: SheetConfig) {\n const overlayConfig = this.getOverlayConfig(config);\n return this.overlay.create(overlayConfig);\n }\n\n private attachSheetContainer(overlayRef: OverlayRef, config: SheetConfig, modalRef: SheetRef) {\n const injector = this.createInjector(config, modalRef);\n\n const containerPortal = new ComponentPortal(SheetContainer, null, injector);\n const containerRef: ComponentRef<SheetContainer> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n private createInjector(config: SheetConfig, modalRef: SheetRef): PortalInjector {\n const injectionTokens = new WeakMap();\n\n injectionTokens.set(SheetRef, modalRef);\n injectionTokens.set(SHEET_CONTENT_DATA, config.content);\n\n return new PortalInjector(this.injector, injectionTokens);\n }\n\n private getOverlayConfig(config: SheetConfig): OverlayConfig {\n const positionStrategy = this.overlay.position()\n .global();\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: config.backdropClass,\n panelClass: config.panelClass,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\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 { SheetService, SheetConfig } from './sheet.service';\nimport { Subscription } from 'rxjs';\n\nconst PRIMARY_ACTION_TAG = 'primaryAction';\nconst SECONDARY_ACTION_TAG = 'secondaryAction';\n\n/**\n * Sheets 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: '[sukaSheet]'\n})\nexport class SheetDirective {\n constructor(protected sheetService: SheetService) { }\n\n /**\n * Set to `true` to show a close button on the top right corner. Defaults to `false`.\n */\n @Input('sheetCloseButton') closeButton = false;\n /**\n * Sets the sheet title.\n */\n @Input('sheetTitle') title: string | TemplateRef<any>;\n /**\n * Sets the body of the sheet.\n */\n @Input('sheetBody') body: string | TemplateRef<any>;\n /**\n * Sets to `false` to stop the sheet from closing when the user clicks on the backdrop. Defaults to `true`.\n */\n @Input('sheetCloseOnBackdropClick') closeOnBackdropClick = true;\n\n /**\n * Callback when the sheet closes.\n */\n @Output('sheetClose') close = new EventEmitter();\n\n /**\n * Sets the sheet secondary action button label.\n */\n @Input('sheetSecondaryActionLabel') secondaryActionLabel: string;\n /**\n * Callback when the secondary action is triggered.\n */\n @Output('sheetSecondaryAction') secondaryAction = new EventEmitter();\n\n /**\n * Sets the sheet primary action button label.\n */\n @Input('sheetPrimaryActionLabel') primaryActionLabel: string;\n /**\n * Callback when the primary action is triggered.\n */\n @Output('sheetPrimaryAction') primaryAction = new EventEmitter();\n\n @HostListener('click')\n onClick() {\n this.openSheet();\n }\n\n /**\n * Opens the sheet.\n */\n private openSheet() {\n const sheetConfig: SheetConfig = {\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 sheetConfig.content.actions = [];\n\n if (this.primaryActionLabel) {\n sheetConfig.content.actions.push({\n label: this.primaryActionLabel,\n type: 'primary',\n tag: PRIMARY_ACTION_TAG\n });\n }\n\n if (this.secondaryActionLabel) {\n sheetConfig.content.actions.push({\n label: this.secondaryActionLabel,\n type: 'secondary',\n tag: SECONDARY_ACTION_TAG\n });\n }\n }\n\n const sheetRef = this.sheetService.open(sheetConfig);\n\n sheetRef.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 { SheetContainer } from './sheet-container.component';\nimport { SheetDirective } from './sheet.directive';\nimport { SheetService } from './sheet.service';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ButtonModule } from '../button/button.module';\n\nexport { SheetContainer } from './sheet-container.component';\nexport { SheetDirective } from './sheet.directive';\nexport { SheetService } from './sheet.service';\nexport { SheetRef } from './sheet-ref';\n\n@NgModule({\n declarations: [\n SheetContainer,\n SheetDirective,\n ],\n exports: [\n SheetContainer,\n SheetDirective,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n ButtonModule,\n IconModule,\n ],\n entryComponents: [\n SheetContainer\n ],\n providers: [\n SheetService,\n ],\n})\nexport class SheetModule { }\n","import { Component, HostBinding, Input, OnInit, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, ViewChild, ElementRef, ViewContainerRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { OverlayRef, Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'suka-calendar-day-picker',\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 [attr.data-invalid]=\"(invalid ? true : null)\"\n [attr.data-valid]=\"(valid ? true : null)\"\n class=\"calendar-day-picker\"\n [ngClass]=\"{\n 'calendar-day-picker--nolabel': !label,\n 'calendar-day-picker--helpertext': helperText,\n 'skeleton' : skeleton,\n 'calendar-day-picker--disabled': disabled\n }\">\n <div class=\"calendar-day-picker__input-wrapper\">\n <input\n #origin\n type=\"text\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (focus)=\"openCalendarDayOverlay()\"\n (change)=\"onInputChange($event)\"/>\n\n <suka-icon *ngIf=\"!skeleton && invalid\" icon=\"alert-circle\" class=\"calendar-day-picker__invalid\"></suka-icon>\n <suka-icon *ngIf=\"!skeleton && valid\" icon=\"check\" class=\"calendar-day-picker__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 #calendarDayOverlay>\n <suka-calendar-day-overlay\n [days]=\"_selectedDays\"\n (daysChange)=\"onDaysChange($event)\"\n >\n </suka-calendar-day-overlay>\n </ng-template>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CalendarDayPicker,\n multi: true\n }\n ]\n})\nexport class CalendarDayPicker implements ControlValueAccessor {\n /**\n * Variable used for creating unique ids for color input components.\n */\n static calendarDayPickerCount = 0;\n private _overlayRef: OverlayRef;\n private _portal: TemplatePortal<any>;\n\n _selectedDays: number[] = [];\n\n @HostBinding('class.calendar-day-picker') baseClass = true;\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 = `calendar-day-picker-${CalendarDayPicker.calendarDayPickerCount}`;\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('calendarDayOverlay', { static: false }) dialog: TemplateRef<any>;\n\n /**\n * Creates an instance of `CalendarDayPicker`.\n */\n constructor(\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef\n ) {\n CalendarDayPicker.calendarDayPickerCount++;\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 if (value) {\n this._selectedDays = JSON.parse('[' + value + ']');\n }\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 onInputChange(days: string) {\n this.value = JSON.parse('[' + days + ']');\n this.emitChangeEvent();\n }\n\n onDaysChange(days: number[]) {\n this.value = days.toString();\n this._selectedDays = days;\n this.emitChangeEvent();\n }\n\n /**\n * Opens the color picker dialog\n */\n openCalendarDayOverlay() {\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 calendar day dialog\n */\n closeCalendarDayOverlay() {\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 { Component, HostBinding, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\n@Component({\n selector: 'suka-calendar-day-overlay',\n template: `\n <div\n *ngFor=\"let day of range(numberOfDays,1)\"\n class=\"calendar-day\"\n (click)=\"toggleDay(day)\"\n [ngClass]=\"{\n 'calendar-day--selected': days.indexOf(day) >= 0\n }\"\n >\n <span class=\"calendar-day__number\">\n {{day}}\n </span>\n </div>\n `\n})\nexport class CalendarDayOverlay {\n @HostBinding('class.calendar-day-picker__overlay') baseClass = true;\n @Input() days: number[] = [];\n @Output() daysChange = new EventEmitter<number[]>();\n numberOfDays = 31;\n\n range(size, startAt = 0) {\n return [...Array(size).keys()].map(i => i + startAt);\n }\n\n toggleDay(day: number) {\n const indexOfDay = this.days.indexOf(day);\n\n if (indexOfDay < 0) {\n this.days.push(day);\n } else {\n this.days.splice(indexOfDay, 1);\n }\n\n this.days.sort((a, b) => {\n return a - b;\n });\n\n this.daysChange.emit(this.days);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IconModule } from '../icon/icon.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { CalendarDayPicker } from './calendar-day-picker.component';\nimport { CalendarDayOverlay } from './calendar-day-overlay.component';\n\n@NgModule({\n declarations: [\n CalendarDayPicker,\n CalendarDayOverlay,\n ],\n exports: [\n CalendarDayPicker,\n CalendarDayOverlay\n ],\n imports: [\n CommonModule,\n OverlayModule,\n FormsModule,\n IconModule,\n ],\n entryComponents: [\n CalendarDayOverlay,\n ],\n})\nclass CalendarDayPickerModule { }\n\nexport {\n CalendarDayPickerModule,\n CalendarDayPicker,\n CalendarDayOverlay,\n};\n"],"names":["ESCAPE_KEY","positions","DEFAULT_CONFIG","observableOf","LayoutModule","prism.highlight","prism.languages","PRIMARY_ACTION_TAG","SECONDARY_ACTION_TAG"],"mappings":"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"}
\No newline at end of file