UNPKG

@freshworks/crayons

Version:
81 lines (76 loc) 3.93 kB
import { attachShadow, h, Host, proxyCustomElement } from '@stencil/core/internal/client'; import { d as defineCustomElement$2, a as defineCustomElement$4 } from './icon.js'; import { d as defineCustomElement$3 } from './spinner.js'; const dragItemCss = ":host{font-family:var(--fw-font-family, -apple-system, blinkmacsystemfont, \"Segoe UI\", roboto, oxygen, ubuntu, cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-box-sizing:border-box;box-sizing:border-box}:host{display:block}.drag-item{display:-ms-flexbox;display:flex;background:#ffffff;border:1px solid #ebeff3;-webkit-box-shadow:0px 2px 4px rgba(18, 52, 77, 0.06);box-shadow:0px 2px 4px rgba(18, 52, 77, 0.06);border-radius:4px;padding:8px 12px;-ms-flex-align:center;align-items:center;margin:8px 0px}.drag-item .drag-item__label{-ms-flex:1 1 auto;flex:1 1 auto}.drag-item .drag-item__prefix{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.drag-item .drag-item__suffix{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.drag-item .drag-icon{padding-right:12px}.drag-item .drag-icon.drag:hover,.drag-item .drag-icon.drag:focus{cursor:-webkit-grab;cursor:grab}"; let DragItem = class extends HTMLElement { constructor() { super(); this.__registerHost(); attachShadow(this); this.draggable = false; /** * Whether the drag is disabled or not. */ this.disabled = false; /** * Whether the drag icon should be visible. */ this.showDragIcon = true; } componentDidLoad() { var _a, _b; if (this.pinned) return; (_a = this.dragIcon) === null || _a === void 0 ? void 0 : _a.addEventListener('mousedown', this.toggleDraggable.bind(this)); (_b = this.dragIcon) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseout', this.toggleDraggable.bind(this)); } toggleDraggable() { this.draggable = !this.draggable; } disconnectedCallback() { var _a, _b; (_a = this.dragIcon) === null || _a === void 0 ? void 0 : _a.removeEventListener('mousedown', this.toggleDraggable); (_b = this.dragIcon) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseout', this.toggleDraggable); } render() { return (h(Host, { draggable: this.draggable }, h("div", { class: { 'drag-item': true, }, draggable: this.draggable }, this.showDragIcon && (h("span", { class: 'drag-item__prefix' }, h("fw-icon", { class: { 'drag-icon': true, 'drag': !this.pinned }, name: !this.pinned ? 'drag' : 'lock', ref: (dragIcon) => (this.dragIcon = dragIcon) }))), h("span", { class: 'drag-item__label' }, h("slot", null)), h("span", { class: 'drag-item__suffix' }, h("slot", { name: 'suffix' }))))); } get el() { return this; } static get style() { return dragItemCss; } }; DragItem = /*@__PURE__*/ proxyCustomElement(DragItem, [1, "fw-drag-item", { "disabled": [4], "showDragIcon": [4, "show-drag-icon"], "pinned": [1], "draggable": [32] }]); function defineCustomElement$1() { const components = ["fw-drag-item", "fw-icon", "fw-spinner", "fw-toast-message"]; components.forEach(tagName => { switch (tagName) { case "fw-drag-item": if (!customElements.get(tagName)) { customElements.define(tagName, DragItem); } break; case "fw-icon": if (!customElements.get(tagName)) { defineCustomElement$4(); } break; case "fw-spinner": if (!customElements.get(tagName)) { defineCustomElement$3(); } break; case "fw-toast-message": if (!customElements.get(tagName)) { defineCustomElement$2(); } break; } }); } const FwDragItem = DragItem; const defineCustomElement = defineCustomElement$1; export { FwDragItem, defineCustomElement };