@rxdi/ui-kit
Version:
UI Components for building graphql-server website
120 lines (110 loc) • 3.75 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SpinnerComponent = void 0;
const lit_html_1 = require("@rxdi/lit-html");
const spinner_svg_1 = require("./spinner.svg");
/**
* @customElement rx-spinner
*/
let SpinnerComponent = class SpinnerComponent extends lit_html_1.LitElement {
constructor() {
super(...arguments);
this.speed = 2.4;
this.color = '#666';
this.width = 30;
this.height = 30;
this.stroke = 1;
}
};
__decorate([
(0, lit_html_1.property)({ type: Number }),
__metadata("design:type", Object)
], SpinnerComponent.prototype, "speed", void 0);
__decorate([
(0, lit_html_1.property)({ type: String }),
__metadata("design:type", Object)
], SpinnerComponent.prototype, "color", void 0);
__decorate([
(0, lit_html_1.property)({ type: Number }),
__metadata("design:type", Object)
], SpinnerComponent.prototype, "width", void 0);
__decorate([
(0, lit_html_1.property)({ type: Number }),
__metadata("design:type", Object)
], SpinnerComponent.prototype, "height", void 0);
__decorate([
(0, lit_html_1.property)({ type: Number }),
__metadata("design:type", Object)
], SpinnerComponent.prototype, "stroke", void 0);
SpinnerComponent = __decorate([
(0, lit_html_1.Component)({
selector: 'rx-spinner',
style: (0, lit_html_1.css) `
svg {
vertical-align: middle;
}
.uk-spinner > * > * {
stroke-dasharray: 88px;
stroke-dashoffset: 0;
transform-origin: center;
stroke-linecap: round;
}
@keyframes uk-spinner-rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(270deg);
}
}
.uk-spinner > * > * {
stroke-dasharray: 88px;
stroke-dashoffset: 0;
transform-origin: center;
stroke-linecap: round;
}
@keyframes uk-spinner-dash {
0% {
stroke-dashoffset: 88px;
}
50% {
stroke-dashoffset: 22px;
transform: rotate(135deg);
}
100% {
stroke-dashoffset: 88px;
transform: rotate(450deg);
}
}
`,
template() {
return (0, lit_html_1.html) `
<style>
.uk-spinner > * {
animation: uk-spinner-rotate ${(0, lit_html_1.unsafeCSS)(this.speed)}s linear infinite;
}
.uk-spinner > * > * {
stroke-width: var(--spinner-stroke-width, ${(0, lit_html_1.unsafeCSS)(this.stroke)});
animation: uk-spinner-dash ${(0, lit_html_1.unsafeCSS)(this.speed)}s ease-in-out
infinite;
stroke: var(--spinner-stroke-color, ${(0, lit_html_1.unsafeCSS)(this.color)});
}
</style>
<div class="uk-icon uk-spinner" part="container">
${(0, spinner_svg_1.Spinner)(this.width, this.height)}
</div>
`;
}
})
], SpinnerComponent);
exports.SpinnerComponent = SpinnerComponent;
//# sourceMappingURL=spinner.component.js.map