@alauda-fe/common
Version:
Alauda frontend team common codes.
45 lines • 8.19 kB
JavaScript
import { Injectable, Renderer2, } from '@angular/core';
import { parseRenderItemToPixels } from './utils/grid.utils';
import * as i0 from "@angular/core";
// use Component level service to make placeholder serve for specific gridComponent
export class GridPlaceholderService {
constructor(renderer) {
this.renderer = renderer;
}
updatePlaceHolder(data) {
const { width, height, left, top } = parseRenderItemToPixels(data);
this.placeholder.style.width = width;
this.placeholder.style.height = height;
// translate faster then top/left
this.placeholder.style.transform = `translateX(${left}) translateY(${top})`;
}
createPlaceholderElement(clientRect, elementRef, viewContainerRef, gridItemPlaceholder) {
this.placeholder = this.renderer.createElement('div');
this.placeholder.style.width = `${clientRect.width}px`;
this.placeholder.style.height = `${clientRect.height}px`;
this.placeholder.style.transform = `translateX(${clientRect.left}px) translateY(${clientRect.top}px)`;
this.placeholder.classList.add('grid-item-placeholder');
this.renderer.appendChild(elementRef.nativeElement, this.placeholder);
// create and append custom placeholder if provided.
if (gridItemPlaceholder) {
this.placeholderRef = viewContainerRef.createEmbeddedView(gridItemPlaceholder.templateRef, gridItemPlaceholder.data);
this.placeholderRef.rootNodes.forEach(node => this.placeholder.append(node));
this.placeholderRef.detectChanges();
}
else {
this.placeholder.classList.add('grid-item-placeholder-default');
}
}
// destroys the placeholder element
destroyPlaceholder() {
this.placeholder?.remove();
this.placeholderRef?.destroy();
this.placeholder = this.placeholderRef = null;
}
static { this.ɵfac = function GridPlaceholderService_Factory(t) { return new (t || GridPlaceholderService)(i0.ɵɵinject(i0.Renderer2)); }; }
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridPlaceholderService, factory: GridPlaceholderService.ɵfac }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridPlaceholderService, [{
type: Injectable
}], () => [{ type: i0.Renderer2 }], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wbGFjZWhvbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2dyaWQtbGF5b3V0L2dyaWQtcGxhY2Vob2xkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsVUFBVSxFQUNWLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFN0QsbUZBQW1GO0FBRW5GLE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFBNkIsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFDcEQsaUJBQWlCLENBQUMsSUFBd0I7UUFDeEMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QyxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGNBQWMsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUUsQ0FBQztJQUVELHdCQUF3QixDQUN0QixVQUE4QixFQUM5QixVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsbUJBQWtEO1FBRWxELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsY0FBYyxVQUFVLENBQUMsSUFBSSxrQkFBa0IsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRFLG9EQUFvRDtRQUNwRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDdkQsbUJBQW1CLENBQUMsV0FBVyxFQUMvQixtQkFBbUIsQ0FBQyxJQUFJLENBQ3pCLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSyxDQUFDO0lBQ2pELENBQUM7dUZBakRVLHNCQUFzQjt1RUFBdEIsc0JBQXNCLFdBQXRCLHNCQUFzQjs7aUZBQXRCLHNCQUFzQjtjQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcmlkSXRlbVBsYWNlaG9sZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BsYWNlaG9sZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHcmlkSXRlbUNsaWVudFJlY3QsIEdyaWRJdGVtUmVuZGVyRGF0YSB9IGZyb20gJy4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBwYXJzZVJlbmRlckl0ZW1Ub1BpeGVscyB9IGZyb20gJy4vdXRpbHMvZ3JpZC51dGlscyc7XG5cbi8vIHVzZSBDb21wb25lbnQgbGV2ZWwgc2VydmljZSB0byBtYWtlIHBsYWNlaG9sZGVyIHNlcnZlIGZvciBzcGVjaWZpYyBncmlkQ29tcG9uZW50XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR3JpZFBsYWNlaG9sZGVyU2VydmljZSB7XG4gIC8qKiByZWZlcmVuY2UgdG8gdGhlIHZpZXcgb2YgdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnQuICovXG4gIHByaXZhdGUgcGxhY2Vob2xkZXJSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgbnVsbDtcblxuICAvKiogZWxlbWVudCB0aGF0IGlzIHJlbmRlcmVkIGFzIHBsYWNlaG9sZGVyIHdoZW4gYSBncmlkIGl0ZW0gYmVpbmcgZHJhZ2dlZCAqL1xuICBwbGFjZWhvbGRlcjogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cbiAgdXBkYXRlUGxhY2VIb2xkZXIoZGF0YTogR3JpZEl0ZW1SZW5kZXJEYXRhKSB7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBsZWZ0LCB0b3AgfSA9IHBhcnNlUmVuZGVySXRlbVRvUGl4ZWxzKGRhdGEpO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyLnN0eWxlLmhlaWdodCA9IGhlaWdodDtcbiAgICAvLyB0cmFuc2xhdGUgZmFzdGVyIHRoZW4gdG9wL2xlZnRcbiAgICB0aGlzLnBsYWNlaG9sZGVyLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7bGVmdH0pIHRyYW5zbGF0ZVkoJHt0b3B9KWA7XG4gIH1cblxuICBjcmVhdGVQbGFjZWhvbGRlckVsZW1lbnQoXG4gICAgY2xpZW50UmVjdDogR3JpZEl0ZW1DbGllbnRSZWN0LFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBncmlkSXRlbVBsYWNlaG9sZGVyPzogR3JpZEl0ZW1QbGFjZWhvbGRlckRpcmVjdGl2ZSxcbiAgKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5wbGFjZWhvbGRlci5zdHlsZS53aWR0aCA9IGAke2NsaWVudFJlY3Qud2lkdGh9cHhgO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuc3R5bGUuaGVpZ2h0ID0gYCR7Y2xpZW50UmVjdC5oZWlnaHR9cHhgO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtjbGllbnRSZWN0LmxlZnR9cHgpIHRyYW5zbGF0ZVkoJHtjbGllbnRSZWN0LnRvcH1weClgO1xuICAgIHRoaXMucGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCgnZ3JpZC1pdGVtLXBsYWNlaG9sZGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIpO1xuXG4gICAgLy8gY3JlYXRlIGFuZCBhcHBlbmQgY3VzdG9tIHBsYWNlaG9sZGVyIGlmIHByb3ZpZGVkLlxuICAgIGlmIChncmlkSXRlbVBsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyUmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoXG4gICAgICAgIGdyaWRJdGVtUGxhY2Vob2xkZXIudGVtcGxhdGVSZWYsXG4gICAgICAgIGdyaWRJdGVtUGxhY2Vob2xkZXIuZGF0YSxcbiAgICAgICk7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyUmVmLnJvb3ROb2Rlcy5mb3JFYWNoKG5vZGUgPT5cbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlci5hcHBlbmQobm9kZSksXG4gICAgICApO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCgnZ3JpZC1pdGVtLXBsYWNlaG9sZGVyLWRlZmF1bHQnKTtcbiAgICB9XG4gIH1cblxuICAvLyBkZXN0cm95cyB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudFxuICBkZXN0cm95UGxhY2Vob2xkZXIoKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlcj8ucmVtb3ZlKCk7XG4gICAgdGhpcy5wbGFjZWhvbGRlclJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyUmVmID0gbnVsbCE7XG4gIH1cbn1cbiJdfQ==