ng-cw-v12
Version:
Angular UI Component Library
402 lines (393 loc) • 28.5 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('three'), require('@angular/common')) :
typeof define === 'function' && define.amd ? define('ng-cw-v12/floating-lines-background', ['exports', '@angular/core', 'three', '@angular/common'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["ng-cw-v12"] = global["ng-cw-v12"] || {}, global["ng-cw-v12"]["floating-lines-background"] = {}), global.ng.core, global.three, global.ng.common));
})(this, (function (exports, i0, three, common) { 'use strict';
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
var vertexShader = "\nprecision highp float;\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
var fragmentShader = "\nprecision highp float;\n\nuniform float iTime;\nuniform vec3 iResolution;\nuniform float animationSpeed;\n\nuniform bool enableTop;\nuniform bool enableMiddle;\nuniform bool enableBottom;\n\nuniform int topLineCount;\nuniform int middleLineCount;\nuniform int bottomLineCount;\n\nuniform float topLineDistance;\nuniform float middleLineDistance;\nuniform float bottomLineDistance;\n\nuniform vec3 topWavePosition;\nuniform vec3 middleWavePosition;\nuniform vec3 bottomWavePosition;\n\nuniform vec2 iMouse;\nuniform bool interactive;\nuniform float bendRadius;\nuniform float bendStrength;\nuniform float bendInfluence;\n\nuniform bool parallax;\nuniform float parallaxStrength;\nuniform vec2 parallaxOffset;\n\nuniform vec3 lineGradient[8];\nuniform int lineGradientCount;\n\nconst vec3 BLACK = vec3(0.0);\nconst vec3 PINK = vec3(233.0, 71.0, 245.0) / 255.0;\nconst vec3 BLUE = vec3(47.0, 75.0, 162.0) / 255.0;\n\nmat2 rotate(float r) {\n return mat2(cos(r), sin(r), -sin(r), cos(r));\n}\n\nvec3 background_color(vec2 uv) {\n vec3 col = vec3(0.0);\n\n float y = sin(uv.x - 0.2) * 0.3 - 0.1;\n float m = uv.y - y;\n\n col += mix(BLUE, BLACK, smoothstep(0.0, 1.0, abs(m)));\n col += mix(PINK, BLACK, smoothstep(0.0, 1.0, abs(m - 0.8)));\n return col * 0.5;\n}\n\nvec3 getLineColor(float t, vec3 baseColor) {\n if (lineGradientCount <= 0) {\n return baseColor;\n }\n\n vec3 gradientColor;\n \n if (lineGradientCount == 1) {\n gradientColor = lineGradient[0];\n } else {\n float clampedT = clamp(t, 0.0, 0.9999);\n float scaled = clampedT * float(lineGradientCount - 1);\n int idx = int(floor(scaled));\n float f = fract(scaled);\n int idx2 = min(idx + 1, lineGradientCount - 1);\n\n vec3 c1 = lineGradient[idx];\n vec3 c2 = lineGradient[idx2];\n \n gradientColor = mix(c1, c2, f);\n }\n \n return gradientColor * 0.5;\n}\n\nfloat wave(vec2 uv, float offset, vec2 screenUv, vec2 mouseUv, bool shouldBend) {\n float time = iTime * animationSpeed;\n\n float x_offset = offset;\n float x_movement = time * 0.1;\n float amp = sin(offset + time * 0.2) * 0.3;\n float y = sin(uv.x + x_offset + x_movement) * amp;\n\n if (shouldBend) {\n vec2 d = screenUv - mouseUv;\n float influence = exp(-dot(d, d) * bendRadius); // radial falloff around cursor\n float bendOffset = (mouseUv.y - screenUv.y) * influence * bendStrength * bendInfluence;\n y += bendOffset;\n }\n\n float m = uv.y - y;\n return 0.0175 / max(abs(m) + 0.01, 1e-3) + 0.01;\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 baseUv = (2.0 * fragCoord - iResolution.xy) / iResolution.y;\n baseUv.y *= -1.0;\n \n if (parallax) {\n baseUv += parallaxOffset;\n }\n\n vec3 col = vec3(0.0);\n\n vec3 b = lineGradientCount > 0 ? vec3(0.0) : background_color(baseUv);\n\n vec2 mouseUv = vec2(0.0);\n if (interactive) {\n mouseUv = (2.0 * iMouse - iResolution.xy) / iResolution.y;\n mouseUv.y *= -1.0;\n }\n \n if (enableBottom) {\n for (int i = 0; i < 20; ++i) { // Fixed limit for Loop\n if(i >= bottomLineCount) break;\n float fi = float(i);\n float t = fi / max(float(bottomLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = bottomWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n col += lineCol * wave(\n ruv + vec2(bottomLineDistance * fi + bottomWavePosition.x, bottomWavePosition.y),\n 1.5 + 0.2 * fi,\n baseUv,\n mouseUv,\n interactive\n ) * 0.2;\n }\n }\n\n if (enableMiddle) {\n for (int i = 0; i < 20; ++i) {\n if(i >= middleLineCount) break;\n float fi = float(i);\n float t = fi / max(float(middleLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = middleWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n col += lineCol * wave(\n ruv + vec2(middleLineDistance * fi + middleWavePosition.x, middleWavePosition.y),\n 2.0 + 0.15 * fi,\n baseUv,\n mouseUv,\n interactive\n );\n }\n }\n\n if (enableTop) {\n for (int i = 0; i < 20; ++i) {\n if(i >= topLineCount) break;\n float fi = float(i);\n float t = fi / max(float(topLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = topWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n ruv.x *= -1.0;\n col += lineCol * wave(\n ruv + vec2(topLineDistance * fi + topWavePosition.x, topWavePosition.y),\n 1.0 + 0.2 * fi,\n baseUv,\n mouseUv,\n interactive\n ) * 0.1;\n }\n }\n\n fragColor = vec4(col, 1.0);\n}\n\nvoid main() {\n vec4 color = vec4(0.0);\n mainImage(color, gl_FragCoord.xy);\n gl_FragColor = color;\n}\n";
var MAX_GRADIENT_STOPS = 8;
function hexToVec3(hex) {
var value = hex.trim();
if (value.startsWith('#')) {
value = value.slice(1);
}
var r = 255;
var g = 255;
var b = 255;
if (value.length === 3) {
r = parseInt(value[0] + value[0], 16);
g = parseInt(value[1] + value[1], 16);
b = parseInt(value[2] + value[2], 16);
}
else if (value.length === 6) {
r = parseInt(value.slice(0, 2), 16);
g = parseInt(value.slice(2, 4), 16);
b = parseInt(value.slice(4, 6), 16);
}
return new three.Vector3(r / 255, g / 255, b / 255);
}
var FloatingLinesBackgroundComponent = /** @class */ (function () {
function FloatingLinesBackgroundComponent(ngZone) {
this.ngZone = ngZone;
/** 用于线条渐变着色的十六进制颜色字符串数组(最多 8 种颜色) */
this.ncLinesGradient = [];
/** 显示哪些波形层。可以单独切换显示/隐藏各个波形 */
this.ncEnabledWaves = ['top', 'middle', 'bottom'];
/** 每波形的线条数。单个数值适用于所有波形,也可以使用数组进行逐波形控制(1-20) */
this.ncLineCount = 6;
/** 行间距。单个数值适用于所有波形,或使用数组进行逐个波形的控制(1-100) */
this.ncLineDistance = 5;
/** 顶部波浪的位置和旋转参数 { x, y, rotate } */
this.ncTopWavePosition = { x: 10.0, y: 0.5, rotate: -0.4 };
/** 中部波浪的位置和旋转参数 { x, y, rotate } */
this.ncMiddleWavePosition = { x: 5.0, y: 0.0, rotate: 0.2 };
/** 底部波浪的位置和旋转参数 { x, y, rotate } */
this.ncBottomWavePosition = { x: 2.0, y: -0.7, rotate: -1 };
/** 波浪动画的速度倍增器 */
this.ncAnimationSpeed = 1;
/** 线条是否会对鼠标/指针移动做出反应 */
this._interactive = true;
/** 受鼠标交互影响区域的半径(1-30) */
this.ncBendRadius = 5.0;
/** 与鼠标交互时弯曲效应的强度(-15-15) */
this.ncBendStrength = -0.5;
/** 鼠标移动跟踪的平滑因子(0-1) */
this.ncMouseDamping = 0.05;
/** 启用鼠标移动时的视差效果 */
this._parallax = true;
/** 视差效应的强度 */
this.ncParallaxStrength = 0.2;
/** CSS mix-blend-mode 应用于canvas元素 */
this.ncMixBlendMode = 'unset';
this.clock = new three.Clock();
this.rafId = 0;
this.targetMouse = new three.Vector2(-1000, -1000);
this.currentMouse = new three.Vector2(-1000, -1000);
this.targetInfluence = 0;
this.currentInfluence = 0;
this.targetParallax = new three.Vector2(0, 0);
this.currentParallax = new three.Vector2(0, 0);
this.uniforms = {};
}
Object.defineProperty(FloatingLinesBackgroundComponent.prototype, "ncInteractive", {
get: function () {
return this._interactive;
},
set: function (val) {
this._interactive = val !== null && val !== undefined && val !== false && val !== 'false';
},
enumerable: false,
configurable: true
});
Object.defineProperty(FloatingLinesBackgroundComponent.prototype, "ncParallax", {
get: function () {
return this._parallax;
},
set: function (val) {
this._parallax = val !== null && val !== undefined && val !== false && val !== 'false';
},
enumerable: false,
configurable: true
});
FloatingLinesBackgroundComponent.prototype.ngOnInit = function () { };
FloatingLinesBackgroundComponent.prototype.ngAfterViewInit = function () {
var _this = this;
this.initThree();
this.setupResizeObserver();
this.ngZone.runOutsideAngular(function () {
_this.animate();
});
};
FloatingLinesBackgroundComponent.prototype.ngOnDestroy = function () {
if (this.rafId)
cancelAnimationFrame(this.rafId);
if (this.resizeObserver)
this.resizeObserver.disconnect();
this.cleanupThree();
};
FloatingLinesBackgroundComponent.prototype.ngOnChanges = function (changes) {
if (this.material) {
this.updateUniforms();
}
};
FloatingLinesBackgroundComponent.prototype.initThree = function () {
var _this = this;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
var el = this.containerRef.nativeElement;
this.scene = new three.Scene();
this.camera = new three.OrthographicCamera(-1, 1, 1, -1, 0, 1);
this.camera.position.z = 1;
this.renderer = new three.WebGLRenderer({ antialias: true, alpha: false });
this.renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));
this.renderer.setSize(el.clientWidth || 1, el.clientHeight || 1, false);
el.appendChild(this.renderer.domElement);
this.uniforms = {
iTime: { value: 0 },
iResolution: { value: new three.Vector3(el.clientWidth, el.clientHeight, 1) },
animationSpeed: { value: this.ncAnimationSpeed },
enableTop: { value: this.ncEnabledWaves.includes('top') },
enableMiddle: { value: this.ncEnabledWaves.includes('middle') },
enableBottom: { value: this.ncEnabledWaves.includes('bottom') },
topLineCount: { value: this.getLineCount('top') },
middleLineCount: { value: this.getLineCount('middle') },
bottomLineCount: { value: this.getLineCount('bottom') },
topLineDistance: { value: this.getLineDistance('top') * 0.01 },
middleLineDistance: { value: this.getLineDistance('middle') * 0.01 },
bottomLineDistance: { value: this.getLineDistance('bottom') * 0.01 },
topWavePosition: {
value: new three.Vector3((_b = (_a = this.ncTopWavePosition) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 10.0, (_d = (_c = this.ncTopWavePosition) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0.5, (_f = (_e = this.ncTopWavePosition) === null || _e === void 0 ? void 0 : _e.rotate) !== null && _f !== void 0 ? _f : -0.4)
},
middleWavePosition: {
value: new three.Vector3((_h = (_g = this.ncMiddleWavePosition) === null || _g === void 0 ? void 0 : _g.x) !== null && _h !== void 0 ? _h : 5.0, (_k = (_j = this.ncMiddleWavePosition) === null || _j === void 0 ? void 0 : _j.y) !== null && _k !== void 0 ? _k : 0.0, (_m = (_l = this.ncMiddleWavePosition) === null || _l === void 0 ? void 0 : _l.rotate) !== null && _m !== void 0 ? _m : 0.2)
},
bottomWavePosition: {
value: new three.Vector3((_p = (_o = this.ncBottomWavePosition) === null || _o === void 0 ? void 0 : _o.x) !== null && _p !== void 0 ? _p : 2.0, (_r = (_q = this.ncBottomWavePosition) === null || _q === void 0 ? void 0 : _q.y) !== null && _r !== void 0 ? _r : -0.7, (_t = (_s = this.ncBottomWavePosition) === null || _s === void 0 ? void 0 : _s.rotate) !== null && _t !== void 0 ? _t : -1)
},
iMouse: { value: new three.Vector2(-1000, -1000) },
interactive: { value: this.ncInteractive },
bendRadius: { value: this.ncBendRadius },
bendStrength: { value: this.ncBendStrength },
bendInfluence: { value: 0 },
parallax: { value: this.ncParallax },
parallaxStrength: { value: this.ncParallaxStrength },
parallaxOffset: { value: new three.Vector2(0, 0) },
lineGradient: {
value: Array.from({ length: MAX_GRADIENT_STOPS }, function () { return new three.Vector3(1, 1, 1); })
},
lineGradientCount: { value: 0 }
};
if (this.ncLinesGradient && this.ncLinesGradient.length > 0) {
var stops = this.ncLinesGradient.slice(0, MAX_GRADIENT_STOPS);
this.uniforms.lineGradientCount.value = stops.length;
stops.forEach(function (hex, i) {
var color = hexToVec3(hex);
_this.uniforms.lineGradient.value[i].copy(color);
});
}
this.material = new three.ShaderMaterial({
uniforms: this.uniforms,
vertexShader: vertexShader,
fragmentShader: fragmentShader
});
this.geometry = new three.PlaneGeometry(2, 2);
this.mesh = new three.Mesh(this.geometry, this.material);
this.scene.add(this.mesh);
};
FloatingLinesBackgroundComponent.prototype.updateUniforms = function () {
var _this = this;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
this.uniforms.animationSpeed.value = this.ncAnimationSpeed;
this.uniforms.enableTop.value = this.ncEnabledWaves.includes('top');
this.uniforms.enableMiddle.value = this.ncEnabledWaves.includes('middle');
this.uniforms.enableBottom.value = this.ncEnabledWaves.includes('bottom');
this.uniforms.topLineCount.value = this.getLineCount('top');
this.uniforms.middleLineCount.value = this.getLineCount('middle');
this.uniforms.bottomLineCount.value = this.getLineCount('bottom');
this.uniforms.topLineDistance.value = this.getLineDistance('top') * 0.01;
this.uniforms.middleLineDistance.value = this.getLineDistance('middle') * 0.01;
this.uniforms.bottomLineDistance.value = this.getLineDistance('bottom') * 0.01;
this.uniforms.topWavePosition.value.set((_b = (_a = this.ncTopWavePosition) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 10.0, (_d = (_c = this.ncTopWavePosition) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0.5, (_f = (_e = this.ncTopWavePosition) === null || _e === void 0 ? void 0 : _e.rotate) !== null && _f !== void 0 ? _f : -0.4);
this.uniforms.middleWavePosition.value.set((_h = (_g = this.ncMiddleWavePosition) === null || _g === void 0 ? void 0 : _g.x) !== null && _h !== void 0 ? _h : 5.0, (_k = (_j = this.ncMiddleWavePosition) === null || _j === void 0 ? void 0 : _j.y) !== null && _k !== void 0 ? _k : 0.0, (_m = (_l = this.ncMiddleWavePosition) === null || _l === void 0 ? void 0 : _l.rotate) !== null && _m !== void 0 ? _m : 0.2);
this.uniforms.bottomWavePosition.value.set((_p = (_o = this.ncBottomWavePosition) === null || _o === void 0 ? void 0 : _o.x) !== null && _p !== void 0 ? _p : 2.0, (_r = (_q = this.ncBottomWavePosition) === null || _q === void 0 ? void 0 : _q.y) !== null && _r !== void 0 ? _r : -0.7, (_t = (_s = this.ncBottomWavePosition) === null || _s === void 0 ? void 0 : _s.rotate) !== null && _t !== void 0 ? _t : -1);
this.uniforms.interactive.value = this.ncInteractive;
this.uniforms.bendRadius.value = this.ncBendRadius;
this.uniforms.bendStrength.value = this.ncBendStrength;
this.uniforms.parallax.value = this.ncParallax;
this.uniforms.parallaxStrength.value = this.ncParallaxStrength;
if (this.ncLinesGradient && this.ncLinesGradient.length > 0) {
var stops = this.ncLinesGradient.slice(0, MAX_GRADIENT_STOPS);
this.uniforms.lineGradientCount.value = stops.length;
stops.forEach(function (hex, i) {
var color = hexToVec3(hex);
_this.uniforms.lineGradient.value[i].copy(color);
});
}
else {
this.uniforms.lineGradientCount.value = 0;
}
};
FloatingLinesBackgroundComponent.prototype.getLineCount = function (waveType) {
var _a;
if (typeof this.ncLineCount === 'number')
return this.ncLineCount;
if (!this.ncEnabledWaves.includes(waveType))
return 0;
var index = this.ncEnabledWaves.indexOf(waveType);
return (_a = this.ncLineCount[index]) !== null && _a !== void 0 ? _a : 0;
};
FloatingLinesBackgroundComponent.prototype.getLineDistance = function (waveType) {
var _a;
if (typeof this.ncLineDistance === 'number')
return this.ncLineDistance;
if (!this.ncEnabledWaves.includes(waveType))
return 0.1;
var index = this.ncEnabledWaves.indexOf(waveType);
return (_a = this.ncLineDistance[index]) !== null && _a !== void 0 ? _a : 0.1;
};
FloatingLinesBackgroundComponent.prototype.setupResizeObserver = function () {
var _this = this;
this.resizeObserver = new ResizeObserver(function () {
var el = _this.containerRef.nativeElement;
var width = el.clientWidth || 1;
var height = el.clientHeight || 1;
_this.ngZone.runOutsideAngular(function () {
_this.renderer.setSize(width, height, false);
var canvasWidth = _this.renderer.domElement.width;
var canvasHeight = _this.renderer.domElement.height;
_this.uniforms.iResolution.value.set(canvasWidth, canvasHeight, 1);
});
});
this.resizeObserver.observe(this.containerRef.nativeElement);
};
FloatingLinesBackgroundComponent.prototype.onPointerMove = function (event) {
if (!this.ncInteractive && !this.ncParallax)
return;
var rect = this.renderer.domElement.getBoundingClientRect();
var x = event.clientX - rect.left;
var y = event.clientY - rect.top;
var dpr = this.renderer.getPixelRatio();
if (this.ncInteractive) {
this.targetMouse.set(x * dpr, (rect.height - y) * dpr);
this.targetInfluence = 1.0;
}
if (this.ncParallax) {
var centerX = rect.width / 2;
var centerY = rect.height / 2;
var offsetX = (x - centerX) / rect.width;
var offsetY = -(y - centerY) / rect.height;
this.targetParallax.set(offsetX * this.ncParallaxStrength, offsetY * this.ncParallaxStrength);
}
};
FloatingLinesBackgroundComponent.prototype.onPointerLeave = function () {
this.targetInfluence = 0.0;
};
FloatingLinesBackgroundComponent.prototype.animate = function () {
var _this = this;
this.rafId = requestAnimationFrame(function () { return _this.animate(); });
this.render();
};
FloatingLinesBackgroundComponent.prototype.render = function () {
this.uniforms.iTime.value = this.clock.getElapsedTime();
if (this.ncInteractive) {
this.currentMouse.lerp(this.targetMouse, this.ncMouseDamping);
this.uniforms.iMouse.value.copy(this.currentMouse);
this.currentInfluence += (this.targetInfluence - this.currentInfluence) * this.ncMouseDamping;
this.uniforms.bendInfluence.value = this.currentInfluence;
}
if (this.ncParallax) {
this.currentParallax.lerp(this.targetParallax, this.ncMouseDamping);
this.uniforms.parallaxOffset.value.copy(this.currentParallax);
}
this.renderer.render(this.scene, this.camera);
};
FloatingLinesBackgroundComponent.prototype.cleanupThree = function () {
if (this.geometry)
this.geometry.dispose();
if (this.material)
this.material.dispose();
if (this.renderer) {
this.renderer.dispose();
this.renderer.domElement.remove();
}
};
return FloatingLinesBackgroundComponent;
}());
FloatingLinesBackgroundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: FloatingLinesBackgroundComponent, deps: [{ token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
FloatingLinesBackgroundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: FloatingLinesBackgroundComponent, selector: "nc-floating-lines-background", inputs: { ncLinesGradient: "ncLinesGradient", ncEnabledWaves: "ncEnabledWaves", ncLineCount: "ncLineCount", ncLineDistance: "ncLineDistance", ncTopWavePosition: "ncTopWavePosition", ncMiddleWavePosition: "ncMiddleWavePosition", ncBottomWavePosition: "ncBottomWavePosition", ncAnimationSpeed: "ncAnimationSpeed", ncInteractive: "ncInteractive", ncBendRadius: "ncBendRadius", ncBendStrength: "ncBendStrength", ncMouseDamping: "ncMouseDamping", ncParallax: "ncParallax", ncParallaxStrength: "ncParallaxStrength", ncMixBlendMode: "ncMixBlendMode" }, host: { listeners: { "pointermove": "onPointerMove($event)", "pointerleave": "onPointerLeave()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div #container class=\"nc-floating-lines-canvas-container\" [style.mix-blend-mode]=\"ncMixBlendMode\"></div>\r\n<div class=\"nc-content-wrapper\">\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden}.nc-floating-lines-canvas-container{position:absolute;inset:0;z-index:0}.nc-content-wrapper{position:relative;z-index:1;width:100%;height:100%}\n"] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: FloatingLinesBackgroundComponent, decorators: [{
type: i0.Component,
args: [{
selector: 'nc-floating-lines-background',
templateUrl: './floating-lines-background.component.html',
styleUrls: ['./floating-lines-background.component.less']
}]
}], ctorParameters: function () { return [{ type: i0__namespace.NgZone }]; }, propDecorators: { containerRef: [{
type: i0.ViewChild,
args: ['container', { static: true }]
}], ncLinesGradient: [{
type: i0.Input
}], ncEnabledWaves: [{
type: i0.Input
}], ncLineCount: [{
type: i0.Input
}], ncLineDistance: [{
type: i0.Input
}], ncTopWavePosition: [{
type: i0.Input
}], ncMiddleWavePosition: [{
type: i0.Input
}], ncBottomWavePosition: [{
type: i0.Input
}], ncAnimationSpeed: [{
type: i0.Input
}], ncInteractive: [{
type: i0.Input
}], ncBendRadius: [{
type: i0.Input
}], ncBendStrength: [{
type: i0.Input
}], ncMouseDamping: [{
type: i0.Input
}], ncParallax: [{
type: i0.Input
}], ncParallaxStrength: [{
type: i0.Input
}], ncMixBlendMode: [{
type: i0.Input
}], onPointerMove: [{
type: i0.HostListener,
args: ['pointermove', ['$event']]
}], onPointerLeave: [{
type: i0.HostListener,
args: ['pointerleave']
}] } });
var NcFloatingLinesBackgroundModule = /** @class */ (function () {
function NcFloatingLinesBackgroundModule() {
}
return NcFloatingLinesBackgroundModule;
}());
NcFloatingLinesBackgroundModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NcFloatingLinesBackgroundModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
NcFloatingLinesBackgroundModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NcFloatingLinesBackgroundModule, declarations: [FloatingLinesBackgroundComponent], imports: [common.CommonModule], exports: [FloatingLinesBackgroundComponent] });
NcFloatingLinesBackgroundModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NcFloatingLinesBackgroundModule, imports: [[
common.CommonModule
]] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NcFloatingLinesBackgroundModule, decorators: [{
type: i0.NgModule,
args: [{
declarations: [
FloatingLinesBackgroundComponent
],
imports: [
common.CommonModule
],
exports: [
FloatingLinesBackgroundComponent
]
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
exports.FloatingLinesBackgroundComponent = FloatingLinesBackgroundComponent;
exports.NcFloatingLinesBackgroundModule = NcFloatingLinesBackgroundModule;
Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=ng-cw-v12-floating-lines-background.umd.js.map