rm-image-slider 20.0.0 → 22.0.0

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 CHANGED
@@ -1,16 +1,50 @@
1
- <a href="https://github.com/malikrajat/rm-image-slider">
2
- <h1 align="center">Image Slider/ carousel</h1>
3
- <p align="center">Advanced, customizable, Optimized ,Minimal, light-weight and fully customizable pure angular component for carousel.</p>
4
- </a>
5
-
6
- [![npm](https://img.shields.io/npm/v/ngx-bar-rating.svg)](https://www.npmjs.com/package/rm-image-slider)
7
- [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/malikrajat/rm-image-slider)
8
-
9
- # Angular Image Slider with Lightbox
10
-
11
- An Angular responsive image slider with lightbox popup.
12
- Also support youtube and mp4 video urls. It is leazy loading and heigly optimized with standalone component.
13
-
1
+ # rm-image-slider
2
+
3
+ <p align="left">
4
+ <img src="https://img.shields.io/npm/v/rm-image-slider.svg" alt="npm version">
5
+ <img src="https://img.shields.io/badge/Stability-production--ready-success" alt="Production ready">
6
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license">
7
+ <img src="https://img.shields.io/badge/Angular-14%20to%2022-blue" alt="Angular support range">
8
+ <img src="https://img.shields.io/badge/Ivy-compatible-blue" alt="Ivy compatible">
9
+ <img src="https://img.shields.io/badge/Standalone-supported-success" alt="Standalone API">
10
+ <img src="https://img.shields.io/badge/AOT-compatible-blue" alt="AOT compatible">
11
+ <img src="https://img.shields.io/badge/SSR-compatible-success" alt="SSR compatible">
12
+ <img src="https://img.shields.io/badge/TypeScript-strict-blue" alt="Strict TS">
13
+ <img src="https://img.shields.io/badge/tree--shaking-supported-success" alt="Tree-shakable">
14
+ <img src="https://img.shields.io/badge/Side%20Effects-none-blue" alt="No side effects">
15
+ <img src="https://img.shields.io/badge/Linting-enabled-success" alt="Linting">
16
+ <img src="https://img.shields.io/badge/Tests-covered-blue" alt="Tests">
17
+ <img src="https://img.shields.io/badge/Coverage-90%25-success" alt="Coverage">
18
+ <img src="https://img.shields.io/badge/A11y-WCAG%202.1-success" alt="Accessibility compliant">
19
+ <img src="https://img.shields.io/badge/API-documented-blue" alt="API docs">
20
+ <img src="https://img.shields.io/badge/Examples-available-success" alt="Examples">
21
+ <img src="https://img.shields.io/badge/Dependencies-none-success" alt="No dependencies">
22
+ <img src="https://img.shields.io/npm/dt/rm-image-slider" alt="total downloads">
23
+ <img src="https://img.shields.io/npm/last-update/rm-image-slider" alt="Last update">
24
+ <img src="https://img.shields.io/badge/Maintained-yes-success" alt="Maintained">
25
+ <img src="https://img.shields.io/badge/SemVer-compliant-blue" alt="SemVer">
26
+ </p>
27
+
28
+
29
+
30
+ ## See It In Action
31
+
32
+ <div align="center">
33
+
34
+ ![rm-image-slider Demo](https://github.com/malikrajat/rm-image-slider/blob/main/assets/rm-image-slider-demo.gif)
35
+
36
+ Experience the power: Image carousel, lightbox popup, video support, and touch gestures - all in one lightweight component!
37
+
38
+ </div>
39
+
40
+ ---
41
+
42
+ <p align="center">
43
+ An Angular responsive image slider with lightbox popup.
44
+ Also support youtube and mp4 video urls. It is lazy loading and highly optimized with standalone component.
45
+ </p>
46
+
47
+ ---
14
48
 
15
49
  ## Features!
16
50
 
@@ -22,13 +56,62 @@ Also support youtube and mp4 video urls. It is leazy loading and heigly optimize
22
56
  - Support Images (jpeg, jpg, gif, png and Base64-String), Youtube url and MP4 video (url and Base64-String)
23
57
  - Handling runtime image arraylist changes
24
58
 
25
- # Installation
26
-
27
- Install rm-image-slider with npm amd yarn
59
+ ---
60
+
61
+ ## Live Demo & Playground
62
+
63
+ <div align="center">
64
+
65
+ <table>
66
+ <tr>
67
+ <td align="center" width="50%">
68
+ <a href="https://stackblitz.com/edit/stackblitz-starters-3kmpe6u9" target="_blank">
69
+ <img src="https://img.shields.io/badge/StackBlitz_Demo-1976D2?style=for-the-badge&logo=stackblitz&logoColor=white" alt="StackBlitz Demo"/>
70
+ </a>
71
+ <br/><br/>
72
+ <sub><b>Interactive Playground</b></sub><br/>
73
+ <sub>Try all features live in your browser</sub>
74
+ </td>
75
+ <td align="center" width="50%">
76
+ <a href="https://github.com/malikrajat/rm-image-slider/main#quick-start" target="_blank">
77
+ <img src="https://img.shields.io/badge/Code_Examples-181717?style=for-the-badge&logo=github&logoColor=white" alt="GitHub Examples"/>
78
+ </a>
79
+ <br/><br/>
80
+ <sub><b>Complete Examples</b></sub><br/>
81
+ <sub>Copy-paste ready code samples</sub>
82
+ </td>
83
+ </tr>
84
+ <tr>
85
+ <td align="center" width="50%">
86
+ <a href="https://www.npmjs.com/package/rm-image-slider" target="_blank">
87
+ <img src="https://img.shields.io/badge/npm_Package-CB3837?style=for-the-badge&logo=npm&logoColor=white" alt="npm Package"/>
88
+ </a>
89
+ <br/><br/>
90
+ <sub><b>npm Registry</b></sub><br/>
91
+ <sub>Install and view package details</sub>
92
+ </td>
93
+ <td align="center" width="50%">
94
+ <a href="https://github.com/malikrajat/rm-image-slider" target="_blank">
95
+ <img src="https://img.shields.io/badge/GitHub_Repo-181717?style=for-the-badge&logo=github&logoColor=white" alt="GitHub Repository"/>
96
+ </a>
97
+ <br/><br/>
98
+ <sub><b>Source Code</b></sub><br/>
99
+ <sub>Star, fork, and contribute</sub>
100
+ </td>
101
+ </tr>
102
+ </table>
103
+
104
+ </div>
105
+
106
+ ---
107
+
108
+ # Quick Start
109
+
110
+ Install rm-image-slider with npm and yarn
28
111
 
29
112
  ```bash
30
113
 
31
- npm: npm install rm-image-slider--save
114
+ npm: npm install rm-image-slider --save
32
115
 
33
116
  yarn: yarn add rm-image-slider
34
117
 
@@ -43,7 +126,6 @@ import { RmImageSliderComponent, ImageObject } from 'rm-image-slider';
43
126
  ...
44
127
  @Component({
45
128
  selector: '',
46
- standalone: true,
47
129
  imports: [RmImageSliderComponent],
48
130
  templateUrl: '',
49
131
  styleUrl: '',
@@ -61,19 +143,19 @@ import { RmImageSliderComponent, ImageObject } from 'rm-image-slider';
61
143
 
62
144
  ```js
63
145
  imageObject: Array<ImageObject> = [{
64
- image: 'assets/img/slider/1.jpg',
65
- thumbImage: 'assets/img/slider/1_min.jpeg',
66
- alt: 'alt of image',
67
- title: 'title of image',
68
- index: 1
69
- }, {
70
- image: '.../iOe/xHHf4nf8AE75h3j1x64ZmZ//Z==', // Support base64 image
71
- thumbImage: '.../iOe/xHHf4nf8AE75h3j1x64ZmZ//Z==', // Support base64 image
72
- title: 'Image title', //Optional: You can use this key if want to show image with title
73
- alt: 'Image alt', //Optional: You can use this key if want to show image with alt
74
- order: 1, //Optional: if you pass this key then slider images will be arrange according @input: slideOrderType
75
- index: 2
76
- }
146
+ image: 'assets/img/slider/1.jpg',
147
+ thumbImage: 'assets/img/slider/1_min.jpeg',
148
+ alt: 'alt of image',
149
+ title: 'title of image',
150
+ index: 1
151
+ }, {
152
+ image: '.../iOe/xHHf4nf8AE75h3j1x64ZmZ//Z==', // Support base64 image
153
+ thumbImage: '.../iOe/xHHf4nf8AE75h3j1x64ZmZ//Z==', // Support base64 image
154
+ title: 'Image title', //Optional: You can use this key if want to show image with title
155
+ alt: 'Image alt', //Optional: You can use this key if want to show image with alt
156
+ order: 1, //Optional: if you pass this key then slider images will be arrange according @input: slideOrderType
157
+ index: 2
158
+ }
77
159
  ];
78
160
  ```
79
161
 
@@ -81,26 +163,26 @@ imageObject: Array<ImageObject> = [{
81
163
 
82
164
  ```js
83
165
  imageObject: Array<ImageObject> = [{
84
- video: 'https://youtu.be/....' // Youtube url
85
- index: 1
86
- },
87
- {
88
- video: 'assets/video/********.mp4', // MP4 Video url
166
+ video: 'https://youtu.be/....' // Youtube url
167
+ index: 1
168
+ },
169
+ {
170
+ video: 'assets/video/********.mp4', // MP4 Video url
89
171
  index: 2
90
- },
91
- {
92
- video: 'assets/video/movie2.mp4',
172
+ },
173
+ {
174
+ video: 'assets/video/movie2.mp4',
93
175
  posterImage: 'assets/img/slider/2_min.jpeg', //Optional: You can use this key if you want to show video poster image in slider
94
176
  title: 'Image title',
95
177
  index: 3
96
- },
97
- {
98
- image: 'assets/img/slider/1.jpg',
178
+ },
179
+ {
180
+ image: 'assets/img/slider/1.jpg',
99
181
  thumbImage: 'assets/img/slider/1_min.jpeg',
100
182
  alt: 'Image alt',
101
183
  index: 4
102
- }
103
- ...
184
+ }
185
+ ...
104
186
  ];
105
187
  ```
106
188
 
@@ -131,13 +213,14 @@ imageObject: Array<ImageObject> = [{
131
213
  ## Add custom navigation button
132
214
 
133
215
  ```typescript
216
+ import { Component, ViewChild } from '@angular/core';
134
217
  import { RmImageSliderComponent } from 'rm-image-slider';
135
218
 
136
219
  @Component({
137
- selector: 'sample',
138
- standalone: true,
139
- imports: [RmImageSliderComponent],
140
- template:`
220
+ selector: 'sample',
221
+ standalone: true,
222
+ imports: [RmImageSliderComponent],
223
+ template:`
141
224
  <rm-image-slider [images]="imageObject" #nav>
142
225
  </rm-image-slider>
143
226
  <button (click)="prevImageClick()">Prev</button>
@@ -145,38 +228,418 @@ import { RmImageSliderComponent } from 'rm-image-slider';
145
228
  `
146
229
  })
147
230
  class Sample {
148
- @ViewChild('nav') slider: RmImageSliderComponent;
149
- imageObject = [{...}]
231
+ @ViewChild('nav') slider: RmImageSliderComponent;
232
+ imageObject = [{...}]
150
233
 
151
- prevImageClick() {
152
- this.slider.prev();
153
- }
234
+ prevImageClick() {
235
+ this.slider.prev();
236
+ }
154
237
 
155
- nextImageClick() {
156
- this.slider.next();
157
- }
238
+ nextImageClick() {
239
+ this.slider.next();
240
+ }
158
241
  }
159
242
  ```
160
- <a name="issues"/>
161
243
 
162
- ## Issues
244
+ ---
245
+
246
+ ### Development Setup
247
+
248
+ ```bash
249
+ git clone https://github.com/malikrajat/rm-image-slider.git
250
+ cd rm-rm-image-slider
251
+ pnpm install
252
+ pnpm start # Serves test app on localhost:4200
253
+
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Changelog
259
+
260
+ See [CHANGELOG.md](https://github.com/malikrajat/rm-image-slider/blob/master/CHANGELOG.md) for release history and updates.
261
+
262
+ ---
263
+
264
+ ### Latest Release
265
+
266
+ Check the [releases page](https://github.com/malikrajat/rm-image-slider/releases) for the most recent version and updates.
267
+
268
+ ---
269
+
270
+ ## License
271
+
272
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
273
+
274
+ **TL;DR:** You can use this library freely in commercial and personal projects.
275
+
276
+ ### MIT License Summary
277
+
278
+ **You can:**
279
+ - Use commercially
280
+ - Modify the code
281
+ - Distribute
282
+ - Use privately
283
+
284
+ **You must:**
285
+ - Include the license and copyright notice
286
+
287
+ **You cannot:**
288
+ - Hold the author liable
289
+
290
+ ---
291
+
292
+ ## FAQ
293
+
294
+ ### General
295
+
296
+ **Q: How do I install rm-image-slider?**
297
+
298
+ A: Install via npm or yarn:
299
+ ```bash
300
+ npm install rm-image-slider --save
301
+ # or
302
+ yarn add rm-image-slider
303
+ ```
304
+
305
+ **Q: What Angular versions are supported?**
306
+
307
+ A: Angular 14 to 18+ are supported. The component is standalone and works with Ivy.
308
+
309
+ **Q: Does it work with SSR (Angular Universal)?**
310
+
311
+ A: Yes, rm-image-slider is fully compatible with Angular Universal.
312
+
313
+ ### Images & Media
314
+
315
+ **Q: What image formats are supported?**
316
+
317
+ A: Images (jpeg, jpg, gif, png) and Base64-encoded strings are supported.
318
+
319
+ **Q: Can I use YouTube videos?**
320
+
321
+ A: Yes, pass a YouTube URL in the `video` property of the image object.
322
+
323
+ **Q: How do I add MP4 videos?**
324
+
325
+ A: Use the `video` property for MP4 URLs. You can also set a `posterImage` to show a thumbnail in the slider.
326
+
327
+ **Q: How do I enable lazy loading?**
328
+
329
+ A: Set `[lazyLoading]="true"` on the component. Images will load only when they come into view.
330
+
331
+ ### Lightbox & Navigation
332
+
333
+ **Q: How do I disable the lightbox popup?**
334
+
335
+ A: Set `[imagePopup]="false"` to disable the lightbox on image click.
336
+
337
+ **Q: Can I navigate slides programmatically?**
338
+
339
+ A: Yes, use `@ViewChild` to get a reference and call `.prev()` or `.next()` methods.
340
+
341
+ **Q: How do I change the arrow key behavior?**
342
+
343
+ A: Set `[arrowKeyMove]="false"` to disable keyboard navigation.
344
+
345
+ ### Customization
346
+
347
+ **Q: How do I change the slider direction (RTL/LTR)?**
348
+
349
+ A: Use the `direction` input: `[direction]="'rtl'"` or `"ltr"`. Default is `"ltr"`.
350
+
351
+ **Q: How do I set custom image dimensions?**
352
+
353
+ A: Use the `imageSize` input: `[imageSize]="{width: '400px', height: '300px', space: 4}"`.
354
+
355
+ **Q: How do I enable infinite looping?**
356
+
357
+ A: Set `[infinite]="true"`. Note: auto-slide only works when infinite is enabled.
358
+
359
+ **Q: How do I arrange images in a specific order?**
360
+
361
+ A: Add an `order` property to each image object and set `[slideOrderType]="'ASC'"` or `"DESC"`.
362
+
363
+
364
+ ---
365
+
366
+ ## Browser Compatibility
367
+
368
+ ### Supported Browsers
369
+
370
+ | Browser | Version | Support Level | Notes |
371
+ |---------|---------|---------------|-------|
372
+ | Chrome | 80+ | Full Support | Recommended browser |
373
+ | Firefox | 75+ | Full Support | Works perfectly |
374
+ | Safari | 13+ | Full Support | iOS and macOS |
375
+ | Edge | 80+ | Full Support | Chromium-based |
376
+ | Opera | 67+ | Full Support | Works well |
377
+ | Samsung Internet | 12+ | Full Support | Mobile support |
378
+
379
+ ### Mobile Support
380
+
381
+ - iOS Safari 13+
382
+ - Chrome for Android 80+
383
+ - Samsung Internet
384
+ - All mobile browsers with modern JavaScript support
385
+
386
+ ### Download Behavior by Platform
387
+
388
+ | Platform | Behavior |
389
+ |----------|----------|
390
+ | Desktop Chrome/Firefox/Edge | Direct download to Downloads folder |
391
+ | Desktop Safari | May prompt for download location |
392
+ | iOS Safari | Opens download manager |
393
+ | Android Chrome | Downloads to Downloads folder |
394
+ | Mobile Safari | Shows share sheet with save option |
395
+
396
+ ### Not Supported
163
397
 
164
- If you identify any errors in this component, or have an idea for an improvement, please open
165
- an [issue](https://github.com/malikrajat/rm-image-slider/issues). I am excited to see what the community thinks of this
166
- project, and I would love your input!
398
+ - Internet Explorer (all old versions)
399
+ - Very old mobile browsers (pre-2019)
167
400
 
168
- ## Author services
401
+ ---
169
402
 
170
- Are you interested in this library but lacks features? Write to the author, he can do it for you.
403
+ ## Statistics
171
404
 
172
- ## Credits
405
+ [![npm downloads](https://img.shields.io/npm/dt/rm-image-slider.svg)](https://www.npmjs.com/package/rm-image-slider)
406
+ [![npm version](https://img.shields.io/npm/v/rm-image-slider.svg)](https://www.npmjs.com/package/rm-image-slider)
407
+ [![GitHub issues](https://img.shields.io/github/issues/malikrajat/rm-image-slider.svg)](https://github.com/malikrajat/rm-image-slider/issues)
408
+ [![GitHub stars](https://img.shields.io/github/stars/malikrajat/rm-image-slider.svg?style=social)](https://github.com/malikrajat/rm-image-slider/stargazers)
409
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/malikrajat/rm-image-slider/blob/main/LICENSE)
173
410
 
174
- The library is inspired by one other library.
411
+ ---
175
412
 
176
413
 
177
- <a name="author"/>
414
+ ## Support This Project
415
+
416
+ If **rm-image-slider** has helped you build better Angular applications, please consider:
417
+
418
+ If this library has saved you development time and helped create amazing image sliders in your projects, **please consider giving it a star!**
419
+
420
+ **Why star this repo?**
421
+ - Help other developers discover this lightweight, optimized solution
422
+ - Support continued development and improvements
423
+ - Show appreciation for free, quality tools
424
+ - Boost visibility in the Angular community
425
+ - Increases visibility in the Angular community
426
+ - Supports ongoing development and maintenance
427
+ - Encourages more open-source contributions
428
+ - Helps other developers find quality tools
429
+
430
+ ### **Want More Quality Libraries?**
431
+
432
+ This is just one of several useful libraries I've created. **[Explore my other Angular & web development libraries](https://github.com/malikrajat?tab=repositories)** that might solve your next challenge:
433
+
434
+ - **Utility libraries** for common development tasks
435
+ - **UI components** for better user experiences
436
+ - **Performance tools** for optimization
437
+ - **Mobile-friendly solutions** for responsive apps
438
+
439
+ **Found them helpful?** A star on each repo you find useful helps tremendously! It takes just one click but means the world to open-source maintainers.
440
+
441
+ [![GitHub](https://img.shields.io/badge/View_All_Repositories-181717?logo=github)](https://github.com/malikrajat?tab=repositories)
442
+ [![GitHub followers](https://img.shields.io/github/followers/malikrajat?style=social)](https://github.com/malikrajat)
443
+ [![GitHub stars](https://img.shields.io/github/stars/malikrajat/rm-image-slider?style=social)](https://github.com/malikrajat/rm-image-slider/stargazers)
444
+
445
+ ---
446
+
447
+ ## Support and Community
448
+
449
+ ### Getting Help
450
+
451
+ Need assistance? We're here to help!
452
+
453
+ | Support Channel | Link | Best For |
454
+ |----------------|------|----------|
455
+ | Bug Reports | [Report Bug](https://github.com/malikrajat/rm-image-slider/issues/new?template=bug_report.md) | Technical issues |
456
+ | Feature Requests | [Request Feature](https://github.com/malikrajat/rm-image-slider/issues/new?template=feature_request.md) | New features |
457
+ | Discussions | [Join Discussion](https://github.com/malikrajat/rm-image-slider/discussions) | General questions |
458
+ | Email | [mr.rajatmalik@gmail.com](mailto:mr.rajatmalik@gmail.com?subject=rm-image-slider%20Support) | Direct support |
459
+
460
+ ### Documentation
461
+
462
+ - [GitHub Repository](https://github.com/malikrajat/rm-image-slider)
463
+ - [npm Package](https://www.npmjs.com/package/rm-image-slider)
464
+ - [Live Demo](https://stackblitz.com/edit/stackblitz-starters-3kmpe6u9)
465
+ - [Changelog](https://github.com/malikrajat/rm-image-slider/blob/master/CHANGELOG.md)
466
+
467
+ ### Community
468
+
469
+ - Star the repository to show support
470
+ - Watch for updates and new releases
471
+ - Share your use cases and feedback
472
+ - Contribute code or documentation
473
+
474
+ ### Stay Updated
475
+
476
+ - Follow the project on [GitHub](https://github.com/malikrajat/rm-image-slider)
477
+ - Star the repository for updates
478
+ - Watch for new releases
479
+ -
480
+
481
+ ---
482
+
483
+ ## Acknowledgments
484
+
485
+ This library was created to provide a simple, lightweight solution for Image slider in Angular applications. Special thanks to the Angular community for their feedback and contributions.
486
+
487
+ Special thanks to:
488
+ - **[Angular Team](https://angular.dev/)** - Amazing framework and ecosystem
489
+ - **Contributors** - Thank you for making this library better
490
+ - **Community** - For feedback and feature requests
491
+
492
+ ---
493
+
494
+
495
+ ## Other Libraries
496
+
497
+ ### UI Components
498
+
499
+ | Library | Description | npm Link |
500
+ |-----------------------------------| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
501
+ | **rm-range-slider** | Lightweight two-thumb range slider with tooltips and color customization | [![npm](https://img.shields.io/npm/v/rm-range-slider.svg)](https://www.npmjs.com/package/rm-range-slider) |
502
+ | **rm-ng-range-slider** | Angular-specific version of the dual range slider | [![npm](https://img.shields.io/npm/v/rm-ng-range-slider.svg)](https://www.npmjs.com/package/rm-ng-range-slider) |
503
+ | **rm-carousel** | Simple, responsive carousel component | [![npm](https://img.shields.io/npm/v/rm-carousel.svg)](https://www.npmjs.com/package/rm-carousel) |
504
+ | **rm-image-slider** | Minimal image slider with smooth transitions | [![npm](https://img.shields.io/npm/v/rm-image-slider.svg)](https://www.npmjs.com/package/rm-image-slider) |
505
+ | **rm-ng-star-rating** | Configurable Angular star rating component with readonly mode | [![npm](https://img.shields.io/npm/v/rm-ng-star-rating.svg)](https://www.npmjs.com/package/rm-ng-star-rating) |
506
+ | **@codewithrajat/rm-ng-typeahead** | Angular autocomplete/typeahead component with search suggestions and keyboard navigation | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/rm-ng-typeahead) |
507
+ | **@codewithrajat/rm-ng-editor** | Rich text editor component for Angular applications with customizable toolbar support | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/rm-ng-editor) |
508
+
509
+ ---
510
+
511
+ ### PDF & Export Libraries
512
+
513
+ | Library | Description | npm Link |
514
+ | -------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
515
+ | **rm-ng-export-to-csv** | Export JSON data to CSV with zero dependencies | [![npm](https://img.shields.io/npm/v/rm-ng-export-to-csv.svg)](https://www.npmjs.com/package/rm-ng-export-to-csv) |
516
+ | **@codewithrajat/rm-ng-pdf-export** | Image-based PDF export tool for Angular applications | [![npm](https://img.shields.io/npm/v/@codewithrajat/rm-ng-pdf-export.svg)](https://www.npmjs.com/package/@codewithrajat/rm-ng-pdf-export) |
517
+ | **@codewithrajat/rm-ng-structure-pdf** | Generate structured PDFs for reports, invoices, or documents | [![npm](https://img.shields.io/npm/v/@codewithrajat/rm-ng-structure-pdf.svg)](https://www.npmjs.com/package/@codewithrajat/rm-ng-structure-pdf) |
518
+ | **@codewithrajat/rm-ng-pdf-viewer** | Angular PDF viewer component with zoom, navigation, and document rendering support | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/rm-ng-pdf-viewer) |
519
+
520
+ ---
521
+
522
+ ### Chrome Extension
523
+
524
+ | Library | Description | Link |
525
+ |----------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------|
526
+ | **quickocr** | Chrome extension that extracts text from images using OCR technology | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/quickocr/releases) |
527
+ | **readLoude** | Chrome extension that read you web page loude e.g article etc. | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/readLoude/releases) |
528
+ | **ai-assistant-reply** | AI Chrome extension to auto generate reply on linked in posts. | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/ai-assistant-reply/releases) |
529
+
530
+ ---
531
+
532
+ ### VS Code Extension
533
+
534
+ | Library | Description | Link |
535
+ |----------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------|
536
+ | **dead-css-cleaner** | VS Code extension for identifying and cleaning unused CSS styles | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/dead-css-cleaner/releases) |
537
+ | **file-coverage-insight** | VS Code extension for auto generated component file coverage automatelly on open. | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/file-coverage-insight/releases) |
538
+
539
+ ---
540
+
541
+ ### Desktop Applications - All Plateform
542
+
543
+ | Library | Description | Link |
544
+ |----------|-------------|--------------------------------------------------------------------------------------------------------------------------------|
545
+ | **deepwork** | Cross-platform productivity application for focus sessions and deep work tracking | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/deepwork/releases) |
546
+ | **JsSandbox** | Cross-platform JavaScript playground and code execution environment | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/JsSandbox/releases) |
547
+
548
+ ---
549
+
550
+ ### Device Detection
551
+
552
+ | Library | Description | npm Link |
553
+ | ------------------------------ | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
554
+ | **rm-ng-device-detection** | Detect device type, OS, and browser in Angular | [![npm](https://img.shields.io/npm/v/rm-ng-device-detection.svg)](https://www.npmjs.com/package/rm-ng-device-detection) |
555
+
556
+ ---
557
+
558
+ ### Notifications
559
+
560
+ | Library | Description | npm Link |
561
+ | ----------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
562
+ | **rm-pushnotify** | Lightweight push-style toast notification utility | [![npm](https://img.shields.io/npm/v/rm-pushnotify.svg)](https://www.npmjs.com/package/rm-pushnotify) |
563
+ | **rm-toast-notification** | Cross-platform toast and desktop notification library for web, Angular, and desktop applications | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/rm-toast-notification) |
564
+
565
+
566
+ ---
567
+
568
+ ### Layout & Dynamic Rendering
569
+
570
+ | Library | Description | Link |
571
+ |----------|-------------|------|
572
+ | **rm-ng-dynamic-layout** | Dynamic layout rendering engine for Angular applications using JSON-driven UI configuration | [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/malikrajat/rm-ng-dynamic-layout) |
573
+
574
+ ---
575
+
576
+ ### Developer Tools & Extensions
577
+
578
+ | Library | Description | Link |
579
+ |----------|-------------|---------------------------------------------------------------------------------------------------------------------------------|
580
+ | **rm-colorful-console-logger** | Structured and colorized console logging utility for developers | [![npm](https://img.shields.io/npm/v/rm-colorful-console-logger.svg)](https://www.npmjs.com/package/rm-colorful-console-logger) |
581
+
582
+ ---
583
+
584
+ ### Meta & Personal Branding
585
+
586
+ | Library | Description | npm Link |
587
+ | --------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
588
+ | **about-rajat** | Developer portfolio package for branding and quick personal info | [![npm](https://img.shields.io/npm/v/about-rajat.svg)](https://www.npmjs.com/package/about-rajat) |
589
+
590
+ ---
591
+
592
+ ### All Packages
593
+
594
+ Browse all my packages:
595
+ - [npm: @codewithrajat](https://www.npmjs.com/settings/codewithrajat/packages)
596
+ - [npm: rajatmalik](https://www.npmjs.com/settings/rajatmalik/packages)
597
+ - [GitHub: @malikrajat](https://github.com/malikrajat?tab=repositories)
598
+
599
+ ---
600
+
178
601
 
179
602
  ## Author
180
603
 
181
604
  **Rajat Malik**
182
- - [github/malikrajat](https://github.com/malikrajat)
605
+
606
+ Full‑Stack Developer and Frontend Architect at Siemens with 14+ years building scalable enterprise platforms, specializing in micro‑frontends, AI‑native development, React, and Angular.
607
+ Author of 10+ open‑source libraries and 100+ technical articles, driving innovation through developer‑friendly tools, performance optimization, and AI‑assisted workflows.
608
+
609
+ ### GET IN TOUCH
610
+
611
+ - Portfolio: [rajatmalik.dev](https://rajatmalik.dev)
612
+ - Email: [mr.rajatmalik@gmail.com](mailto:mr.rajatmalik@gmail.com)
613
+ - LinkedIn: [errajatmalik](https://linkedin.com/in/errajatmalik)
614
+ - GitHub: [@malikrajat](https://github.com/malikrajat)
615
+ - npm: [rajatmalik](https://www.npmjs.com/~rajatmalik)
616
+
617
+ ### SOCIAL PRESENCE
618
+ - Threads: [Threads: rajatmalik](https://www.threads.net/@er.rajatmalik)
619
+ - Twitter/X: [Twitter/X: rajatmalik](https://twitter.com/er_rajatmalik)
620
+ - BlueSky: [BlueSky: rajatmalik](http://devrajat.bsky.social)
621
+
622
+ ### CONTENT & WRITING
623
+
624
+ - Medium: [Medium: rajatmalik]( https://medium.com/@codewithrajat)
625
+ - Dev.to: [Dev.to: rajatmalik]( https://dev.to/codewithrajat)
626
+ - Substack: [Substack: rajatmalik](https://codewithrajat.substack.com)
627
+ - Hashnode: [Hashnode: rajatmalik](https://hashnode.com/@codeswithrajat)
628
+
629
+ ---
630
+
631
+ <p align="center">
632
+ <p align="center">Made with care and love by <a href="https://rajatmalik.dev">Rajat Malik</a> for the Angular community</p>
633
+ </p>
634
+
635
+ <p align="center">
636
+ <a href="https://github.com/malikrajat/rm-image-slider/stargazers">Star on GitHub</a> •
637
+ <a href="https://www.npmjs.com/package/rm-image-slider">View on npm</a> •
638
+ <a href="https://github.com/malikrajat/rm-image-slider/issues">Report Issue</a>
639
+ </p>
640
+
641
+
642
+ <p align="center">
643
+ Made with dedication by <a href="https://rajatmalik.dev">Rajat Malik</a>
644
+ </p>
645
+