mis-crystal-design-system 4.0.29-test → 4.0.30-test

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.
@@ -0,0 +1,112 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core')) :
3
+ typeof define === 'function' && define.amd ? define('mis-crystal-design-system/star-rating', ['exports', '@angular/common', '@angular/core'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['mis-crystal-design-system'] = global['mis-crystal-design-system'] || {}, global['mis-crystal-design-system']['star-rating'] = {}), global.ng.common, global.ng.core));
5
+ }(this, (function (exports, common, core) { 'use strict';
6
+
7
+ var StarRatingComponent = /** @class */ (function () {
8
+ function StarRatingComponent() {
9
+ this.noOfStars = 0;
10
+ this.selectedRating = -1;
11
+ this.selectedStarSvg = '';
12
+ this.emptyStarSvg = '';
13
+ this.starHeight = '24px';
14
+ this.starWidth = '24px';
15
+ this.starSelectionAllowed = true;
16
+ this.starHoverAllowed = true;
17
+ this.starRated = new core.EventEmitter();
18
+ this.starData = [];
19
+ this.selectedData = [];
20
+ }
21
+ StarRatingComponent.prototype.ngOnInit = function () {
22
+ var _this = this;
23
+ if (this.noOfStars > 0) {
24
+ this.starData = Array.from({ length: this.noOfStars }, function (_, i) { return ({
25
+ id: i,
26
+ asset: _this.emptyStarSvg,
27
+ hoverId: -1,
28
+ }); });
29
+ }
30
+ this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating;
31
+ this.assetsSelection(this.selectedRating);
32
+ this.selectedData = JSON.parse(JSON.stringify(this.starData));
33
+ };
34
+ StarRatingComponent.prototype.ngOnChanges = function (changes) {
35
+ this.assetsSelection(this.selectedRating);
36
+ this.selectedData = JSON.parse(JSON.stringify(this.starData));
37
+ };
38
+ StarRatingComponent.prototype.assetsSelection = function (index) {
39
+ var _this = this;
40
+ if (index === void 0) { index = -1; }
41
+ this.starData.forEach(function (item) {
42
+ item.asset = item.id <= index - 1 ? _this.selectedStarSvg : _this.emptyStarSvg;
43
+ item.hoverId = -1;
44
+ });
45
+ };
46
+ StarRatingComponent.prototype.starMouseOver = function (index) {
47
+ var _this = this;
48
+ if (!this.starHoverAllowed)
49
+ return;
50
+ var threshold = this.selectedRating - 1;
51
+ this.starData.forEach(function (item) {
52
+ item.hoverId = index;
53
+ item.asset = index > threshold && item.id <= index ? _this.selectedStarSvg : _this.selectedData[item.id].asset;
54
+ });
55
+ };
56
+ StarRatingComponent.prototype.starMouseLeave = function () {
57
+ if (!this.starHoverAllowed)
58
+ return;
59
+ this.starData = JSON.parse(JSON.stringify(this.selectedData));
60
+ this.assetsSelection(this.selectedRating);
61
+ };
62
+ StarRatingComponent.prototype.selectedStarData = function (index) {
63
+ if (this.starSelectionAllowed) {
64
+ this.starRated.emit(index + 1);
65
+ }
66
+ };
67
+ return StarRatingComponent;
68
+ }());
69
+ StarRatingComponent.decorators = [
70
+ { type: core.Component, args: [{
71
+ selector: 'mis-star-rating',
72
+ template: "<div class=\"rating-container\" (mouseleave)=\"starMouseLeave()\" [ngStyle]=\"{'cursor': starSelectionAllowed ? 'pointer' : 'not-allowed'}\">\n <div class=\"stars-container\" *ngFor=\"let star of starData\">\n <div class=\"star\" \n (click)=\"selectedStarData(star.id)\" \n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{'hoveredStarZoom': star.id === star.hoverId, 'not-hovered' : star.hoverId >=0 && star.id > star.hoverId}\"\n >\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight, 'width': starWidth}\">\n </div>\n </div>\n</div>\n",
73
+ styles: [".rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);transition:all .3s ease-out}"]
74
+ },] }
75
+ ];
76
+ StarRatingComponent.ctorParameters = function () { return []; };
77
+ StarRatingComponent.propDecorators = {
78
+ noOfStars: [{ type: core.Input }],
79
+ selectedRating: [{ type: core.Input }],
80
+ selectedStarSvg: [{ type: core.Input }],
81
+ emptyStarSvg: [{ type: core.Input }],
82
+ starHeight: [{ type: core.Input }],
83
+ starWidth: [{ type: core.Input }],
84
+ starSelectionAllowed: [{ type: core.Input }],
85
+ starHoverAllowed: [{ type: core.Input }],
86
+ starRated: [{ type: core.Output, args: ['starRated',] }]
87
+ };
88
+
89
+ var StarRatingModule = /** @class */ (function () {
90
+ function StarRatingModule() {
91
+ }
92
+ return StarRatingModule;
93
+ }());
94
+ StarRatingModule.decorators = [
95
+ { type: core.NgModule, args: [{
96
+ declarations: [StarRatingComponent],
97
+ imports: [common.CommonModule],
98
+ exports: [StarRatingComponent]
99
+ },] }
100
+ ];
101
+
102
+ /**
103
+ * Generated bundle index. Do not edit.
104
+ */
105
+
106
+ exports.StarRatingComponent = StarRatingComponent;
107
+ exports.StarRatingModule = StarRatingModule;
108
+
109
+ Object.defineProperty(exports, '__esModule', { value: true });
110
+
111
+ })));
112
+ //# sourceMappingURL=mis-crystal-design-system-star-rating.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mis-crystal-design-system-star-rating.umd.js","sources":["../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts","../../../projects/mis-components/star-rating/mis-crystal-design-system-star-rating.ts"],"sourcesContent":["import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss']\n})\nexport class StarRatingComponent implements OnInit, OnChanges {\n\n @Input() noOfStars: number = 0;\n @Input() selectedRating: number = -1;\n @Input() selectedStarSvg = '';\n @Input() emptyStarSvg = '';\n @Input() starHeight = '24px';\n @Input() starWidth = '24px';\n @Input() starSelectionAllowed = true;\n @Input() starHoverAllowed = true;\n @Output('starRated') starRated: EventEmitter<number> = new EventEmitter();\n\n starData: STAR_DATA[] = [];\n selectedData: STAR_DATA[] = [];\n constructor() { }\n\n ngOnInit(): void {\n if(this.noOfStars > 0){\n this.starData = Array.from({ length: this.noOfStars }, (_, i) => ({\n id: i,\n asset: this.emptyStarSvg,\n hoverId: -1,\n }));\n }\n this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating; \n this.assetsSelection(this.selectedRating);\n this.selectedData = JSON.parse(JSON.stringify(this.starData));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.assetsSelection(this.selectedRating);\n this.selectedData = JSON.parse(JSON.stringify(this.starData));\n }\n\n assetsSelection(index: number = -1){\n this.starData.forEach((item: STAR_DATA) => {\n item.asset = item.id <= index - 1 ? this.selectedStarSvg : this.emptyStarSvg;\n item.hoverId = -1;\n });\n }\n\n starMouseOver(index){\n if (!this.starHoverAllowed) return;\n\n const threshold = this.selectedRating - 1;\n this.starData.forEach(item => {\n item.hoverId = index;\n item.asset = index > threshold && item.id <= index ? this.selectedStarSvg : this.selectedData[item.id].asset;\n });\n\n }\n\n starMouseLeave(){\n if(!this.starHoverAllowed) return;\n\n this.starData = JSON.parse(JSON.stringify(this.selectedData));\n this.assetsSelection(this.selectedRating);\n }\n\n selectedStarData(index: number){\n if(this.starSelectionAllowed){\n this.starRated.emit(index+1)\n }\n }\n\n}\n\nexport interface STAR_DATA {\n id: number,\n asset: string,\n hoverId: number\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EventEmitter","Component","Input","Output","NgModule","CommonModule"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core")):"function"==typeof define&&define.amd?define("mis-crystal-design-system/star-rating",["exports","@angular/common","@angular/core"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self)["mis-crystal-design-system"]=t["mis-crystal-design-system"]||{},t["mis-crystal-design-system"]["star-rating"]={}),t.ng.common,t.ng.core)}(this,(function(t,e,s){"use strict";var a=function(){function t(){this.noOfStars=0,this.selectedRating=-1,this.selectedStarSvg="",this.emptyStarSvg="",this.starHeight="24px",this.starWidth="24px",this.starSelectionAllowed=!0,this.starHoverAllowed=!0,this.starRated=new s.EventEmitter,this.starData=[],this.selectedData=[]}return t.prototype.ngOnInit=function(){var t=this;this.noOfStars>0&&(this.starData=Array.from({length:this.noOfStars},(function(e,s){return{id:s,asset:t.emptyStarSvg,hoverId:-1}}))),this.selectedRating=this.selectedRating>this.noOfStars?this.noOfStars:this.selectedRating,this.assetsSelection(this.selectedRating),this.selectedData=JSON.parse(JSON.stringify(this.starData))},t.prototype.ngOnChanges=function(t){this.assetsSelection(this.selectedRating),this.selectedData=JSON.parse(JSON.stringify(this.starData))},t.prototype.assetsSelection=function(t){var e=this;void 0===t&&(t=-1),this.starData.forEach((function(s){s.asset=s.id<=t-1?e.selectedStarSvg:e.emptyStarSvg,s.hoverId=-1}))},t.prototype.starMouseOver=function(t){var e=this;if(this.starHoverAllowed){var s=this.selectedRating-1;this.starData.forEach((function(a){a.hoverId=t,a.asset=t>s&&a.id<=t?e.selectedStarSvg:e.selectedData[a.id].asset}))}},t.prototype.starMouseLeave=function(){this.starHoverAllowed&&(this.starData=JSON.parse(JSON.stringify(this.selectedData)),this.assetsSelection(this.selectedRating))},t.prototype.selectedStarData=function(t){this.starSelectionAllowed&&this.starRated.emit(t+1)},t}();a.decorators=[{type:s.Component,args:[{selector:"mis-star-rating",template:'<div class="rating-container" (mouseleave)="starMouseLeave()" [ngStyle]="{\'cursor\': starSelectionAllowed ? \'pointer\' : \'not-allowed\'}">\n <div class="stars-container" *ngFor="let star of starData">\n <div class="star" \n (click)="selectedStarData(star.id)" \n (mouseover)="starMouseOver(star.id)"\n [ngClass]="{\'hoveredStarZoom\': star.id === star.hoverId, \'not-hovered\' : star.hoverId >=0 && star.id > star.hoverId}"\n >\n <img [src]="star.asset" [ngStyle]="{\'height\': starHeight, \'width\': starWidth}">\n </div>\n </div>\n</div>\n',styles:[".rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);transition:all .3s ease-out}"]}]}],a.ctorParameters=function(){return[]},a.propDecorators={noOfStars:[{type:s.Input}],selectedRating:[{type:s.Input}],selectedStarSvg:[{type:s.Input}],emptyStarSvg:[{type:s.Input}],starHeight:[{type:s.Input}],starWidth:[{type:s.Input}],starSelectionAllowed:[{type:s.Input}],starHoverAllowed:[{type:s.Input}],starRated:[{type:s.Output,args:["starRated"]}]};var r=function(){};r.decorators=[{type:s.NgModule,args:[{declarations:[a],imports:[e.CommonModule],exports:[a]}]}],t.StarRatingComponent=a,t.StarRatingModule=r,Object.defineProperty(t,"__esModule",{value:!0})}));
2
+ //# sourceMappingURL=mis-crystal-design-system-star-rating.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts"],"names":["StarRatingComponent","this","noOfStars","selectedRating","selectedStarSvg","emptyStarSvg","starHeight","starWidth","starSelectionAllowed","starHoverAllowed","starRated","EventEmitter","starData","selectedData","prototype","ngOnInit","_this","Array","from","length","_","i","id","asset","hoverId","assetsSelection","JSON","parse","stringify","ngOnChanges","changes","index","forEach","item","starMouseOver","threshold","starMouseLeave","selectedStarData","emit","Component","args","selector","template","Input","Output","NgModule","declarations","imports","CommonModule","exports"],"mappings":"ggBAqBE,SAAAA,IAZSC,KAAAC,UAAoB,EACpBD,KAAAE,gBAA0B,EAC1BF,KAAAG,gBAAkB,GAClBH,KAAAI,aAAe,GACfJ,KAAAK,WAAa,OACbL,KAAAM,UAAY,OACZN,KAAAO,sBAAuB,EACvBP,KAAAQ,kBAAmB,EACPR,KAAAS,UAAkC,IAAIC,EAAAA,aAE3DV,KAAAW,SAAwB,GACxBX,KAAAY,aAA4B,UAG5Bb,EAAAc,UAAAC,SAAA,WAAA,IAAAC,EAAAf,KACKA,KAAKC,UAAY,IAClBD,KAAKW,SAAWK,MAAMC,KAAK,CAAEC,OAAQlB,KAAKC,YAAa,SAACkB,EAAGC,GAAM,MAAA,CAC/DC,GAAID,EACJE,MAAOP,EAAKX,aACZmB,SAAU,OAGdvB,KAAKE,eAAiBF,KAAKE,eAAiBF,KAAKC,UAAYD,KAAKC,UAAYD,KAAKE,eACnFF,KAAKwB,gBAAgBxB,KAAKE,gBAC1BF,KAAKY,aAAea,KAAKC,MAAMD,KAAKE,UAAU3B,KAAKW,YAGrDZ,EAAAc,UAAAe,YAAA,SAAYC,GACV7B,KAAKwB,gBAAgBxB,KAAKE,gBAC1BF,KAAKY,aAAea,KAAKC,MAAMD,KAAKE,UAAU3B,KAAKW,YAGrDZ,EAAAc,UAAAW,gBAAA,SAAgBM,GAAhB,IAAAf,EAAAf,UAAgB,IAAA8B,IAAAA,GAAiB,GAC/B9B,KAAKW,SAASoB,SAAQ,SAACC,GACrBA,EAAKV,MAAQU,EAAKX,IAAMS,EAAQ,EAAIf,EAAKZ,gBAAkBY,EAAKX,aAChE4B,EAAKT,SAAW,MAIpBxB,EAAAc,UAAAoB,cAAA,SAAcH,GAAd,IAAAf,EAAAf,KACE,GAAKA,KAAKQ,iBAAV,CAEA,IAAM0B,EAAYlC,KAAKE,eAAiB,EACxCF,KAAKW,SAASoB,SAAQ,SAAAC,GACpBA,EAAKT,QAAUO,EACfE,EAAKV,MAAQQ,EAAQI,GAAaF,EAAKX,IAAMS,EAAQf,EAAKZ,gBAAkBY,EAAKH,aAAaoB,EAAKX,IAAIC,WAK3GvB,EAAAc,UAAAsB,eAAA,WACMnC,KAAKQ,mBAETR,KAAKW,SAAWc,KAAKC,MAAMD,KAAKE,UAAU3B,KAAKY,eAC/CZ,KAAKwB,gBAAgBxB,KAAKE,kBAG5BH,EAAAc,UAAAuB,iBAAA,SAAiBN,GACZ9B,KAAKO,sBACNP,KAAKS,UAAU4B,KAAKP,EAAM,6BAlE/BQ,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,kBACVC,SAAA,40BAKCC,EAAAA,8BACAA,EAAAA,+BACAA,EAAAA,4BACAA,EAAAA,0BACAA,EAAAA,yBACAA,EAAAA,oCACAA,EAAAA,gCACAA,EAAAA,yBACAC,EAAAA,OAAMJ,KAAA,CAAC,sBCRV,iCALCK,EAAAA,SAAQL,KAAA,CAAC,CACRM,aAAc,CAAC9C,GACf+C,QAAS,CAACC,EAAAA,cACVC,QAAS,CAACjD","sourcesContent":["import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss']\n})\nexport class StarRatingComponent implements OnInit, OnChanges {\n\n @Input() noOfStars: number = 0;\n @Input() selectedRating: number = -1;\n @Input() selectedStarSvg = '';\n @Input() emptyStarSvg = '';\n @Input() starHeight = '24px';\n @Input() starWidth = '24px';\n @Input() starSelectionAllowed = true;\n @Input() starHoverAllowed = true;\n @Output('starRated') starRated: EventEmitter<number> = new EventEmitter();\n\n starData: STAR_DATA[] = [];\n selectedData: STAR_DATA[] = [];\n constructor() { }\n\n ngOnInit(): void {\n if(this.noOfStars > 0){\n this.starData = Array.from({ length: this.noOfStars }, (_, i) => ({\n id: i,\n asset: this.emptyStarSvg,\n hoverId: -1,\n }));\n }\n this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating; \n this.assetsSelection(this.selectedRating);\n this.selectedData = JSON.parse(JSON.stringify(this.starData));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.assetsSelection(this.selectedRating);\n this.selectedData = JSON.parse(JSON.stringify(this.starData));\n }\n\n assetsSelection(index: number = -1){\n this.starData.forEach((item: STAR_DATA) => {\n item.asset = item.id <= index - 1 ? this.selectedStarSvg : this.emptyStarSvg;\n item.hoverId = -1;\n });\n }\n\n starMouseOver(index){\n if (!this.starHoverAllowed) return;\n\n const threshold = this.selectedRating - 1;\n this.starData.forEach(item => {\n item.hoverId = index;\n item.asset = index > threshold && item.id <= index ? this.selectedStarSvg : this.selectedData[item.id].asset;\n });\n\n }\n\n starMouseLeave(){\n if(!this.starHoverAllowed) return;\n\n this.starData = JSON.parse(JSON.stringify(this.selectedData));\n this.assetsSelection(this.selectedRating);\n }\n\n selectedStarData(index: number){\n if(this.starSelectionAllowed){\n this.starRated.emit(index+1)\n }\n }\n\n}\n\nexport interface STAR_DATA {\n id: number,\n asset: string,\n hoverId: number\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./public_api";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9zdGFyLXJhdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3B1YmxpY19hcGlcIjsiXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS1zdGFyLXJhdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3N0YXItcmF0aW5nL21pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0tc3Rhci1yYXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { StarRatingModule } from './star-rating.module';
2
+ export { StarRatingComponent } from './star-rating.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3N0YXItcmF0aW5nL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTdGFyUmF0aW5nTW9kdWxlIH0gZnJvbSAnLi9zdGFyLXJhdGluZy5tb2R1bGUnO1xuZXhwb3J0IHsgU3RhclJhdGluZ0NvbXBvbmVudCB9IGZyb20gJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50JzsiXX0=
@@ -0,0 +1,78 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ export class StarRatingComponent {
3
+ constructor() {
4
+ this.noOfStars = 0;
5
+ this.selectedRating = -1;
6
+ this.selectedStarSvg = '';
7
+ this.emptyStarSvg = '';
8
+ this.starHeight = '24px';
9
+ this.starWidth = '24px';
10
+ this.starSelectionAllowed = true;
11
+ this.starHoverAllowed = true;
12
+ this.starRated = new EventEmitter();
13
+ this.starData = [];
14
+ this.selectedData = [];
15
+ }
16
+ ngOnInit() {
17
+ if (this.noOfStars > 0) {
18
+ this.starData = Array.from({ length: this.noOfStars }, (_, i) => ({
19
+ id: i,
20
+ asset: this.emptyStarSvg,
21
+ hoverId: -1,
22
+ }));
23
+ }
24
+ this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating;
25
+ this.assetsSelection(this.selectedRating);
26
+ this.selectedData = JSON.parse(JSON.stringify(this.starData));
27
+ }
28
+ ngOnChanges(changes) {
29
+ this.assetsSelection(this.selectedRating);
30
+ this.selectedData = JSON.parse(JSON.stringify(this.starData));
31
+ }
32
+ assetsSelection(index = -1) {
33
+ this.starData.forEach((item) => {
34
+ item.asset = item.id <= index - 1 ? this.selectedStarSvg : this.emptyStarSvg;
35
+ item.hoverId = -1;
36
+ });
37
+ }
38
+ starMouseOver(index) {
39
+ if (!this.starHoverAllowed)
40
+ return;
41
+ const threshold = this.selectedRating - 1;
42
+ this.starData.forEach(item => {
43
+ item.hoverId = index;
44
+ item.asset = index > threshold && item.id <= index ? this.selectedStarSvg : this.selectedData[item.id].asset;
45
+ });
46
+ }
47
+ starMouseLeave() {
48
+ if (!this.starHoverAllowed)
49
+ return;
50
+ this.starData = JSON.parse(JSON.stringify(this.selectedData));
51
+ this.assetsSelection(this.selectedRating);
52
+ }
53
+ selectedStarData(index) {
54
+ if (this.starSelectionAllowed) {
55
+ this.starRated.emit(index + 1);
56
+ }
57
+ }
58
+ }
59
+ StarRatingComponent.decorators = [
60
+ { type: Component, args: [{
61
+ selector: 'mis-star-rating',
62
+ template: "<div class=\"rating-container\" (mouseleave)=\"starMouseLeave()\" [ngStyle]=\"{'cursor': starSelectionAllowed ? 'pointer' : 'not-allowed'}\">\n <div class=\"stars-container\" *ngFor=\"let star of starData\">\n <div class=\"star\" \n (click)=\"selectedStarData(star.id)\" \n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{'hoveredStarZoom': star.id === star.hoverId, 'not-hovered' : star.hoverId >=0 && star.id > star.hoverId}\"\n >\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight, 'width': starWidth}\">\n </div>\n </div>\n</div>\n",
63
+ styles: [".rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);transition:all .3s ease-out}"]
64
+ },] }
65
+ ];
66
+ StarRatingComponent.ctorParameters = () => [];
67
+ StarRatingComponent.propDecorators = {
68
+ noOfStars: [{ type: Input }],
69
+ selectedRating: [{ type: Input }],
70
+ selectedStarSvg: [{ type: Input }],
71
+ emptyStarSvg: [{ type: Input }],
72
+ starHeight: [{ type: Input }],
73
+ starWidth: [{ type: Input }],
74
+ starSelectionAllowed: [{ type: Input }],
75
+ starHoverAllowed: [{ type: Input }],
76
+ starRated: [{ type: Output, args: ['starRated',] }]
77
+ };
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBT3pHLE1BQU0sT0FBTyxtQkFBbUI7SUFjOUI7UUFaUyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUNwQixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ25CLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDWixjQUFTLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUUsYUFBUSxHQUFnQixFQUFFLENBQUM7UUFDM0IsaUJBQVksR0FBZ0IsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEUsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ1osQ0FBQyxDQUFDLENBQUM7U0FDTDtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQixDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM3RSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFLO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRWxDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLElBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsQ0FBQTtTQUM3QjtJQUNILENBQUM7OztZQXBFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsK21CQUEyQzs7YUFFNUM7Ozs7d0JBR0UsS0FBSzs2QkFDTCxLQUFLOzhCQUNMLEtBQUs7MkJBQ0wsS0FBSzt5QkFDTCxLQUFLO3dCQUNMLEtBQUs7bUNBQ0wsS0FBSzsrQkFDTCxLQUFLO3dCQUNMLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pcy1zdGFyLXJhdGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFyLXJhdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0YXItcmF0aW5nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3RhclJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBub09mU3RhcnM6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHNlbGVjdGVkUmF0aW5nOiBudW1iZXIgPSAtMTtcbiAgQElucHV0KCkgc2VsZWN0ZWRTdGFyU3ZnID0gJyc7XG4gIEBJbnB1dCgpIGVtcHR5U3RhclN2ZyA9ICcnO1xuICBASW5wdXQoKSBzdGFySGVpZ2h0ID0gJzI0cHgnO1xuICBASW5wdXQoKSBzdGFyV2lkdGggPSAnMjRweCc7XG4gIEBJbnB1dCgpIHN0YXJTZWxlY3Rpb25BbGxvd2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgc3RhckhvdmVyQWxsb3dlZCA9IHRydWU7XG4gIEBPdXRwdXQoJ3N0YXJSYXRlZCcpIHN0YXJSYXRlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgc3RhckRhdGE6IFNUQVJfREFUQVtdID0gW107XG4gIHNlbGVjdGVkRGF0YTogU1RBUl9EQVRBW10gPSBbXTtcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZih0aGlzLm5vT2ZTdGFycyA+IDApe1xuICAgICAgdGhpcy5zdGFyRGF0YSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubm9PZlN0YXJzIH0sIChfLCBpKSA9PiAoe1xuICAgICAgICBpZDogaSxcbiAgICAgICAgYXNzZXQ6IHRoaXMuZW1wdHlTdGFyU3ZnLFxuICAgICAgICBob3ZlcklkOiAtMSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFJhdGluZyA9IHRoaXMuc2VsZWN0ZWRSYXRpbmcgPiB0aGlzLm5vT2ZTdGFycyA/IHRoaXMubm9PZlN0YXJzIDogdGhpcy5zZWxlY3RlZFJhdGluZzsgXG4gICAgdGhpcy5hc3NldHNTZWxlY3Rpb24odGhpcy5zZWxlY3RlZFJhdGluZyk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhckRhdGEpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2V0c1NlbGVjdGlvbih0aGlzLnNlbGVjdGVkUmF0aW5nKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGFyRGF0YSkpO1xuICB9XG5cbiAgYXNzZXRzU2VsZWN0aW9uKGluZGV4OiBudW1iZXIgPSAtMSl7XG4gICAgdGhpcy5zdGFyRGF0YS5mb3JFYWNoKChpdGVtOiBTVEFSX0RBVEEpID0+IHtcbiAgICAgIGl0ZW0uYXNzZXQgPSBpdGVtLmlkIDw9IGluZGV4IC0gMSA/IHRoaXMuc2VsZWN0ZWRTdGFyU3ZnIDogdGhpcy5lbXB0eVN0YXJTdmc7XG4gICAgICBpdGVtLmhvdmVySWQgPSAtMTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJNb3VzZU92ZXIoaW5kZXgpe1xuICAgIGlmICghdGhpcy5zdGFySG92ZXJBbGxvd2VkKSByZXR1cm47XG5cbiAgICBjb25zdCB0aHJlc2hvbGQgPSB0aGlzLnNlbGVjdGVkUmF0aW5nIC0gMTtcbiAgICB0aGlzLnN0YXJEYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpdGVtLmhvdmVySWQgPSBpbmRleDtcbiAgICAgIGl0ZW0uYXNzZXQgPSBpbmRleCA+IHRocmVzaG9sZCAmJiBpdGVtLmlkIDw9IGluZGV4ID8gdGhpcy5zZWxlY3RlZFN0YXJTdmcgOiB0aGlzLnNlbGVjdGVkRGF0YVtpdGVtLmlkXS5hc3NldDtcbiAgICB9KTtcblxuICB9XG5cbiAgc3Rhck1vdXNlTGVhdmUoKXtcbiAgICBpZighdGhpcy5zdGFySG92ZXJBbGxvd2VkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0YXJEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRGF0YSkpO1xuICAgIHRoaXMuYXNzZXRzU2VsZWN0aW9uKHRoaXMuc2VsZWN0ZWRSYXRpbmcpO1xuICB9XG5cbiAgc2VsZWN0ZWRTdGFyRGF0YShpbmRleDogbnVtYmVyKXtcbiAgICBpZih0aGlzLnN0YXJTZWxlY3Rpb25BbGxvd2VkKXtcbiAgICAgIHRoaXMuc3RhclJhdGVkLmVtaXQoaW5kZXgrMSlcbiAgICB9XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNUQVJfREFUQSB7XG4gIGlkOiBudW1iZXIsXG4gIGFzc2V0OiBzdHJpbmcsXG4gIGhvdmVySWQ6IG51bWJlclxufVxuIl19
@@ -0,0 +1,13 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { StarRatingComponent } from "./star-rating.component";
4
+ export class StarRatingModule {
5
+ }
6
+ StarRatingModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ declarations: [StarRatingComponent],
9
+ imports: [CommonModule],
10
+ exports: [StarRatingComponent]
11
+ },] }
12
+ ];
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU85RCxNQUFNLE9BQU8sZ0JBQWdCOzs7WUFMNUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3RhclJhdGluZ0NvbXBvbmVudCB9IGZyb20gXCIuL3N0YXItcmF0aW5nLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTdGFyUmF0aW5nQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTdGFyUmF0aW5nQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTdGFyUmF0aW5nTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,96 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
+
4
+ class StarRatingComponent {
5
+ constructor() {
6
+ this.noOfStars = 0;
7
+ this.selectedRating = -1;
8
+ this.selectedStarSvg = '';
9
+ this.emptyStarSvg = '';
10
+ this.starHeight = '24px';
11
+ this.starWidth = '24px';
12
+ this.starSelectionAllowed = true;
13
+ this.starHoverAllowed = true;
14
+ this.starRated = new EventEmitter();
15
+ this.starData = [];
16
+ this.selectedData = [];
17
+ }
18
+ ngOnInit() {
19
+ if (this.noOfStars > 0) {
20
+ this.starData = Array.from({ length: this.noOfStars }, (_, i) => ({
21
+ id: i,
22
+ asset: this.emptyStarSvg,
23
+ hoverId: -1,
24
+ }));
25
+ }
26
+ this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating;
27
+ this.assetsSelection(this.selectedRating);
28
+ this.selectedData = JSON.parse(JSON.stringify(this.starData));
29
+ }
30
+ ngOnChanges(changes) {
31
+ this.assetsSelection(this.selectedRating);
32
+ this.selectedData = JSON.parse(JSON.stringify(this.starData));
33
+ }
34
+ assetsSelection(index = -1) {
35
+ this.starData.forEach((item) => {
36
+ item.asset = item.id <= index - 1 ? this.selectedStarSvg : this.emptyStarSvg;
37
+ item.hoverId = -1;
38
+ });
39
+ }
40
+ starMouseOver(index) {
41
+ if (!this.starHoverAllowed)
42
+ return;
43
+ const threshold = this.selectedRating - 1;
44
+ this.starData.forEach(item => {
45
+ item.hoverId = index;
46
+ item.asset = index > threshold && item.id <= index ? this.selectedStarSvg : this.selectedData[item.id].asset;
47
+ });
48
+ }
49
+ starMouseLeave() {
50
+ if (!this.starHoverAllowed)
51
+ return;
52
+ this.starData = JSON.parse(JSON.stringify(this.selectedData));
53
+ this.assetsSelection(this.selectedRating);
54
+ }
55
+ selectedStarData(index) {
56
+ if (this.starSelectionAllowed) {
57
+ this.starRated.emit(index + 1);
58
+ }
59
+ }
60
+ }
61
+ StarRatingComponent.decorators = [
62
+ { type: Component, args: [{
63
+ selector: 'mis-star-rating',
64
+ template: "<div class=\"rating-container\" (mouseleave)=\"starMouseLeave()\" [ngStyle]=\"{'cursor': starSelectionAllowed ? 'pointer' : 'not-allowed'}\">\n <div class=\"stars-container\" *ngFor=\"let star of starData\">\n <div class=\"star\" \n (click)=\"selectedStarData(star.id)\" \n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{'hoveredStarZoom': star.id === star.hoverId, 'not-hovered' : star.hoverId >=0 && star.id > star.hoverId}\"\n >\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight, 'width': starWidth}\">\n </div>\n </div>\n</div>\n",
65
+ styles: [".rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);transition:all .3s ease-out}"]
66
+ },] }
67
+ ];
68
+ StarRatingComponent.ctorParameters = () => [];
69
+ StarRatingComponent.propDecorators = {
70
+ noOfStars: [{ type: Input }],
71
+ selectedRating: [{ type: Input }],
72
+ selectedStarSvg: [{ type: Input }],
73
+ emptyStarSvg: [{ type: Input }],
74
+ starHeight: [{ type: Input }],
75
+ starWidth: [{ type: Input }],
76
+ starSelectionAllowed: [{ type: Input }],
77
+ starHoverAllowed: [{ type: Input }],
78
+ starRated: [{ type: Output, args: ['starRated',] }]
79
+ };
80
+
81
+ class StarRatingModule {
82
+ }
83
+ StarRatingModule.decorators = [
84
+ { type: NgModule, args: [{
85
+ declarations: [StarRatingComponent],
86
+ imports: [CommonModule],
87
+ exports: [StarRatingComponent]
88
+ },] }
89
+ ];
90
+
91
+ /**
92
+ * Generated bundle index. Do not edit.
93
+ */
94
+
95
+ export { StarRatingComponent, StarRatingModule };
96
+ //# sourceMappingURL=mis-crystal-design-system-star-rating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mis-crystal-design-system-star-rating.js","sources":["../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts","../../../projects/mis-components/star-rating/mis-crystal-design-system-star-rating.ts"],"sourcesContent":["import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss']\n})\nexport class StarRatingComponent implements OnInit, OnChanges {\n\n @Input() noOfStars: number = 0;\n @Input() selectedRating: number = -1;\n @Input() selectedStarSvg = '';\n @Input() emptyStarSvg = '';\n @Input() starHeight = '24px';\n @Input() starWidth = '24px';\n @Input() starSelectionAllowed = true;\n @Input() starHoverAllowed = true;\n @Output('starRated') starRated: EventEmitter<number> = new EventEmitter();\n\n starData: STAR_DATA[] = [];\n selectedData: STAR_DATA[] = [];\n constructor() { }\n\n ngOnInit(): void {\n if(this.noOfStars > 0){\n this.starData = Array.from({ length: this.noOfStars }, (_, i) => ({\n id: i,\n asset: this.emptyStarSvg,\n hoverId: -1,\n }));\n }\n this.selectedRating = this.selectedRating > this.noOfStars ? this.noOfStars : this.selectedRating; \n this.assetsSelection(this.selectedRating);\n this.selectedData = JSON.parse(JSON.stringify(this.starData));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.assetsSelection(this.selectedRating);\n this.selectedData = JSON.parse(JSON.stringify(this.starData));\n }\n\n assetsSelection(index: number = -1){\n this.starData.forEach((item: STAR_DATA) => {\n item.asset = item.id <= index - 1 ? this.selectedStarSvg : this.emptyStarSvg;\n item.hoverId = -1;\n });\n }\n\n starMouseOver(index){\n if (!this.starHoverAllowed) return;\n\n const threshold = this.selectedRating - 1;\n this.starData.forEach(item => {\n item.hoverId = index;\n item.asset = index > threshold && item.id <= index ? this.selectedStarSvg : this.selectedData[item.id].asset;\n });\n\n }\n\n starMouseLeave(){\n if(!this.starHoverAllowed) return;\n\n this.starData = JSON.parse(JSON.stringify(this.selectedData));\n this.assetsSelection(this.selectedRating);\n }\n\n selectedStarData(index: number){\n if(this.starSelectionAllowed){\n this.starRated.emit(index+1)\n }\n }\n\n}\n\nexport interface STAR_DATA {\n id: number,\n asset: string,\n hoverId: number\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mis-crystal-design-system",
3
- "version": "4.0.29-test",
3
+ "version": "4.0.30-test",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "*",
6
6
  "@angular/core": "*",
@@ -0,0 +1 @@
1
+ export * from "./public_api";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"StarRatingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"StarRatingComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":6,"character":12}],"exports":[{"__symbolic":"reference","name":"StarRatingComponent"}]}]}],"members":{}},"StarRatingComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"mis-star-rating","template":"<div class=\"rating-container\" (mouseleave)=\"starMouseLeave()\" [ngStyle]=\"{'cursor': starSelectionAllowed ? 'pointer' : 'not-allowed'}\">\n <div class=\"stars-container\" *ngFor=\"let star of starData\">\n <div class=\"star\" \n (click)=\"selectedStarData(star.id)\" \n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{'hoveredStarZoom': star.id === star.hoverId, 'not-hovered' : star.hoverId >=0 && star.id > star.hoverId}\"\n >\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight, 'width': starWidth}\">\n </div>\n </div>\n</div>\n","styles":[".rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);transition:all .3s ease-out}"]}]}],"members":{"noOfStars":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"selectedRating":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"selectedStarSvg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"emptyStarSvg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"starHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"starWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"starSelectionAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"starHoverAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"starRated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3},"arguments":["starRated"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"assetsSelection":[{"__symbolic":"method"}],"starMouseOver":[{"__symbolic":"method"}],"starMouseLeave":[{"__symbolic":"method"}],"selectedStarData":[{"__symbolic":"method"}]}}},"origins":{"StarRatingModule":"./star-rating.module","StarRatingComponent":"./star-rating.component"},"importAs":"mis-crystal-design-system/star-rating"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "main": "../bundles/mis-crystal-design-system-star-rating.umd.js",
3
+ "module": "../fesm2015/mis-crystal-design-system-star-rating.js",
4
+ "es2015": "../fesm2015/mis-crystal-design-system-star-rating.js",
5
+ "esm2015": "../esm2015/star-rating/mis-crystal-design-system-star-rating.js",
6
+ "fesm2015": "../fesm2015/mis-crystal-design-system-star-rating.js",
7
+ "typings": "mis-crystal-design-system-star-rating.d.ts",
8
+ "metadata": "mis-crystal-design-system-star-rating.metadata.json",
9
+ "sideEffects": false,
10
+ "name": "mis-crystal-design-system/star-rating"
11
+ }
@@ -0,0 +1,2 @@
1
+ export { StarRatingModule } from './star-rating.module';
2
+ export { StarRatingComponent } from './star-rating.component';
@@ -0,0 +1,26 @@
1
+ import { OnInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ export declare class StarRatingComponent implements OnInit, OnChanges {
3
+ noOfStars: number;
4
+ selectedRating: number;
5
+ selectedStarSvg: string;
6
+ emptyStarSvg: string;
7
+ starHeight: string;
8
+ starWidth: string;
9
+ starSelectionAllowed: boolean;
10
+ starHoverAllowed: boolean;
11
+ starRated: EventEmitter<number>;
12
+ starData: STAR_DATA[];
13
+ selectedData: STAR_DATA[];
14
+ constructor();
15
+ ngOnInit(): void;
16
+ ngOnChanges(changes: SimpleChanges): void;
17
+ assetsSelection(index?: number): void;
18
+ starMouseOver(index: any): void;
19
+ starMouseLeave(): void;
20
+ selectedStarData(index: number): void;
21
+ }
22
+ export interface STAR_DATA {
23
+ id: number;
24
+ asset: string;
25
+ hoverId: number;
26
+ }
@@ -0,0 +1,2 @@
1
+ export declare class StarRatingModule {
2
+ }