@vectoriox/iox-ui 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,149 @@
1
+ # iox-ui — UI component library
2
+
3
+ This package contains shared UI components, directives and services used across IOX apps. It is built as an Angular library and exported from the `projects/iox-ui` package.
4
+
5
+ ## Overview
6
+ - Modular components: `IoxUiModule` aggregates smaller modules (AOS, Masonry, Page, ViewPosition).
7
+ - Individual modules are available and can be imported on demand.
8
+ - Includes a `PageScrollProvider` service (module-scoped) that wraps the Lenis smooth-scrolling library.
9
+
10
+ ## Installation
11
+ Install the library in your application or workspace (published package name: `@iox-dev/iox-ui`):
12
+
13
+ ```bash
14
+ npm install @iox-dev/iox-ui
15
+ ```
16
+
17
+ Note: this library depends on `lenis` for the `PageScrollProvider`. The workspace version uses `lenis` as a dependency; consumers installing the published package will get it automatically.
18
+
19
+ ## Public API / Exports
20
+ The library exports (important list):
21
+
22
+ - `IoxUiModule` — umbrella module that re-exports submodules
23
+ - `IoxPageModule` / `IoxPageComponent` — page wrapper with scroll events
24
+ - `IoxAosModule` / `iox-aos` directive and container component — animation-on-scroll helpers
25
+ - `IoxMasonryModule` — masonry layout helpers
26
+ - `ViewPositionModule` / `ViewPositionDirective` — viewport position utilities
27
+ - `PageScrollProvider` service — Lenis wrapper (module-scoped)
28
+
29
+ Refer to `projects/iox-ui/src/public-api.ts` for the full list of exported symbols.
30
+
31
+ ## Usage
32
+
33
+ Import the umbrella module or individual modules in your application module:
34
+
35
+ ```ts
36
+ import { IoxUiModule } from '@iox-dev/iox-ui';
37
+
38
+ @NgModule({
39
+ imports: [IoxUiModule]
40
+ })
41
+ export class AppModule {}
42
+ ```
43
+
44
+ Or import only the page module if you only need the page component and scroll provider:
45
+
46
+ ```ts
47
+ import { IoxPageModule } from '@iox-dev/iox-ui';
48
+
49
+ @NgModule({
50
+ imports: [IoxPageModule]
51
+ })
52
+ export class SomeModule {}
53
+ ```
54
+
55
+ ### IoxPageComponent
56
+ - **Selector:** `iox-page-component`
57
+ - **Inputs:**
58
+ - `class: string` — CSS classes applied to the outer wrapper.
59
+ - **Outputs:**
60
+ - `scrollEvent` — emits an object with `scrollTop`, `scrollLeft`, `scrollHeight`, `scrollWidth`, `clientHeight`, `clientWidth`, `scrollPercentage`.
61
+
62
+ Example:
63
+
64
+ ```html
65
+ <iox-page-component class="my-page">
66
+ <div>Page content here</div>
67
+ </iox-page-component>
68
+ ```
69
+
70
+ If you need to access the scrolling API programmatically, inject `PageScrollProvider` in a component that belongs to a module that imports `IoxPageModule` (the provider is module-scoped and provided by `IoxPageModule`):
71
+
72
+ ```ts
73
+ constructor(private pageScroll: PageScrollProvider) {}
74
+
75
+ ngAfterViewInit() {
76
+ this.pageScroll.init({ wrapper: someEl });
77
+ }
78
+ ```
79
+
80
+ ## Services
81
+
82
+ - `PageScrollProvider` — wraps Lenis. Note: it is provided in `IoxPageModule` providers, so it's available only when the module is imported. This prevents the service from being visible globally unless explicitly included.
83
+
84
+ ## Development
85
+
86
+ Build the workspace and library:
87
+
88
+ ```bash
89
+ cd /path/to/repo/iox-ui
90
+ npm install
91
+ npm run build
92
+ ```
93
+
94
+ Run the unit tests (if configured):
95
+
96
+ ```bash
97
+ npm test
98
+ ```
99
+
100
+ ## Publishing
101
+ The repo includes GitHub Actions workflows to build and publish the library. The publishing workflow will:
102
+
103
+ - Build the library
104
+ - Bump the patch version automatically
105
+ - Commit the bumped version to `projects/iox-ui/package.json` and push to `main`
106
+ - Publish the package to npm (requires `NPM_TOKEN` secret)
107
+
108
+ If you prefer manual control of the version, use the manual publish workflow or publish locally (see `CONTRIBUTING` below).
109
+
110
+ ## Contributing
111
+
112
+ 1. Create a feature branch from `main`.
113
+ 2. Add tests and ensure `npm run build` and `npm test` pass.
114
+ 3. Open a Pull Request — CI will build the library.
115
+
116
+ If you add services that should be module-scoped, register them in the module `providers` array to keep DI scoping predictable.
117
+
118
+ ## Troubleshooting
119
+
120
+ - If you see `Cannot find module 'lenis'` at runtime, ensure `lenis` is installed in the consuming project (it should be in the published package dependencies). Locally run `npm install lenis`.
121
+ - Sass `@import` deprecation warnings are present in the workspace styles; consider migrating to `@use`/`@forward`.
122
+
123
+ ---
124
+
125
+ For more details, inspect `projects/iox-ui/src/public-api.ts` and the module files under `projects/iox-ui/src/lib/`.
126
+ # IoxUi
127
+
128
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.1.0.
129
+
130
+ ## Code scaffolding
131
+
132
+ Run `ng generate component component-name --project iox-ui` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project iox-ui`.
133
+ > Note: Don't forget to add `--project iox-ui` or else it will be added to the default project in your `angular.json` file.
134
+
135
+ ## Build
136
+
137
+ Run `ng build iox-ui` to build the project. The build artifacts will be stored in the `dist/` directory.
138
+
139
+ ## Publishing
140
+
141
+ After building your library with `ng build iox-ui`, go to the dist folder `cd dist/iox-ui` and run `npm publish`.
142
+
143
+ ## Running unit tests
144
+
145
+ Run `ng test iox-ui` to execute the unit tests via [Karma](https://karma-runner.github.io).
146
+
147
+ ## Further help
148
+
149
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,616 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, HostListener, Output, Input, Directive, NgModule, Injectable, ViewChild, Component, Host, Optional, forwardRef, Inject } from '@angular/core';
3
+ import * as i2 from '@angular/animations';
4
+ import { style, animate } from '@angular/animations';
5
+ import { Subject, fromEvent } from 'rxjs';
6
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
7
+ import { Masonry } from '@fristys/masonry';
8
+ import { BrowserModule } from '@angular/platform-browser';
9
+ import { CommonModule } from '@angular/common';
10
+ import Lenis from 'lenis';
11
+
12
+ class ViewPositionDirective {
13
+ constructor(_elr) {
14
+ this._elr = _elr;
15
+ this._scrollDirection = "Down";
16
+ this._scrollPos = 0;
17
+ this.isOnScreen = false;
18
+ this.isHalfScreen = false;
19
+ this.onEnter = new EventEmitter();
20
+ this.onLeave = new EventEmitter();
21
+ this.onHalf = new EventEmitter();
22
+ this._initScreenDeminitions();
23
+ console.log(`screent highet: ${this._viewPortHighet}`);
24
+ }
25
+ ngAfterViewInit() {
26
+ this._elementOffseTop = this._elr.nativeElement.offsetTop;
27
+ this._elementHeight = this._elr.nativeElement.offsetHeight;
28
+ console.log(`element offset Y = ${this._elementOffseTop}`);
29
+ }
30
+ onScroll(e) {
31
+ if ((document.body.getBoundingClientRect()).top > this._scrollPos) {
32
+ if (this._scrollDirection != "Up") {
33
+ this.isHalfScreen = false;
34
+ this._scrollDirection = "Up";
35
+ }
36
+ }
37
+ else {
38
+ if (this._scrollDirection != "Down") {
39
+ this.isHalfScreen = false;
40
+ this._scrollDirection = "Down";
41
+ }
42
+ }
43
+ this._scrollPos = (document.body.getBoundingClientRect()).top;
44
+ let currentClientHight = this._elr.nativeElement.getBoundingClientRect().top;
45
+ if (currentClientHight >= this._viewPortHighet || currentClientHight < -this._elementHeight) {
46
+ if (this.isOnScreen) {
47
+ this.isOnScreen = false;
48
+ this.onLeave.emit("OUT");
49
+ }
50
+ }
51
+ else {
52
+ if (!this.isOnScreen) {
53
+ this.isOnScreen = true;
54
+ this.onEnter.emit("IN");
55
+ }
56
+ }
57
+ if (currentClientHight < this._halfSscreen && currentClientHight > 0 && this._scrollDirection == "Down") {
58
+ if (!this.isHalfScreen) {
59
+ this.isHalfScreen = true;
60
+ console.log("half");
61
+ this.onHalf.emit(this.data);
62
+ }
63
+ }
64
+ if (currentClientHight + this._elementHeight > this._halfSscreen && currentClientHight + this._elementHeight < this._viewPortHighet && this._scrollDirection == "Up") {
65
+ if (!this.isHalfScreen) {
66
+ this.isHalfScreen = true;
67
+ console.log("I am half");
68
+ this.onHalf.emit(this.data);
69
+ }
70
+ }
71
+ }
72
+ onResize(e) {
73
+ this._viewPortHighet = window.innerHeight;
74
+ this._initScreenDeminitions();
75
+ }
76
+ _initScreenDeminitions() {
77
+ this._viewPortHighet = window.innerHeight;
78
+ this._curterScreen = Math.trunc(this._viewPortHighet * 0.25);
79
+ this._halfSscreen = Math.trunc(this._viewPortHighet * 0.5);
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewPositionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ViewPositionDirective, isStandalone: false, selector: "[view-position]", inputs: { data: "data" }, outputs: { onEnter: "onEnter", onLeave: "onLeave", onHalf: "onHalf" }, host: { listeners: { "window:scroll": "onScroll($event)", "window:resize": "onResize($event)" } }, ngImport: i0 }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewPositionDirective, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: '[view-position]',
88
+ standalone: false
89
+ }]
90
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{
91
+ type: Input
92
+ }], onEnter: [{
93
+ type: Output
94
+ }], onLeave: [{
95
+ type: Output
96
+ }], onHalf: [{
97
+ type: Output
98
+ }], onScroll: [{
99
+ type: HostListener,
100
+ args: ['window:scroll', ['$event']]
101
+ }], onResize: [{
102
+ type: HostListener,
103
+ args: ['window:resize', ['$event']]
104
+ }] } });
105
+
106
+ class ViewPositionModule {
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewPositionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
108
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ViewPositionModule, declarations: [ViewPositionDirective], exports: [ViewPositionDirective] }); }
109
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewPositionModule }); }
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewPositionModule, decorators: [{
112
+ type: NgModule,
113
+ args: [{
114
+ declarations: [
115
+ ViewPositionDirective
116
+ ],
117
+ imports: [],
118
+ exports: [
119
+ ViewPositionDirective
120
+ ]
121
+ }]
122
+ }] });
123
+
124
+ /********** Entries Animations ********************/
125
+ const IoxAnimationStyles = {};
126
+ IoxAnimationStyles["fade-up"] = (delay, duration) => {
127
+ return [style({ opacity: 0, transform: "translate3d(0,100px,0)" }),
128
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0)" }))];
129
+ };
130
+ IoxAnimationStyles["fade-right"] = (delay, duration) => {
131
+ return [style({ opacity: 0, transform: "translateX(150px)" }),
132
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0)" }))];
133
+ };
134
+ IoxAnimationStyles["fade-out-right"] = (delay, duration) => {
135
+ return [style({ opacity: 1, transform: "translateX(0px)" }),
136
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 0, transform: "translateX(150px)" }))];
137
+ };
138
+ IoxAnimationStyles["fade-left"] = (delay, duration) => {
139
+ return [style({ opacity: 0, transform: "translateX(-150px)" }),
140
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0)" }))];
141
+ };
142
+ IoxAnimationStyles["fade-out-up"] = (delay, duration) => {
143
+ return [style({ opacity: 1, transform: "translateZ(0)" }),
144
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 0, transform: "translate3d(0,-100px,0)" }))];
145
+ };
146
+ IoxAnimationStyles["flip-left"] = (delay, duration) => {
147
+ return [style({ opacity: 0, transform: "perspective(2500px) rotateY(-100deg)" }),
148
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "perspective(2500px) rotateY(0)" }))];
149
+ };
150
+ IoxAnimationStyles["flip-up"] = (delay, duration) => {
151
+ return [style({ opacity: 0, transform: "perspective(2500px) rotateX(-100deg)" }),
152
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "perspective(2500px) rotateY(0)" }))];
153
+ };
154
+ IoxAnimationStyles["zoom-in-up"] = (delay, duration) => {
155
+ return [style({ opacity: 0, transform: "translate3d(0,100px,0) scale(.6)" }),
156
+ animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0) scale(1)" }))];
157
+ };
158
+
159
+ class AOSService {
160
+ constructor() {
161
+ this._scrollOffset = new Subject();
162
+ this.scrollOffset = this._scrollOffset.asObservable();
163
+ }
164
+ updateScrollOffset(offset) {
165
+ this._scrollOffset.next(offset);
166
+ }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AOSService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
168
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AOSService, providedIn: 'root' }); }
169
+ }
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AOSService, decorators: [{
171
+ type: Injectable,
172
+ args: [{ providedIn: 'root' }]
173
+ }], ctorParameters: () => [] });
174
+
175
+ class IoxAnimateContainer {
176
+ constructor(_element, _aOSService) {
177
+ this._element = _element;
178
+ this._aOSService = _aOSService;
179
+ this.kickIn = true;
180
+ this._scrollOffset = new Subject();
181
+ this.scrollOffset = this._scrollOffset.asObservable();
182
+ }
183
+ ngAfterViewInit() {
184
+ this.updateOffset();
185
+ }
186
+ onScroll($event) {
187
+ this.updateOffset();
188
+ }
189
+ ngOnChanges(changes) {
190
+ console.log(changes);
191
+ if (changes['kickIn'] && changes['kickIn'].currentValue) {
192
+ this.updateOffset();
193
+ }
194
+ }
195
+ updateOffset() {
196
+ let elClientRect = this.animateRooteElement.nativeElement.getBoundingClientRect();
197
+ this._scrollOffset.next(elClientRect);
198
+ this._aOSService.updateScrollOffset(elClientRect);
199
+ }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAnimateContainer, deps: [{ token: i0.ElementRef }, { token: AOSService }], target: i0.ɵɵFactoryTarget.Component }); }
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: IoxAnimateContainer, isStandalone: false, selector: "[ioxAnimateContainer], ioxAnimateContainer", inputs: { kickIn: "kickIn" }, host: { listeners: { "scroll": "onScroll($event)" } }, viewQueries: [{ propertyName: "animateRooteElement", first: true, predicate: ["animateRooteElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `<div class='animate_root_element' #animateRooteElement>
202
+ <ng-content></ng-content>
203
+ </div>`, isInline: true }); }
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAnimateContainer, decorators: [{
206
+ type: Component,
207
+ args: [{
208
+ selector: "[ioxAnimateContainer], ioxAnimateContainer",
209
+ template: `<div class='animate_root_element' #animateRooteElement>
210
+ <ng-content></ng-content>
211
+ </div>`,
212
+ standalone: false
213
+ }]
214
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: AOSService }], propDecorators: { kickIn: [{
215
+ type: Input,
216
+ args: ['kickIn']
217
+ }], animateRooteElement: [{
218
+ type: ViewChild,
219
+ args: ['animateRooteElement']
220
+ }], onScroll: [{
221
+ type: HostListener,
222
+ args: ['scroll', ['$event']]
223
+ }] } });
224
+
225
+ class IoxAosDirective {
226
+ constructor(_animateContainer, _element, _animationBuilder, _renderer) {
227
+ this._animateContainer = _animateContainer;
228
+ this._element = _element;
229
+ this._animationBuilder = _animationBuilder;
230
+ this._renderer = _renderer;
231
+ this.animationDelay = "";
232
+ this.animationIn = "";
233
+ this.animationOut = "";
234
+ this.animationDuration = "0.5s";
235
+ this.isAnimationPlayed = false;
236
+ this._elTop = 0;
237
+ this._renderer.setStyle(_element.nativeElement, 'opacity', '0');
238
+ }
239
+ ngOnInit() {
240
+ }
241
+ ngAfterViewInit() {
242
+ setTimeout(() => {
243
+ this._elTop = this._cumulativeOffset(this._element.nativeElement).top;
244
+ if (this._animateContainer) {
245
+ if (this._animateContainer.kickIn) {
246
+ this.runIfVisiable();
247
+ }
248
+ else {
249
+ return;
250
+ }
251
+ }
252
+ else {
253
+ this.runIfVisiable();
254
+ }
255
+ }, 150);
256
+ const resizeObserver = new ResizeObserver((entries) => this._elTop = this._cumulativeOffset(this._element.nativeElement).top);
257
+ resizeObserver.observe(document.body);
258
+ if (this._animateContainer) {
259
+ this._animateContainer?.scrollOffset.subscribe((offset) => {
260
+ if (this._animateContainer.kickIn) {
261
+ this.scrollEventHandler(-1 * offset.top);
262
+ }
263
+ });
264
+ }
265
+ }
266
+ makeAnimationIn(animationStyle) {
267
+ let animation = IoxAnimationStyles[animationStyle](this.animationDelay, this.animationDuration);
268
+ const myAnimation = this._animationBuilder.build(animation);
269
+ return myAnimation.create(this._element.nativeElement);
270
+ }
271
+ _cumulativeOffset(element) {
272
+ var top = 0, left = 0;
273
+ do {
274
+ top += element.offsetTop || 0;
275
+ left += element.offsetLeft || 0;
276
+ element = element.offsetParent;
277
+ } while (element);
278
+ return {
279
+ top: top,
280
+ left: left
281
+ };
282
+ }
283
+ ;
284
+ onScrollEvent($event) {
285
+ this.scrollEventHandler(window.pageYOffset);
286
+ }
287
+ isVisable(offset) {
288
+ //console.log(this._elTop >= window.pageYOffset && this._elTop <= window.pageYOffset + window.innerHeight);
289
+ //return this._elTop >= window.pageYOffset && this._elTop <= window.pageYOffset + window.innerHeight;
290
+ return this._elTop >= offset && this._elTop <= offset + window.innerHeight;
291
+ }
292
+ scrollEventHandler(offset) {
293
+ if (this._animateContainer && this._animateContainer.kickIn == false) {
294
+ return;
295
+ }
296
+ if (this.isVisable(offset) && !this.isAnimationPlayed) {
297
+ let animationStyle = this.animationIn || "fade-up";
298
+ this.makeAnimationIn(animationStyle).play();
299
+ this.isAnimationPlayed = true;
300
+ }
301
+ else if (!this.isVisable(offset) && this.isAnimationPlayed && this.animationOut) {
302
+ this.makeAnimationIn(this.animationOut).play();
303
+ this.isAnimationPlayed = false;
304
+ }
305
+ }
306
+ runIfVisiable() {
307
+ if (this.isVisable(window.pageYOffset)) {
308
+ let animationStyle = this.animationIn || "fade-up";
309
+ this.makeAnimationIn(animationStyle).play();
310
+ this.isAnimationPlayed = true;
311
+ }
312
+ }
313
+ ngOnDestroy() {
314
+ }
315
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAosDirective, deps: [{ token: IoxAnimateContainer, host: true, optional: true }, { token: i0.ElementRef }, { token: i2.AnimationBuilder }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
316
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: IoxAosDirective, isStandalone: false, selector: "[ioxAnimate], ioxAnimate", inputs: { animationDelay: "animationDelay", animationIn: "animationIn", animationOut: "animationOut", animationDuration: "animationDuration" }, host: { listeners: { "document:scroll": "onScrollEvent($event)" } }, ngImport: i0 }); }
317
+ }
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAosDirective, decorators: [{
319
+ type: Directive,
320
+ args: [{
321
+ selector: "[ioxAnimate], ioxAnimate",
322
+ standalone: false
323
+ }]
324
+ }], ctorParameters: () => [{ type: IoxAnimateContainer, decorators: [{
325
+ type: Host
326
+ }, {
327
+ type: Optional
328
+ }] }, { type: i0.ElementRef }, { type: i2.AnimationBuilder }, { type: i0.Renderer2 }], propDecorators: { animationDelay: [{
329
+ type: Input,
330
+ args: ["animationDelay"]
331
+ }], animationIn: [{
332
+ type: Input,
333
+ args: ["animationIn"]
334
+ }], animationOut: [{
335
+ type: Input,
336
+ args: ["animationOut"]
337
+ }], animationDuration: [{
338
+ type: Input,
339
+ args: ["animationDuration"]
340
+ }], onScrollEvent: [{
341
+ type: HostListener,
342
+ args: ['document:scroll', ['$event']]
343
+ }] } });
344
+ function ViewParent() {
345
+ throw new Error("Function not implemented.");
346
+ }
347
+
348
+ class IoxAosModule {
349
+ static forRoot() {
350
+ return {
351
+ ngModule: IoxAosModule,
352
+ providers: [AOSService]
353
+ };
354
+ }
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAosModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
356
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: IoxAosModule, declarations: [IoxAosDirective,
357
+ IoxAnimateContainer], imports: [BrowserAnimationsModule], exports: [IoxAosDirective,
358
+ IoxAnimateContainer] }); }
359
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAosModule, providers: [
360
+ AOSService
361
+ ], imports: [BrowserAnimationsModule] }); }
362
+ }
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxAosModule, decorators: [{
364
+ type: NgModule,
365
+ args: [{
366
+ declarations: [
367
+ IoxAosDirective,
368
+ IoxAnimateContainer
369
+ ],
370
+ imports: [
371
+ BrowserAnimationsModule
372
+ ],
373
+ providers: [
374
+ AOSService
375
+ ],
376
+ exports: [
377
+ IoxAosDirective,
378
+ IoxAnimateContainer
379
+ ]
380
+ }]
381
+ }] });
382
+
383
+ class IoxMasonryService {
384
+ constructor() { }
385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
386
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryService, providedIn: 'root' }); }
387
+ }
388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryService, decorators: [{
389
+ type: Injectable,
390
+ args: [{
391
+ providedIn: 'root'
392
+ }]
393
+ }], ctorParameters: () => [] });
394
+
395
+ class IoxMasonryComponent {
396
+ constructor(_element) {
397
+ this._element = _element;
398
+ // Inputs
399
+ this.options = {};
400
+ this.useImagesLoaded = false;
401
+ this.updateLayout = false;
402
+ this.layoutComplete = new EventEmitter();
403
+ this.isAppendAllowed = true;
404
+ this.add = (element) => {
405
+ setTimeout(() => {
406
+ this._msnry.init();
407
+ }, 200);
408
+ };
409
+ }
410
+ ngAfterViewInit() {
411
+ console.log("test");
412
+ }
413
+ ngOnInit() {
414
+ this._msnry = new Masonry(document.getElementById('masonry'), this.options);
415
+ this.layout();
416
+ }
417
+ ngOnChanges(changes) {
418
+ console.log(changes);
419
+ }
420
+ remove(element) {
421
+ this._msnry.remove(element);
422
+ }
423
+ layout() {
424
+ setTimeout(() => {
425
+ this._msnry.init();
426
+ });
427
+ }
428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
429
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: IoxMasonryComponent, isStandalone: false, selector: "[iox-masonry], iox-masonry", inputs: { options: "options", useImagesLoaded: "useImagesLoaded", updateLayout: "updateLayout" }, outputs: { layoutComplete: "layoutComplete" }, usesOnChanges: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
430
+ }
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryComponent, decorators: [{
432
+ type: Component,
433
+ args: [{ selector: "[iox-masonry], iox-masonry", template: `<ng-content></ng-content>`, standalone: false }]
434
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{
435
+ type: Input
436
+ }], useImagesLoaded: [{
437
+ type: Input
438
+ }], updateLayout: [{
439
+ type: Input
440
+ }], layoutComplete: [{
441
+ type: Output
442
+ }] } });
443
+
444
+ class IoxMasonryItemDirective {
445
+ constructor(_element, _parent, _renderer) {
446
+ this._element = _element;
447
+ this._parent = _parent;
448
+ this._renderer = _renderer;
449
+ //this._renderer.setStyle(_element.nativeElement,'opacity', '0');
450
+ }
451
+ ngAfterViewInit() {
452
+ console.log(this._element.nativeElement);
453
+ this._parent.add(this._element.nativeElement);
454
+ }
455
+ ngOnDestroy() {
456
+ this._parent.remove(this._element.nativeElement);
457
+ }
458
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryItemDirective, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => IoxMasonryComponent) }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
459
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: IoxMasonryItemDirective, isStandalone: false, selector: "[ioxMasonryItem], ioxMasonryItem", ngImport: i0 }); }
460
+ }
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryItemDirective, decorators: [{
462
+ type: Directive,
463
+ args: [{
464
+ selector: "[ioxMasonryItem], ioxMasonryItem",
465
+ standalone: false
466
+ }]
467
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: IoxMasonryComponent, decorators: [{
468
+ type: Inject,
469
+ args: [forwardRef(() => IoxMasonryComponent)]
470
+ }] }, { type: i0.Renderer2 }] });
471
+
472
+ class IoxMasonryModule {
473
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
474
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryModule, declarations: [IoxMasonryComponent, IoxMasonryItemDirective], imports: [BrowserModule], exports: [IoxMasonryComponent, IoxMasonryItemDirective] }); }
475
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryModule, imports: [BrowserModule] }); }
476
+ }
477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxMasonryModule, decorators: [{
478
+ type: NgModule,
479
+ args: [{
480
+ declarations: [IoxMasonryComponent, IoxMasonryItemDirective],
481
+ imports: [
482
+ BrowserModule
483
+ ],
484
+ exports: [IoxMasonryComponent, IoxMasonryItemDirective]
485
+ }]
486
+ }] });
487
+
488
+ class PageScrollProvider {
489
+ init(options) {
490
+ if (this.lenis) {
491
+ this.lenis.destroy();
492
+ }
493
+ if (this.rafId != null) {
494
+ cancelAnimationFrame(this.rafId);
495
+ }
496
+ this.lenis = new Lenis(options || {});
497
+ this.startLoop();
498
+ }
499
+ scrollTo(y, options) {
500
+ this.instance.scrollTo(y, options);
501
+ }
502
+ scrollToTop(options) {
503
+ this.scrollTo(0, options);
504
+ }
505
+ get instance() {
506
+ if (!this.lenis) {
507
+ throw new Error('PageScrollProvider: call init() before accessing the instance.');
508
+ }
509
+ return this.lenis;
510
+ }
511
+ startLoop() {
512
+ if (!this.lenis) {
513
+ return;
514
+ }
515
+ const loop = (time) => {
516
+ this.lenis.raf(time);
517
+ this.rafId = requestAnimationFrame(loop);
518
+ };
519
+ this.rafId = requestAnimationFrame(loop);
520
+ }
521
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: PageScrollProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
522
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: PageScrollProvider }); }
523
+ }
524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: PageScrollProvider, decorators: [{
525
+ type: Injectable
526
+ }] });
527
+
528
+ class IoxPageComponent {
529
+ constructor(pageScrollProvider) {
530
+ this.pageScrollProvider = pageScrollProvider;
531
+ this.class = '';
532
+ this.scrollEvent = new EventEmitter();
533
+ }
534
+ ngAfterViewInit() {
535
+ if (this.page) {
536
+ this.scrollSubscription = fromEvent(this.page.nativeElement, 'scroll').subscribe((event) => {
537
+ this.onScroll(event);
538
+ });
539
+ this.pageScrollProvider.init({
540
+ wrapper: this.page.nativeElement,
541
+ content: this.page.nativeElement.querySelector('.page-mask'),
542
+ duration: 1.2,
543
+ easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),
544
+ });
545
+ }
546
+ }
547
+ onScroll(event) {
548
+ const target = event.target;
549
+ const scrollTop = target.scrollTop;
550
+ const scrollLeft = target.scrollLeft;
551
+ const scrollHeight = target.scrollHeight;
552
+ const scrollWidth = target.scrollWidth;
553
+ const clientHeight = target.clientHeight;
554
+ const clientWidth = target.clientWidth;
555
+ const scrollPercentage = (scrollTop / (scrollHeight - clientHeight)) * 100;
556
+ this.scrollEvent.emit({ scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth, scrollPercentage });
557
+ }
558
+ ngOnDestroy() {
559
+ if (this.scrollSubscription) {
560
+ this.scrollSubscription.unsubscribe();
561
+ }
562
+ }
563
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxPageComponent, deps: [{ token: PageScrollProvider }], target: i0.ɵɵFactoryTarget.Component }); }
564
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: IoxPageComponent, isStandalone: false, selector: "iox-page-component", inputs: { class: "class" }, outputs: { scrollEvent: "scrollEvent" }, viewQueries: [{ propertyName: "page", first: true, predicate: ["page"], descendants: true }], ngImport: i0, template: "<div #page [class]=\"class\" class=\"iox-page-wrapper\">\n <div class=\"page-mask\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{position:absolute;inset:0}.iox-page-wrapper{position:relative;width:100%;height:100%;overflow:auto}.page-mask{min-height:100%}\n"] }); }
565
+ }
566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxPageComponent, decorators: [{
567
+ type: Component,
568
+ args: [{ selector: 'iox-page-component', standalone: false, template: "<div #page [class]=\"class\" class=\"iox-page-wrapper\">\n <div class=\"page-mask\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host{position:absolute;inset:0}.iox-page-wrapper{position:relative;width:100%;height:100%;overflow:auto}.page-mask{min-height:100%}\n"] }]
569
+ }], ctorParameters: () => [{ type: PageScrollProvider }], propDecorators: { class: [{
570
+ type: Input
571
+ }], page: [{
572
+ type: ViewChild,
573
+ args: ['page']
574
+ }], scrollEvent: [{
575
+ type: Output
576
+ }] } });
577
+
578
+ class IoxPageModule {
579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
580
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: IoxPageModule, declarations: [IoxPageComponent], imports: [CommonModule], exports: [IoxPageComponent] }); }
581
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxPageModule, providers: [PageScrollProvider], imports: [CommonModule] }); }
582
+ }
583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxPageModule, decorators: [{
584
+ type: NgModule,
585
+ args: [{
586
+ imports: [CommonModule],
587
+ declarations: [IoxPageComponent],
588
+ exports: [IoxPageComponent],
589
+ providers: [PageScrollProvider]
590
+ }]
591
+ }] });
592
+
593
+ class IoxUiModule {
594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
595
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: IoxUiModule, imports: [IoxAosModule, IoxPageModule], exports: [IoxAosModule, IoxPageModule] }); }
596
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxUiModule, imports: [IoxAosModule, IoxPageModule, IoxAosModule, IoxPageModule] }); }
597
+ }
598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IoxUiModule, decorators: [{
599
+ type: NgModule,
600
+ args: [{
601
+ declarations: [],
602
+ imports: [IoxAosModule, IoxPageModule],
603
+ exports: [IoxAosModule, IoxPageModule]
604
+ }]
605
+ }] });
606
+
607
+ /*
608
+ * Public API Surface of iox-ui
609
+ */
610
+
611
+ /**
612
+ * Generated bundle index. Do not edit.
613
+ */
614
+
615
+ export { AOSService, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxMasonryComponent, IoxMasonryItemDirective, IoxMasonryModule, IoxMasonryService, IoxPageComponent, IoxPageModule, IoxUiModule, PageScrollProvider, ViewPositionDirective, ViewPositionModule };
616
+ //# sourceMappingURL=vectoriox-iox-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectoriox-iox-ui.mjs","sources":["../../../projects/iox-ui/src/lib/view-position/view-position.directive.ts","../../../projects/iox-ui/src/lib/view-position/view-position.module.ts","../../../projects/iox-ui/src/lib/iox-aos/iox-aos-animations.ts","../../../projects/iox-ui/src/lib/iox-aos/iox-aos.service.ts","../../../projects/iox-ui/src/lib/iox-aos/iox-aos-container.component.ts","../../../projects/iox-ui/src/lib/iox-aos/iox-aos.directive.ts","../../../projects/iox-ui/src/lib/iox-aos/iox-aos.module.ts","../../../projects/iox-ui/src/lib/iox-masonry/iox-masonry.service.ts","../../../projects/iox-ui/src/lib/iox-masonry/iox-masonry.component.ts","../../../projects/iox-ui/src/lib/iox-masonry/iox-masonry-item.directive.ts","../../../projects/iox-ui/src/lib/iox-masonry/iox-masonry.module.ts","../../../projects/iox-ui/src/lib/services/page-scroll.provider.ts","../../../projects/iox-ui/src/lib/iox-page/page-component/page-component.component.ts","../../../projects/iox-ui/src/lib/iox-page/page-component/page-component.component.html","../../../projects/iox-ui/src/lib/iox-page/iox-page.module.ts","../../../projects/iox-ui/src/lib/iox-ui.module.ts","../../../projects/iox-ui/src/public-api.ts","../../../projects/iox-ui/src/vectoriox-iox-ui.ts"],"sourcesContent":["import {AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Input, Output} from '@angular/core';\n\n@Directive({\n selector:'[view-position]',\n standalone: false\n})\n\nexport class ViewPositionDirective implements AfterViewInit{\n\n private _viewPortHighet!:number;\n private _elementHeight!: number;\n private _elementOffseTop!: number;\n private _curterScreen!:number;\n private _halfSscreen!:number;\n \n private _scrollDirection:string= \"Down\";\n private _scrollPos:number = 0;\n public isOnScreen: boolean = false;\n public isHalfScreen: boolean = false;\n \n @Input() data:any\n @Output() onEnter:EventEmitter<any> = new EventEmitter();\n @Output() onLeave:EventEmitter<any> = new EventEmitter();\n @Output() onHalf:EventEmitter<any> = new EventEmitter();\n\n constructor(private _elr:ElementRef){\n this._initScreenDeminitions();\n console.log(`screent highet: ${this._viewPortHighet}`);\n }\n\n\n ngAfterViewInit(): void {\n this._elementOffseTop = this._elr.nativeElement.offsetTop;\n this._elementHeight = this._elr.nativeElement.offsetHeight;\n console.log(`element offset Y = ${this._elementOffseTop}`); \n }\n\n\n @HostListener('window:scroll', ['$event']) onScroll(e: Event): void {\n\n if ((document.body.getBoundingClientRect()).top > this._scrollPos){\n if(this._scrollDirection != \"Up\"){\n this.isHalfScreen =false;\n this._scrollDirection = \"Up\"\n }\n } \n\t else{\n if(this._scrollDirection !=\"Down\"){\n this.isHalfScreen =false;\n this._scrollDirection = \"Down\"\n }\n } \n\t this._scrollPos = (document.body.getBoundingClientRect()).top;\n\n\n let currentClientHight = this._elr.nativeElement.getBoundingClientRect().top;\n if(currentClientHight >= this._viewPortHighet || currentClientHight < -this._elementHeight){\n if(this.isOnScreen){\n this.isOnScreen = false;\n this.onLeave.emit(\"OUT\");\n }\n }else{\n if(!this.isOnScreen){\n this.isOnScreen = true;\n this.onEnter.emit(\"IN\");\n }\n }\n\n if(currentClientHight < this._halfSscreen && currentClientHight > 0 && this._scrollDirection == \"Down\") {\n if(!this.isHalfScreen){\n this.isHalfScreen = true;\n console.log(\"half\")\n this.onHalf.emit(this.data);\n }\n }\n\n if(currentClientHight + this._elementHeight > this._halfSscreen && currentClientHight +this._elementHeight < this._viewPortHighet && this._scrollDirection == \"Up\") {\n if(!this.isHalfScreen){\n this.isHalfScreen = true;\n console.log(\"I am half\")\n this.onHalf.emit(this.data);\n }\n }\n }\n\n @HostListener('window:resize', ['$event']) onResize(e: Event) {\n this._viewPortHighet = window.innerHeight;\n this._initScreenDeminitions();\n }\n \n \n\n private _initScreenDeminitions(){\n this._viewPortHighet = window.innerHeight;\n this._curterScreen = Math.trunc(this._viewPortHighet *0.25);\n this._halfSscreen = Math.trunc(this._viewPortHighet *0.5);\n }\n }","import { NgModule } from '@angular/core';\nimport { ViewPositionDirective } from './view-position.directive';\n\n\n\n@NgModule({\n declarations: [\n ViewPositionDirective\n ],\n imports: [\n ],\n exports: [\n ViewPositionDirective\n ]\n})\nexport class ViewPositionModule { }\n","import { AnimationBuilder, style, animate, keyframes } from '@angular/animations';\n\n/********** Entries Animations ********************/\n\nexport const IoxAnimationStyles: any = {}\n\nIoxAnimationStyles[\"fade-up\"] = (delay:string, duration:string)=>{\n return [style({ opacity: 0, transform: \"translate3d(0,100px,0)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: \"translateZ(0)\" }))]\n}\n\nIoxAnimationStyles[\"fade-right\"] = (delay:string, duration:string)=>{\n return [style({ opacity: 0, transform: \"translateX(150px)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: \"translateZ(0)\" }))]\n}\n\nIoxAnimationStyles[\"fade-out-right\"] = (delay:string, duration:string)=>{\n return [style({ opacity: 1, transform: \"translateX(0px)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 0, transform: \"translateX(150px)\" }))]\n}\n\nIoxAnimationStyles[\"fade-left\"] = (delay:string, duration:string)=>{\n return [style({ opacity: 0, transform: \"translateX(-150px)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: \"translateZ(0)\" }))]\n}\n\nIoxAnimationStyles[\"fade-out-up\"] = (delay:string, duration:string)=>{\n return [ style({ opacity: 1, transform: \"translateZ(0)\" }),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 0, transform: \"translate3d(0,-100px,0)\"}))]\n}\n\nIoxAnimationStyles[\"flip-left\"] = (delay:string, duration:string)=>{\n return [style({opacity: 0,transform: \"perspective(2500px) rotateY(-100deg)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: \"perspective(2500px) rotateY(0)\" }))]\n}\n\nIoxAnimationStyles[\"flip-up\"] = (delay:string, duration:string)=>{\n return [style({opacity: 0,transform: \"perspective(2500px) rotateX(-100deg)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: \"perspective(2500px) rotateY(0)\" }))]\n}\n\nIoxAnimationStyles[\"zoom-in-up\"] = (delay:string, duration:string)=>{\n return [style({opacity: 0,transform: \"translate3d(0,100px,0) scale(.6)\"}),\n animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: \"translateZ(0) scale(1)\" }))]\n}","import { Injectable } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\n\n\n@Injectable({providedIn: 'root'})\nexport class AOSService {\n\n\n\n private _scrollOffset:Subject<any> = new Subject();\n public readonly scrollOffset: Observable<any> = this._scrollOffset.asObservable();\n \n constructor() { }\n\n\n updateScrollOffset(offset:any){\n this._scrollOffset.next(offset);\n }\n\n}","import { Component, ElementRef, HostListener, Input, SimpleChanges, ViewChild } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AOSService } from './iox-aos.service';\n\n@Component({\n selector: \"[ioxAnimateContainer], ioxAnimateContainer\",\n template:`<div class='animate_root_element' #animateRooteElement>\n <ng-content></ng-content>\n </div>`,\n standalone: false\n})\nexport class IoxAnimateContainer {\n\n @Input('kickIn') kickIn = true;\n\n private _scrollOffset:Subject<any> = new Subject();\n public readonly scrollOffset: Observable<any> = this._scrollOffset.asObservable();\n @ViewChild('animateRooteElement') public animateRooteElement:any;\n \n\n constructor(private _element: ElementRef, private _aOSService: AOSService) {\n }\n\n ngAfterViewInit(){\n this.updateOffset();\n }\n\n @HostListener('scroll', ['$event'])\n public onScroll($event:any){\n this.updateOffset();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n console.log(changes);\n if(changes['kickIn'] && changes['kickIn'].currentValue){\n this.updateOffset();\n }\n }\n\n\n private updateOffset(){\n let elClientRect = this.animateRooteElement.nativeElement.getBoundingClientRect();\n this._scrollOffset.next(elClientRect);\n this._aOSService.updateScrollOffset(elClientRect);\n }\n}","import { Directive, OnDestroy, AfterViewInit, ElementRef, Input, OnInit, Renderer2, HostListener, Host, Optional } from \"@angular/core\";\nimport { AnimationBuilder, style, animate, AnimationPlayer } from '@angular/animations';\nimport { IoxAnimationStyles } from \"./iox-aos-animations\"\n;\nimport { IoxAnimateContainer } from \"./iox-aos-container.component\";\n@Directive({\n selector: \"[ioxAnimate], ioxAnimate\",\n standalone: false\n })\n export class IoxAosDirective implements OnDestroy, OnInit, AfterViewInit {\n \n @Input(\"animationDelay\") animationDelay: string =\"\";\n @Input(\"animationIn\") animationIn: string =\"\";\n @Input(\"animationOut\") animationOut: string = \"\";\n @Input(\"animationDuration\") animationDuration: string = \"0.5s\";\n \n // @Input(\"in\")\n // @Input(\"out\")\n\n public animation:AnimationPlayer | any;\n public isAnimationPlayed= false;\n private _elTop:number =0;\n\n\n constructor(@Host() @Optional() private _animateContainer: IoxAnimateContainer, private _element: ElementRef, private _animationBuilder:AnimationBuilder, private _renderer: Renderer2){\n \n this._renderer.setStyle(_element.nativeElement,'opacity', '0');\n }\n\n public ngOnInit(){\n }\n\n public ngAfterViewInit(){\n\n setTimeout(()=>{\n\n this._elTop = this._cumulativeOffset(this._element.nativeElement).top;\n\n if(this._animateContainer){\n if(this._animateContainer.kickIn){\n this.runIfVisiable();\n }else{\n return\n }\n }else{\n this.runIfVisiable();\n }\n\n \n \n },150)\n\n const resizeObserver = new ResizeObserver((entries) =>\n this._elTop = this._cumulativeOffset(this._element.nativeElement).top\n );\n\n resizeObserver.observe(document.body);\n \n if(this._animateContainer){\n this._animateContainer?.scrollOffset.subscribe((offset:any)=>{\n if(this._animateContainer.kickIn){\n this.scrollEventHandler(-1 *offset.top);\n }\n })\n }\n\n \n }\n\n public makeAnimationIn(animationStyle:any):AnimationPlayer{\n let animation = IoxAnimationStyles[animationStyle](this.animationDelay, this.animationDuration);\n const myAnimation = this._animationBuilder.build(animation)\n return myAnimation.create(this._element.nativeElement); \n\n }\n\n private _cumulativeOffset(element:any) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while(element);\n \n return {\n top: top,\n left: left\n };\n };\n\n @HostListener('document:scroll', ['$event']) onScrollEvent($event:any){\n this.scrollEventHandler(window.pageYOffset)\n }\n \n public isVisable(offset:number){\n //console.log(this._elTop >= window.pageYOffset && this._elTop <= window.pageYOffset + window.innerHeight);\n //return this._elTop >= window.pageYOffset && this._elTop <= window.pageYOffset + window.innerHeight;\n return this._elTop >= offset && this._elTop <= offset + window.innerHeight;\n }\n\n\n public scrollEventHandler(offset:number){\n\n if(this._animateContainer && this._animateContainer.kickIn == false){\n return\n }\n\n if(this.isVisable(offset) && !this.isAnimationPlayed){\n let animationStyle = this.animationIn || \"fade-up\";\n this.makeAnimationIn(animationStyle).play();\n this.isAnimationPlayed = true;\n }else if(!this.isVisable(offset) && this.isAnimationPlayed && this.animationOut){\n this.makeAnimationIn(this.animationOut).play();\n this.isAnimationPlayed =false;\n }\n }\n\n public runIfVisiable(){\n if(this.isVisable(window.pageYOffset)){\n let animationStyle = this.animationIn || \"fade-up\";\n this.makeAnimationIn(animationStyle).play();\n this.isAnimationPlayed = true;\n }\n }\n public ngOnDestroy(){\n\n }\n\n }\n\nfunction ViewParent() {\n throw new Error(\"Function not implemented.\");\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { IoxAosDirective } from './iox-aos.directive';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { IoxAnimateContainer } from './iox-aos-container.component';\nimport { AOSService } from './iox-aos.service';\n\n\n@NgModule({\n declarations: [\n IoxAosDirective,\n IoxAnimateContainer\n ],\n imports: [\n BrowserAnimationsModule\n ],\n providers:[\n AOSService\n ],\n exports: [\n IoxAosDirective,\n IoxAnimateContainer\n ]\n})\nexport class IoxAosModule { \n\n static forRoot(): ModuleWithProviders<any> {\n return {\n ngModule: IoxAosModule,\n providers: [AOSService]\n };\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IoxMasonryService {\n\n constructor() { }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, HostListener, ElementRef, AfterViewInit} from '@angular/core';\nimport { Masonry } from '@fristys/masonry';\n\n\n@Component({ \n selector: \"[iox-masonry], iox-masonry\",\n template: `<ng-content></ng-content>`,\n styles: [],\n standalone: false\n})\nexport class IoxMasonryComponent implements OnInit, AfterViewInit {\n\n \n\n // Inputs\n @Input() public options: any = {};\n @Input() public useImagesLoaded: Boolean = false;\n @Input() updateLayout: Boolean = false;\n\n @Output() layoutComplete: EventEmitter<any[]> = new EventEmitter<any[]>();\n \n public _msnry: any;\n private isAppendAllowed:boolean = true;\n\n constructor(private _element: ElementRef) { }\n\n ngAfterViewInit(): void {\n console.log(\"test\");\n }\n\n ngOnInit() {\n this._msnry = new Masonry(document.getElementById('masonry'), this.options);\n this.layout(); \n }\n \n ngOnChanges(changes: any) {\n console.log(changes);\n }\n\n\n add = (element: HTMLElement)=>{\n setTimeout(()=>{\n this._msnry.init();\n },200)\n\n }\n\n public remove(element: HTMLElement) {\n this._msnry.remove(element);\n }\n\n public layout() {\n setTimeout(() => {\n this._msnry.init();\n });\n }\n\n}\n\nexport interface IoxMasonryOptions {\n columns?: number;\n columnBreakpoints?: number;\n gutter?: number | string;\n initOnImageLoad?: boolean;\n loadingClass?: string;\n loadedClass?: string;\n onInit?:any;\n bindOnScroll?: boolean;\n useContainerWidth?: boolean;\n trackItemSizeChanges?: boolean;\n}\n","import { Directive, Inject, ElementRef, forwardRef, OnDestroy, AfterViewInit, Renderer2 } from '@angular/core';\nimport { IoxMasonryComponent } from './iox-masonry.component';\n@Directive({\n selector: \"[ioxMasonryItem], ioxMasonryItem\",\n standalone: false\n})\nexport class IoxMasonryItemDirective implements OnDestroy, AfterViewInit {\n constructor(\n private _element: ElementRef,\n @Inject(forwardRef(() => IoxMasonryComponent))\n private _parent: IoxMasonryComponent,\n private _renderer:Renderer2) {\n //this._renderer.setStyle(_element.nativeElement,'opacity', '0');\n }\n\n ngAfterViewInit() {\n console.log(this._element.nativeElement);\n this._parent.add(this._element.nativeElement);\n }\n\n ngOnDestroy() {\n this._parent.remove(this._element.nativeElement);\n }\n}","import { NgModule } from '@angular/core';\nimport { IoxMasonryComponent } from './iox-masonry.component';\nimport { IoxMasonryItemDirective } from './iox-masonry-item.directive';\nimport { BrowserModule } from '@angular/platform-browser';\n\n\n\n@NgModule({\n declarations: [IoxMasonryComponent, IoxMasonryItemDirective],\n imports: [\n BrowserModule\n ],\n exports: [IoxMasonryComponent, IoxMasonryItemDirective]\n})\nexport class IoxMasonryModule { }\n","import { Injectable } from '@angular/core';\nimport Lenis from 'lenis';\n\n@Injectable()\nexport class PageScrollProvider {\n private lenis?: Lenis;\n private rafId?: number;\n\n init(options?: ConstructorParameters<typeof Lenis>[0]): void {\n if (this.lenis) {\n this.lenis.destroy();\n }\n if (this.rafId != null) {\n cancelAnimationFrame(this.rafId);\n }\n this.lenis = new Lenis(options || {});\n this.startLoop();\n }\n\n scrollTo(y: number, options?: { duration?: number; immediate?: boolean }): void {\n this.instance.scrollTo(y, options);\n }\n\n scrollToTop(options?: { duration?: number; immediate?: boolean }): void {\n this.scrollTo(0, options);\n }\n\n get instance(): Lenis {\n if (!this.lenis) {\n throw new Error('PageScrollProvider: call init() before accessing the instance.');\n }\n return this.lenis;\n }\n\n private startLoop(): void {\n if (!this.lenis) {\n return;\n }\n const loop = (time: number) => {\n this.lenis!.raf(time);\n this.rafId = requestAnimationFrame(loop);\n };\n this.rafId = requestAnimationFrame(loop);\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, AfterViewInit, OnDestroy } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { PageScrollProvider } from '../../services/page-scroll.provider';\n\n@Component({\n selector: 'iox-page-component',\n templateUrl: './page-component.component.html',\n styleUrls: ['./page-component.component.scss'],\n standalone: false\n})\nexport class IoxPageComponent implements AfterViewInit, OnDestroy {\n @Input() class = '';\n @ViewChild('page') public page!: ElementRef<HTMLDivElement>;\n private scrollSubscription!: Subscription;\n @Output() scrollEvent = new EventEmitter<{\n scrollTop: number;\n scrollLeft: number;\n scrollHeight: number;\n scrollWidth: number;\n clientHeight: number;\n clientWidth: number;\n scrollPercentage: number;\n }>();\n\n constructor(private pageScrollProvider: PageScrollProvider) {}\n\n ngAfterViewInit(): void {\n if (this.page) {\n this.scrollSubscription = fromEvent(this.page.nativeElement, 'scroll').subscribe((event) => {\n this.onScroll(event as Event);\n });\n\n this.pageScrollProvider.init({\n wrapper: this.page.nativeElement,\n content: this.page.nativeElement.querySelector('.page-mask')!,\n duration: 1.2,\n easing: (t: number) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),\n });\n }\n }\n\n onScroll(event: Event): void {\n const target = event.target as HTMLElement;\n const scrollTop = target.scrollTop;\n const scrollLeft = target.scrollLeft;\n const scrollHeight = target.scrollHeight;\n const scrollWidth = target.scrollWidth;\n const clientHeight = target.clientHeight;\n const clientWidth = target.clientWidth;\n const scrollPercentage = (scrollTop / (scrollHeight - clientHeight)) * 100;\n\n this.scrollEvent.emit({ scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth, scrollPercentage });\n }\n\n ngOnDestroy(): void {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n }\n}\n","<div #page [class]=\"class\" class=\"iox-page-wrapper\">\n <div class=\"page-mask\">\n <ng-content></ng-content>\n </div>\n</div>\n","\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IoxPageComponent } from './page-component/page-component.component';\nimport { PageScrollProvider } from '../services/page-scroll.provider';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [IoxPageComponent],\n exports: [IoxPageComponent],\n providers: [PageScrollProvider]\n})\nexport class IoxPageModule {}\n","import { NgModule } from '@angular/core';\nimport { IoxAosModule } from './iox-aos/iox-aos.module';\nimport { IoxPageModule } from './iox-page/iox-page.module';\n\n\n@NgModule({\n declarations: [],\n imports: [IoxAosModule, IoxPageModule],\n exports: [IoxAosModule, IoxPageModule]\n})\nexport class IoxUiModule { }\n","/*\n * Public API Surface of iox-ui\n */\n\nexport * from './lib/view-position/view-position.directive';\nexport * from './lib/view-position/view-position.module';\n\n\n\nexport * from './lib/iox-aos/iox-aos.directive';\nexport * from './lib/iox-aos/iox-aos-container.component';\nexport * from './lib/iox-aos/iox-aos.service';\nexport * from './lib/iox-aos/iox-aos.module';\n\n\n\nexport * from './lib/iox-masonry/iox-masonry.service';\nexport * from './lib/iox-masonry/iox-masonry.component';\nexport * from './lib/iox-masonry/iox-masonry-item.directive';\nexport * from './lib/iox-masonry/iox-masonry.module';\n\nexport * from './lib/iox-ui.module';\nexport * from './lib/iox-page/page-component/page-component.component';\nexport * from './lib/iox-page/iox-page.module';\nexport * from './lib/services/page-scroll.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AOSService","i1.IoxAnimateContainer","i1.PageScrollProvider"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,205 @@
1
+ import * as i0 from '@angular/core';
2
+ import { AfterViewInit, EventEmitter, ElementRef, SimpleChanges, OnDestroy, OnInit, Renderer2, ModuleWithProviders } from '@angular/core';
3
+ import { AnimationPlayer, AnimationBuilder } from '@angular/animations';
4
+ import { Observable } from 'rxjs';
5
+ import * as i3 from '@angular/platform-browser/animations';
6
+ import * as i3$1 from '@angular/platform-browser';
7
+ import Lenis from 'lenis';
8
+ import * as i2 from '@angular/common';
9
+
10
+ declare class ViewPositionDirective implements AfterViewInit {
11
+ private _elr;
12
+ private _viewPortHighet;
13
+ private _elementHeight;
14
+ private _elementOffseTop;
15
+ private _curterScreen;
16
+ private _halfSscreen;
17
+ private _scrollDirection;
18
+ private _scrollPos;
19
+ isOnScreen: boolean;
20
+ isHalfScreen: boolean;
21
+ data: any;
22
+ onEnter: EventEmitter<any>;
23
+ onLeave: EventEmitter<any>;
24
+ onHalf: EventEmitter<any>;
25
+ constructor(_elr: ElementRef);
26
+ ngAfterViewInit(): void;
27
+ onScroll(e: Event): void;
28
+ onResize(e: Event): void;
29
+ private _initScreenDeminitions;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<ViewPositionDirective, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ViewPositionDirective, "[view-position]", never, { "data": { "alias": "data"; "required": false; }; }, { "onEnter": "onEnter"; "onLeave": "onLeave"; "onHalf": "onHalf"; }, never, never, false, never>;
32
+ }
33
+
34
+ declare class ViewPositionModule {
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<ViewPositionModule, never>;
36
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ViewPositionModule, [typeof ViewPositionDirective], never, [typeof ViewPositionDirective]>;
37
+ static ɵinj: i0.ɵɵInjectorDeclaration<ViewPositionModule>;
38
+ }
39
+
40
+ declare class AOSService {
41
+ private _scrollOffset;
42
+ readonly scrollOffset: Observable<any>;
43
+ constructor();
44
+ updateScrollOffset(offset: any): void;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<AOSService, never>;
46
+ static ɵprov: i0.ɵɵInjectableDeclaration<AOSService>;
47
+ }
48
+
49
+ declare class IoxAnimateContainer {
50
+ private _element;
51
+ private _aOSService;
52
+ kickIn: boolean;
53
+ private _scrollOffset;
54
+ readonly scrollOffset: Observable<any>;
55
+ animateRooteElement: any;
56
+ constructor(_element: ElementRef, _aOSService: AOSService);
57
+ ngAfterViewInit(): void;
58
+ onScroll($event: any): void;
59
+ ngOnChanges(changes: SimpleChanges): void;
60
+ private updateOffset;
61
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxAnimateContainer, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<IoxAnimateContainer, "[ioxAnimateContainer], ioxAnimateContainer", never, { "kickIn": { "alias": "kickIn"; "required": false; }; }, {}, never, ["*"], false, never>;
63
+ }
64
+
65
+ declare class IoxAosDirective implements OnDestroy, OnInit, AfterViewInit {
66
+ private _animateContainer;
67
+ private _element;
68
+ private _animationBuilder;
69
+ private _renderer;
70
+ animationDelay: string;
71
+ animationIn: string;
72
+ animationOut: string;
73
+ animationDuration: string;
74
+ animation: AnimationPlayer | any;
75
+ isAnimationPlayed: boolean;
76
+ private _elTop;
77
+ constructor(_animateContainer: IoxAnimateContainer, _element: ElementRef, _animationBuilder: AnimationBuilder, _renderer: Renderer2);
78
+ ngOnInit(): void;
79
+ ngAfterViewInit(): void;
80
+ makeAnimationIn(animationStyle: any): AnimationPlayer;
81
+ private _cumulativeOffset;
82
+ onScrollEvent($event: any): void;
83
+ isVisable(offset: number): boolean;
84
+ scrollEventHandler(offset: number): void;
85
+ runIfVisiable(): void;
86
+ ngOnDestroy(): void;
87
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxAosDirective, [{ optional: true; host: true; }, null, null, null]>;
88
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IoxAosDirective, "[ioxAnimate], ioxAnimate", never, { "animationDelay": { "alias": "animationDelay"; "required": false; }; "animationIn": { "alias": "animationIn"; "required": false; }; "animationOut": { "alias": "animationOut"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; }, {}, never, never, false, never>;
89
+ }
90
+
91
+ declare class IoxAosModule {
92
+ static forRoot(): ModuleWithProviders<any>;
93
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxAosModule, never>;
94
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IoxAosModule, [typeof IoxAosDirective, typeof IoxAnimateContainer], [typeof i3.BrowserAnimationsModule], [typeof IoxAosDirective, typeof IoxAnimateContainer]>;
95
+ static ɵinj: i0.ɵɵInjectorDeclaration<IoxAosModule>;
96
+ }
97
+
98
+ declare class IoxMasonryService {
99
+ constructor();
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxMasonryService, never>;
101
+ static ɵprov: i0.ɵɵInjectableDeclaration<IoxMasonryService>;
102
+ }
103
+
104
+ declare class IoxMasonryComponent implements OnInit, AfterViewInit {
105
+ private _element;
106
+ options: any;
107
+ useImagesLoaded: Boolean;
108
+ updateLayout: Boolean;
109
+ layoutComplete: EventEmitter<any[]>;
110
+ _msnry: any;
111
+ private isAppendAllowed;
112
+ constructor(_element: ElementRef);
113
+ ngAfterViewInit(): void;
114
+ ngOnInit(): void;
115
+ ngOnChanges(changes: any): void;
116
+ add: (element: HTMLElement) => void;
117
+ remove(element: HTMLElement): void;
118
+ layout(): void;
119
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxMasonryComponent, never>;
120
+ static ɵcmp: i0.ɵɵComponentDeclaration<IoxMasonryComponent, "[iox-masonry], iox-masonry", never, { "options": { "alias": "options"; "required": false; }; "useImagesLoaded": { "alias": "useImagesLoaded"; "required": false; }; "updateLayout": { "alias": "updateLayout"; "required": false; }; }, { "layoutComplete": "layoutComplete"; }, never, ["*"], false, never>;
121
+ }
122
+ interface IoxMasonryOptions {
123
+ columns?: number;
124
+ columnBreakpoints?: number;
125
+ gutter?: number | string;
126
+ initOnImageLoad?: boolean;
127
+ loadingClass?: string;
128
+ loadedClass?: string;
129
+ onInit?: any;
130
+ bindOnScroll?: boolean;
131
+ useContainerWidth?: boolean;
132
+ trackItemSizeChanges?: boolean;
133
+ }
134
+
135
+ declare class IoxMasonryItemDirective implements OnDestroy, AfterViewInit {
136
+ private _element;
137
+ private _parent;
138
+ private _renderer;
139
+ constructor(_element: ElementRef, _parent: IoxMasonryComponent, _renderer: Renderer2);
140
+ ngAfterViewInit(): void;
141
+ ngOnDestroy(): void;
142
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxMasonryItemDirective, never>;
143
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IoxMasonryItemDirective, "[ioxMasonryItem], ioxMasonryItem", never, {}, {}, never, never, false, never>;
144
+ }
145
+
146
+ declare class IoxMasonryModule {
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxMasonryModule, never>;
148
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IoxMasonryModule, [typeof IoxMasonryComponent, typeof IoxMasonryItemDirective], [typeof i3$1.BrowserModule], [typeof IoxMasonryComponent, typeof IoxMasonryItemDirective]>;
149
+ static ɵinj: i0.ɵɵInjectorDeclaration<IoxMasonryModule>;
150
+ }
151
+
152
+ declare class PageScrollProvider {
153
+ private lenis?;
154
+ private rafId?;
155
+ init(options?: ConstructorParameters<typeof Lenis>[0]): void;
156
+ scrollTo(y: number, options?: {
157
+ duration?: number;
158
+ immediate?: boolean;
159
+ }): void;
160
+ scrollToTop(options?: {
161
+ duration?: number;
162
+ immediate?: boolean;
163
+ }): void;
164
+ get instance(): Lenis;
165
+ private startLoop;
166
+ static ɵfac: i0.ɵɵFactoryDeclaration<PageScrollProvider, never>;
167
+ static ɵprov: i0.ɵɵInjectableDeclaration<PageScrollProvider>;
168
+ }
169
+
170
+ declare class IoxPageComponent implements AfterViewInit, OnDestroy {
171
+ private pageScrollProvider;
172
+ class: string;
173
+ page: ElementRef<HTMLDivElement>;
174
+ private scrollSubscription;
175
+ scrollEvent: EventEmitter<{
176
+ scrollTop: number;
177
+ scrollLeft: number;
178
+ scrollHeight: number;
179
+ scrollWidth: number;
180
+ clientHeight: number;
181
+ clientWidth: number;
182
+ scrollPercentage: number;
183
+ }>;
184
+ constructor(pageScrollProvider: PageScrollProvider);
185
+ ngAfterViewInit(): void;
186
+ onScroll(event: Event): void;
187
+ ngOnDestroy(): void;
188
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxPageComponent, never>;
189
+ static ɵcmp: i0.ɵɵComponentDeclaration<IoxPageComponent, "iox-page-component", never, { "class": { "alias": "class"; "required": false; }; }, { "scrollEvent": "scrollEvent"; }, never, ["*"], false, never>;
190
+ }
191
+
192
+ declare class IoxPageModule {
193
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxPageModule, never>;
194
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IoxPageModule, [typeof IoxPageComponent], [typeof i2.CommonModule], [typeof IoxPageComponent]>;
195
+ static ɵinj: i0.ɵɵInjectorDeclaration<IoxPageModule>;
196
+ }
197
+
198
+ declare class IoxUiModule {
199
+ static ɵfac: i0.ɵɵFactoryDeclaration<IoxUiModule, never>;
200
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IoxUiModule, never, [typeof IoxAosModule, typeof IoxPageModule], [typeof IoxAosModule, typeof IoxPageModule]>;
201
+ static ɵinj: i0.ɵɵInjectorDeclaration<IoxUiModule>;
202
+ }
203
+
204
+ export { AOSService, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxMasonryComponent, IoxMasonryItemDirective, IoxMasonryModule, IoxMasonryService, IoxPageComponent, IoxPageModule, IoxUiModule, PageScrollProvider, ViewPositionDirective, ViewPositionModule };
205
+ export type { IoxMasonryOptions };
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@vectoriox/iox-ui",
3
+ "version": "4.0.2",
4
+ "peerDependencies": {
5
+ "@angular/common": "^20.0.0",
6
+ "@angular/core": "^20.0.0",
7
+ "@angular/animations": "^20.0.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0",
11
+ "@fristys/masonry": "^1.1.7"
12
+ },
13
+ "module": "fesm2022/vectoriox-iox-ui.mjs",
14
+ "typings": "index.d.ts",
15
+ "exports": {
16
+ "./package.json": {
17
+ "default": "./package.json"
18
+ },
19
+ ".": {
20
+ "types": "./index.d.ts",
21
+ "default": "./fesm2022/vectoriox-iox-ui.mjs"
22
+ }
23
+ },
24
+ "sideEffects": false
25
+ }