mis-crystal-design-system 4.0.20 → 4.0.22

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,85 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('mis-crystal-design-system/button'), require('mis-crystal-design-system/checkbox')) :
3
+ typeof define === 'function' && define.amd ? define('mis-crystal-design-system/mobile-filter', ['exports', '@angular/common', '@angular/core', 'mis-crystal-design-system/button', 'mis-crystal-design-system/checkbox'], 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']['mobile-filter'] = {}), global.ng.common, global.ng.core, global['mis-crystal-design-system'].button, global['mis-crystal-design-system'].checkbox));
5
+ }(this, (function (exports, common, core, button, checkbox) { 'use strict';
6
+
7
+ var MobileFilterComponent = /** @class */ (function () {
8
+ function MobileFilterComponent() {
9
+ this.currentSelectedItem = 'Sort';
10
+ this.backIcon = '';
11
+ this.headerName = 'Filters';
12
+ this.applyBtnName = 'Apply';
13
+ this.clearBtnName = 'Clear Filters';
14
+ this.closeFilters = new core.EventEmitter();
15
+ this.clearFilters = new core.EventEmitter();
16
+ this.applyFilters = new core.EventEmitter();
17
+ }
18
+ Object.defineProperty(MobileFilterComponent.prototype, "filterOptions", {
19
+ set: function (options) {
20
+ this.localFilterOptions = options;
21
+ },
22
+ enumerable: false,
23
+ configurable: true
24
+ });
25
+ ;
26
+ MobileFilterComponent.prototype.ngOnInit = function () {
27
+ };
28
+ MobileFilterComponent.prototype.originalOrder = function () {
29
+ return 0;
30
+ };
31
+ MobileFilterComponent.prototype.toggleFilter = function (data, isSelectedItem) {
32
+ var isMultiSelect = this.localFilterOptions[this.currentSelectedItem].multiSelect;
33
+ this.localFilterOptions[this.currentSelectedItem].options = this.localFilterOptions[this.currentSelectedItem].options.map(function (option) {
34
+ var isSelectedValue = option.value === data;
35
+ return Object.assign(Object.assign({}, option), { selected: isSelectedValue ? isMultiSelect ? !option.selected : true : isMultiSelect ? option.selected : false });
36
+ });
37
+ // changing number of selected items for multiselect filters
38
+ var noOfSelectedItems = this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;
39
+ isMultiSelect ? this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems = isSelectedItem ? noOfSelectedItems - 1 : noOfSelectedItems + 1 : null;
40
+ };
41
+ return MobileFilterComponent;
42
+ }());
43
+ MobileFilterComponent.decorators = [
44
+ { type: core.Component, args: [{
45
+ selector: 'mis-mobile-filter',
46
+ template: "<div class=\"filters-container\">\n <div class=\"head display-flex\">\n <img (click)=\"closeFilters.emit();\" [src]=\"backIcon\" alt=\"\">\n <span>{{headerName}}</span>\n </div>\n <div class=\"body display-flex\">\n <div class=\"filters\">\n <ng-container *ngFor=\"let filter of localFilterOptions | keyvalue : originalOrder\">\n <div class=\"filter display-flex\" (click)=\"currentSelectedItem = filter.key\">\n <span class=\"filterName\" [ngStyle]=\"{'color': filter.key === currentSelectedItem ? '#0937B2' : '#181F33'}\">{{ filter.key }}</span>\n <span class=\"selectedNumber\" *ngIf=\"localFilterOptions[filter.key]['multiSelect'] && localFilterOptions[filter.key]['noOfSelectedItems'] > 0\">{{ localFilterOptions[filter.key]['noOfSelectedItems'] }}</span>\n <div class=\"highlightor\" *ngIf=\"filter.key === currentSelectedItem\"></div>\n </div>\n </ng-container>\n </div>\n <div class=\"filter-options-container\">\n <div class=\"filter-options-title\">\n <span>{{ currentSelectedItem }}</span>\n </div>\n <div class=\"filter-options\">\n <ng-container *ngFor=\"let option of localFilterOptions[currentSelectedItem]?.options; let i = index\">\n <div class=\"filter-option display-flex\" (click)=\"toggleFilter(option.value, option.selected)\" >\n <mis-checkbox *ngIf=\"localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\"></mis-checkbox>\n <input type=\"radio\" *ngIf=\"!localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\">\n <span [ngStyle]=\"{'color': option.selected ? '#181F33' : '#6A737D'}\">{{ option.label }}</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer display-flex\">\n <button\n mis-button\n size=\"md\"\n type=\"text\"\n (click)=\"clearFilters.emit()\">\n {{clearBtnName}}\n </button>\n <button\n mis-button\n size=\"md\"\n type=\"primary\"\n (click)=\"applyFilters.emit(localFilterOptions)\"\n >\n {{applyBtnName}}\n </button>\n </div>\n</div>\n",
47
+ styles: [".display-flex{display:flex}.filters-container{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;cursor:default}.filters-container *{font-family:Lato}.filters-container .head{height:56px;border-bottom:1px solid #e0e0e0;justify-content:flex-start;align-items:center;padding:0 16px;gap:12px}.filters-container .head img{cursor:pointer}.filters-container .head span{font-weight:700;font-size:17px;line-height:24px;letter-spacing:.2px}.filters-container .body{height:calc(100vh - 129px)}.filters-container .body .filters{width:120px;border-right:1px solid #e0e0e0;flex-shrink:0}.filters-container .body .filters .filter{height:56px;padding:0 16px;border-bottom:1px solid #e0e0e0;align-items:center;font-size:15px;justify-content:space-between;position:relative}.filters-container .body .filters .filter .filterName{color:#6a737d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filters .filter .selectedNumber{background-color:#f5f5f5;height:24px;width:auto;font-size:14px;min-width:24px;border-radius:50%;text-align:center;line-height:24px;padding:0 8px}.filters-container .body .filters .filter .highlightor{position:absolute;left:0;height:100%;width:4px;background-color:#0937b2}.filters-container .body .filter-options-container{padding:16px 16px 0 12px;width:calc(100% - 56px);overflow-x:hidden}.filters-container .body .filter-options-container *{color:#181f33}.filters-container .body .filter-options-container .filter-options-title{text-transform:uppercase;font-size:12px;line-height:16px;letter-spacing:.25px}.filters-container .body .filter-options-container .filter-options-title span{color:#6a737d}.filters-container .body .filter-options-container .filter-options{margin-top:16px;overflow-y:scroll;height:calc(100% - 32px)}.filters-container .body .filter-options-container .filter-options .filter-option{height:48px;border-bottom:1px solid #e0e0e0;align-items:center;padding-left:16px;gap:13px;font-size:15px}.filters-container .body .filter-options-container .filter-options .filter-option span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filter-options-container .filter-options .filter-option input[type=radio]{accent-color:#0937b2;width:20px;height:20px}.filters-container .footer{height:73px;border-top:1px solid #e0e0e0;padding:0 16px;align-items:center;justify-content:space-between}.filters-container .footer button{width:160px}"]
48
+ },] }
49
+ ];
50
+ MobileFilterComponent.ctorParameters = function () { return []; };
51
+ MobileFilterComponent.propDecorators = {
52
+ filterOptions: [{ type: core.Input }],
53
+ backIcon: [{ type: core.Input }],
54
+ headerName: [{ type: core.Input }],
55
+ applyBtnName: [{ type: core.Input }],
56
+ clearBtnName: [{ type: core.Input }],
57
+ closeFilters: [{ type: core.Output }],
58
+ clearFilters: [{ type: core.Output }],
59
+ applyFilters: [{ type: core.Output }]
60
+ };
61
+
62
+ var MobileFilterModule = /** @class */ (function () {
63
+ function MobileFilterModule() {
64
+ }
65
+ return MobileFilterModule;
66
+ }());
67
+ MobileFilterModule.decorators = [
68
+ { type: core.NgModule, args: [{
69
+ declarations: [MobileFilterComponent],
70
+ imports: [common.CommonModule, button.ButtonModule, checkbox.CheckboxModule],
71
+ exports: [MobileFilterComponent]
72
+ },] }
73
+ ];
74
+
75
+ /**
76
+ * Generated bundle index. Do not edit.
77
+ */
78
+
79
+ exports.MobileFilterComponent = MobileFilterComponent;
80
+ exports.MobileFilterModule = MobileFilterModule;
81
+
82
+ Object.defineProperty(exports, '__esModule', { value: true });
83
+
84
+ })));
85
+ //# sourceMappingURL=mis-crystal-design-system-mobile-filter.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mis-crystal-design-system-mobile-filter.umd.js","sources":["../../../projects/mis-components/mobile-filter/mobile-filter.component.ts","../../../projects/mis-components/mobile-filter/mobile-filter.module.ts","../../../projects/mis-components/mobile-filter/mis-crystal-design-system-mobile-filter.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'mis-mobile-filter',\n templateUrl: './mobile-filter.component.html',\n styleUrls: ['./mobile-filter.component.scss']\n})\nexport class MobileFilterComponent implements OnInit {\n\n localFilterOptions: IFilterOptions;\n currentSelectedItem: string = 'Sort';\n\n @Input() set filterOptions(options) {\n this.localFilterOptions = options;\n };\n\n @Input() backIcon: string = '';\n\n @Input() headerName: string = 'Filters';\n @Input() applyBtnName: string = 'Apply';\n @Input() clearBtnName: string = 'Clear Filters';\n\n @Output() closeFilters = new EventEmitter();\n @Output() clearFilters = new EventEmitter();\n @Output() applyFilters = new EventEmitter<IFilterOptions>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n originalOrder() { // used in template for keyvalue pipe sorting\n return 0;\n }\n\n toggleFilter(data, isSelectedItem) {\n const isMultiSelect = this.localFilterOptions[this.currentSelectedItem].multiSelect;\n this.localFilterOptions[this.currentSelectedItem].options = this.localFilterOptions[this.currentSelectedItem].options.map(option => {\n const isSelectedValue = option.value === data;\n return {\n ...option,\n selected: isSelectedValue ? isMultiSelect ? !option.selected : true : isMultiSelect ? option.selected : false\n }\n });\n\n // changing number of selected items for multiselect filters\n const noOfSelectedItems = this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;\n isMultiSelect ? this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems = isSelectedItem ? noOfSelectedItems - 1 : noOfSelectedItems + 1 : null;\n }\n}\n\nexport interface IFilterOptions {\n [filterName: string]: {\n options: {label: string, value: string, selected: boolean, capacities?: number[], amenities?: string[]}[], // capacities & amenities are for floor\n multiSelect: boolean,\n noOfSelectedItems?: number\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MobileFilterComponent } from \"./mobile-filter.component\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\n\n@NgModule({\n declarations: [MobileFilterComponent],\n imports: [CommonModule, ButtonModule, CheckboxModule],\n exports: [MobileFilterComponent]\n})\nexport class MobileFilterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EventEmitter","Component","Input","Output","NgModule","CommonModule","ButtonModule","CheckboxModule"],"mappings":";;;;;;;QA0BE;YAhBA,wBAAmB,GAAW,MAAM,CAAC;YAM5B,aAAQ,GAAW,EAAE,CAAC;YAEtB,eAAU,GAAW,SAAS,CAAC;YAC/B,iBAAY,GAAW,OAAO,CAAC;YAC/B,iBAAY,GAAW,eAAe,CAAC;YAEtC,iBAAY,GAAG,IAAIA,iBAAY,EAAE,CAAC;YAClC,iBAAY,GAAG,IAAIA,iBAAY,EAAE,CAAC;YAClC,iBAAY,GAAG,IAAIA,iBAAY,EAAkB,CAAC;SAE3C;QAdjB,sBAAa,gDAAa;iBAA1B,UAA2B,OAAO;gBAChC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;aACnC;;;WAAA;QAAA,CAAC;QAcF,wCAAQ,GAAR;SACC;QAED,6CAAa,GAAb;YACE,OAAO,CAAC,CAAC;SACV;QAED,4CAAY,GAAZ,UAAa,IAAI,EAAE,cAAc;YAC/B,IAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC;YACpF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM;gBAC9H,IAAM,eAAe,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;gBAC9C,uCACK,MAAM,KACT,QAAQ,EAAE,eAAe,GAAG,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,aAAa,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,IAC9G;aACF,CAAC,CAAC;;YAGH,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAC;YAC9F,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;SAC7J;;;;gBA9CFC,cAAS,SAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,07EAA6C;;iBAE9C;;;;gCAMEC,UAAK;2BAILA,UAAK;6BAELA,UAAK;+BACLA,UAAK;+BACLA,UAAK;+BAELC,WAAM;+BACNA,WAAM;+BACNA,WAAM;;;;QCbT;;;;;gBALCC,aAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAACC,mBAAY,EAAEC,mBAAY,EAAEC,uBAAc,CAAC;oBACrD,OAAO,EAAE,CAAC,qBAAqB,CAAC;iBACjC;;;ICVD;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("mis-crystal-design-system/button"),require("mis-crystal-design-system/checkbox")):"function"==typeof define&&define.amd?define("mis-crystal-design-system/mobile-filter",["exports","@angular/common","@angular/core","mis-crystal-design-system/button","mis-crystal-design-system/checkbox"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["mis-crystal-design-system"]=e["mis-crystal-design-system"]||{},e["mis-crystal-design-system"]["mobile-filter"]={}),e.ng.common,e.ng.core,e["mis-crystal-design-system"].button,e["mis-crystal-design-system"].checkbox)}(this,(function(e,t,i,n,o){"use strict";var l=function(){function e(){this.currentSelectedItem="Sort",this.backIcon="",this.headerName="Filters",this.applyBtnName="Apply",this.clearBtnName="Clear Filters",this.closeFilters=new i.EventEmitter,this.clearFilters=new i.EventEmitter,this.applyFilters=new i.EventEmitter}return Object.defineProperty(e.prototype,"filterOptions",{set:function(e){this.localFilterOptions=e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.originalOrder=function(){return 0},e.prototype.toggleFilter=function(e,t){var i=this.localFilterOptions[this.currentSelectedItem].multiSelect;this.localFilterOptions[this.currentSelectedItem].options=this.localFilterOptions[this.currentSelectedItem].options.map((function(t){var n=t.value===e;return Object.assign(Object.assign({},t),{selected:n?!i||!t.selected:!!i&&t.selected})}));var n=this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;i&&(this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems=t?n-1:n+1)},e}();l.decorators=[{type:i.Component,args:[{selector:"mis-mobile-filter",template:'<div class="filters-container">\n <div class="head display-flex">\n <img (click)="closeFilters.emit();" [src]="backIcon" alt="">\n <span>{{headerName}}</span>\n </div>\n <div class="body display-flex">\n <div class="filters">\n <ng-container *ngFor="let filter of localFilterOptions | keyvalue : originalOrder">\n <div class="filter display-flex" (click)="currentSelectedItem = filter.key">\n <span class="filterName" [ngStyle]="{\'color\': filter.key === currentSelectedItem ? \'#0937B2\' : \'#181F33\'}">{{ filter.key }}</span>\n <span class="selectedNumber" *ngIf="localFilterOptions[filter.key][\'multiSelect\'] && localFilterOptions[filter.key][\'noOfSelectedItems\'] > 0">{{ localFilterOptions[filter.key][\'noOfSelectedItems\'] }}</span>\n <div class="highlightor" *ngIf="filter.key === currentSelectedItem"></div>\n </div>\n </ng-container>\n </div>\n <div class="filter-options-container">\n <div class="filter-options-title">\n <span>{{ currentSelectedItem }}</span>\n </div>\n <div class="filter-options">\n <ng-container *ngFor="let option of localFilterOptions[currentSelectedItem]?.options; let i = index">\n <div class="filter-option display-flex" (click)="toggleFilter(option.value, option.selected)" >\n <mis-checkbox *ngIf="localFilterOptions[currentSelectedItem].multiSelect" [checked]="option.selected"></mis-checkbox>\n <input type="radio" *ngIf="!localFilterOptions[currentSelectedItem].multiSelect" [checked]="option.selected">\n <span [ngStyle]="{\'color\': option.selected ? \'#181F33\' : \'#6A737D\'}">{{ option.label }}</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class="footer display-flex">\n <button\n mis-button\n size="md"\n type="text"\n (click)="clearFilters.emit()">\n {{clearBtnName}}\n </button>\n <button\n mis-button\n size="md"\n type="primary"\n (click)="applyFilters.emit(localFilterOptions)"\n >\n {{applyBtnName}}\n </button>\n </div>\n</div>\n',styles:[".display-flex{display:flex}.filters-container{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;cursor:default}.filters-container *{font-family:Lato}.filters-container .head{height:56px;border-bottom:1px solid #e0e0e0;justify-content:flex-start;align-items:center;padding:0 16px;gap:12px}.filters-container .head img{cursor:pointer}.filters-container .head span{font-weight:700;font-size:17px;line-height:24px;letter-spacing:.2px}.filters-container .body{height:calc(100vh - 129px)}.filters-container .body .filters{width:120px;border-right:1px solid #e0e0e0;flex-shrink:0}.filters-container .body .filters .filter{height:56px;padding:0 16px;border-bottom:1px solid #e0e0e0;align-items:center;font-size:15px;justify-content:space-between;position:relative}.filters-container .body .filters .filter .filterName{color:#6a737d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filters .filter .selectedNumber{background-color:#f5f5f5;height:24px;width:auto;font-size:14px;min-width:24px;border-radius:50%;text-align:center;line-height:24px;padding:0 8px}.filters-container .body .filters .filter .highlightor{position:absolute;left:0;height:100%;width:4px;background-color:#0937b2}.filters-container .body .filter-options-container{padding:16px 16px 0 12px;width:calc(100% - 56px);overflow-x:hidden}.filters-container .body .filter-options-container *{color:#181f33}.filters-container .body .filter-options-container .filter-options-title{text-transform:uppercase;font-size:12px;line-height:16px;letter-spacing:.25px}.filters-container .body .filter-options-container .filter-options-title span{color:#6a737d}.filters-container .body .filter-options-container .filter-options{margin-top:16px;overflow-y:scroll;height:calc(100% - 32px)}.filters-container .body .filter-options-container .filter-options .filter-option{height:48px;border-bottom:1px solid #e0e0e0;align-items:center;padding-left:16px;gap:13px;font-size:15px}.filters-container .body .filter-options-container .filter-options .filter-option span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filter-options-container .filter-options .filter-option input[type=radio]{accent-color:#0937b2;width:20px;height:20px}.filters-container .footer{height:73px;border-top:1px solid #e0e0e0;padding:0 16px;align-items:center;justify-content:space-between}.filters-container .footer button{width:160px}"]}]}],l.ctorParameters=function(){return[]},l.propDecorators={filterOptions:[{type:i.Input}],backIcon:[{type:i.Input}],headerName:[{type:i.Input}],applyBtnName:[{type:i.Input}],clearBtnName:[{type:i.Input}],closeFilters:[{type:i.Output}],clearFilters:[{type:i.Output}],applyFilters:[{type:i.Output}]};var r=function(){};r.decorators=[{type:i.NgModule,args:[{declarations:[l],imports:[t.CommonModule,n.ButtonModule,o.CheckboxModule],exports:[l]}]}],e.MobileFilterComponent=l,e.MobileFilterModule=r,Object.defineProperty(e,"__esModule",{value:!0})}));
2
+ //# sourceMappingURL=mis-crystal-design-system-mobile-filter.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../projects/mis-components/mobile-filter/mobile-filter.component.ts","../../../projects/mis-components/mobile-filter/mobile-filter.module.ts"],"names":["MobileFilterComponent","this","currentSelectedItem","backIcon","headerName","applyBtnName","clearBtnName","closeFilters","EventEmitter","clearFilters","applyFilters","Object","defineProperty","prototype","options","localFilterOptions","ngOnInit","originalOrder","toggleFilter","data","isSelectedItem","isMultiSelect","multiSelect","map","option","isSelectedValue","value","assign","selected","noOfSelectedItems","Component","args","selector","template","Input","Output","NgModule","declarations","imports","CommonModule","ButtonModule","CheckboxModule","exports"],"mappings":"wvBA0BE,SAAAA,IAhBAC,KAAAC,oBAA8B,OAMrBD,KAAAE,SAAmB,GAEnBF,KAAAG,WAAqB,UACrBH,KAAAI,aAAuB,QACvBJ,KAAAK,aAAuB,gBAEtBL,KAAAM,aAAe,IAAIC,EAAAA,aACnBP,KAAAQ,aAAe,IAAID,EAAAA,aACnBP,KAAAS,aAAe,IAAIF,EAAAA,oBAZ7BG,OAAAC,eAAaZ,EAAAa,UAAA,gBAAa,KAA1B,SAA2BC,GACzBb,KAAKc,mBAAqBD,mCAe5Bd,EAAAa,UAAAG,SAAA,aAGAhB,EAAAa,UAAAI,cAAA,WACE,OAAO,GAGTjB,EAAAa,UAAAK,aAAA,SAAaC,EAAMC,GACjB,IAAMC,EAAgBpB,KAAKc,mBAAmBd,KAAKC,qBAAqBoB,YACxErB,KAAKc,mBAAmBd,KAAKC,qBAAqBY,QAAUb,KAAKc,mBAAmBd,KAAKC,qBAAqBY,QAAQS,KAAI,SAAAC,GACxH,IAAMC,EAAkBD,EAAOE,QAAUP,EACzC,OAAAR,OAAAgB,OAAAhB,OAAAgB,OAAA,GACKH,GAAM,CACTI,SAAUH,GAAkBJ,IAAiBG,EAAOI,WAAkBP,GAAgBG,EAAOI,cAKjG,IAAMC,EAAoB5B,KAAKc,mBAAmBd,KAAKC,qBAAqB2B,kBAC5ER,IAAgBpB,KAAKc,mBAAmBd,KAAKC,qBAAqB2B,kBAAoBT,EAAiBS,EAAoB,EAAIA,EAAoB,6BA7CtJC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,oBACVC,SAAA,k2JAQCC,EAAAA,wBAIAA,EAAAA,0BAEAA,EAAAA,4BACAA,EAAAA,4BACAA,EAAAA,4BAEAC,EAAAA,6BACAA,EAAAA,6BACAA,EAAAA,gBCbH,iCALCC,EAAAA,SAAQL,KAAA,CAAC,CACRM,aAAc,CAACrC,GACfsC,QAAS,CAACC,EAAAA,aAAcC,EAAAA,aAAcC,EAAAA,gBACtCC,QAAS,CAAC1C","sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'mis-mobile-filter',\n templateUrl: './mobile-filter.component.html',\n styleUrls: ['./mobile-filter.component.scss']\n})\nexport class MobileFilterComponent implements OnInit {\n\n localFilterOptions: IFilterOptions;\n currentSelectedItem: string = 'Sort';\n\n @Input() set filterOptions(options) {\n this.localFilterOptions = options;\n };\n\n @Input() backIcon: string = '';\n\n @Input() headerName: string = 'Filters';\n @Input() applyBtnName: string = 'Apply';\n @Input() clearBtnName: string = 'Clear Filters';\n\n @Output() closeFilters = new EventEmitter();\n @Output() clearFilters = new EventEmitter();\n @Output() applyFilters = new EventEmitter<IFilterOptions>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n originalOrder() { // used in template for keyvalue pipe sorting\n return 0;\n }\n\n toggleFilter(data, isSelectedItem) {\n const isMultiSelect = this.localFilterOptions[this.currentSelectedItem].multiSelect;\n this.localFilterOptions[this.currentSelectedItem].options = this.localFilterOptions[this.currentSelectedItem].options.map(option => {\n const isSelectedValue = option.value === data;\n return {\n ...option,\n selected: isSelectedValue ? isMultiSelect ? !option.selected : true : isMultiSelect ? option.selected : false\n }\n });\n\n // changing number of selected items for multiselect filters\n const noOfSelectedItems = this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;\n isMultiSelect ? this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems = isSelectedItem ? noOfSelectedItems - 1 : noOfSelectedItems + 1 : null;\n }\n}\n\nexport interface IFilterOptions {\n [filterName: string]: {\n options: {label: string, value: string, selected: boolean, capacities?: number[], amenities?: string[]}[], // capacities & amenities are for floor\n multiSelect: boolean,\n noOfSelectedItems?: number\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MobileFilterComponent } from \"./mobile-filter.component\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\n\n@NgModule({\n declarations: [MobileFilterComponent],\n imports: [CommonModule, ButtonModule, CheckboxModule],\n exports: [MobileFilterComponent]\n})\nexport class MobileFilterModule {\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./public_api";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9tb2JpbGUtZmlsdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcHVibGljX2FwaVwiOyJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS1tb2JpbGUtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbW9iaWxlLWZpbHRlci9taXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtLW1vYmlsZS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ export class MobileFilterComponent {
3
+ constructor() {
4
+ this.currentSelectedItem = 'Sort';
5
+ this.backIcon = '';
6
+ this.headerName = 'Filters';
7
+ this.applyBtnName = 'Apply';
8
+ this.clearBtnName = 'Clear Filters';
9
+ this.closeFilters = new EventEmitter();
10
+ this.clearFilters = new EventEmitter();
11
+ this.applyFilters = new EventEmitter();
12
+ }
13
+ set filterOptions(options) {
14
+ this.localFilterOptions = options;
15
+ }
16
+ ;
17
+ ngOnInit() {
18
+ }
19
+ originalOrder() {
20
+ return 0;
21
+ }
22
+ toggleFilter(data, isSelectedItem) {
23
+ const isMultiSelect = this.localFilterOptions[this.currentSelectedItem].multiSelect;
24
+ this.localFilterOptions[this.currentSelectedItem].options = this.localFilterOptions[this.currentSelectedItem].options.map(option => {
25
+ const isSelectedValue = option.value === data;
26
+ return Object.assign(Object.assign({}, option), { selected: isSelectedValue ? isMultiSelect ? !option.selected : true : isMultiSelect ? option.selected : false });
27
+ });
28
+ // changing number of selected items for multiselect filters
29
+ const noOfSelectedItems = this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;
30
+ isMultiSelect ? this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems = isSelectedItem ? noOfSelectedItems - 1 : noOfSelectedItems + 1 : null;
31
+ }
32
+ }
33
+ MobileFilterComponent.decorators = [
34
+ { type: Component, args: [{
35
+ selector: 'mis-mobile-filter',
36
+ template: "<div class=\"filters-container\">\n <div class=\"head display-flex\">\n <img (click)=\"closeFilters.emit();\" [src]=\"backIcon\" alt=\"\">\n <span>{{headerName}}</span>\n </div>\n <div class=\"body display-flex\">\n <div class=\"filters\">\n <ng-container *ngFor=\"let filter of localFilterOptions | keyvalue : originalOrder\">\n <div class=\"filter display-flex\" (click)=\"currentSelectedItem = filter.key\">\n <span class=\"filterName\" [ngStyle]=\"{'color': filter.key === currentSelectedItem ? '#0937B2' : '#181F33'}\">{{ filter.key }}</span>\n <span class=\"selectedNumber\" *ngIf=\"localFilterOptions[filter.key]['multiSelect'] && localFilterOptions[filter.key]['noOfSelectedItems'] > 0\">{{ localFilterOptions[filter.key]['noOfSelectedItems'] }}</span>\n <div class=\"highlightor\" *ngIf=\"filter.key === currentSelectedItem\"></div>\n </div>\n </ng-container>\n </div>\n <div class=\"filter-options-container\">\n <div class=\"filter-options-title\">\n <span>{{ currentSelectedItem }}</span>\n </div>\n <div class=\"filter-options\">\n <ng-container *ngFor=\"let option of localFilterOptions[currentSelectedItem]?.options; let i = index\">\n <div class=\"filter-option display-flex\" (click)=\"toggleFilter(option.value, option.selected)\" >\n <mis-checkbox *ngIf=\"localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\"></mis-checkbox>\n <input type=\"radio\" *ngIf=\"!localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\">\n <span [ngStyle]=\"{'color': option.selected ? '#181F33' : '#6A737D'}\">{{ option.label }}</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer display-flex\">\n <button\n mis-button\n size=\"md\"\n type=\"text\"\n (click)=\"clearFilters.emit()\">\n {{clearBtnName}}\n </button>\n <button\n mis-button\n size=\"md\"\n type=\"primary\"\n (click)=\"applyFilters.emit(localFilterOptions)\"\n >\n {{applyBtnName}}\n </button>\n </div>\n</div>\n",
37
+ styles: [".display-flex{display:flex}.filters-container{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;cursor:default}.filters-container *{font-family:Lato}.filters-container .head{height:56px;border-bottom:1px solid #e0e0e0;justify-content:flex-start;align-items:center;padding:0 16px;gap:12px}.filters-container .head img{cursor:pointer}.filters-container .head span{font-weight:700;font-size:17px;line-height:24px;letter-spacing:.2px}.filters-container .body{height:calc(100vh - 129px)}.filters-container .body .filters{width:120px;border-right:1px solid #e0e0e0;flex-shrink:0}.filters-container .body .filters .filter{height:56px;padding:0 16px;border-bottom:1px solid #e0e0e0;align-items:center;font-size:15px;justify-content:space-between;position:relative}.filters-container .body .filters .filter .filterName{color:#6a737d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filters .filter .selectedNumber{background-color:#f5f5f5;height:24px;width:auto;font-size:14px;min-width:24px;border-radius:50%;text-align:center;line-height:24px;padding:0 8px}.filters-container .body .filters .filter .highlightor{position:absolute;left:0;height:100%;width:4px;background-color:#0937b2}.filters-container .body .filter-options-container{padding:16px 16px 0 12px;width:calc(100% - 56px);overflow-x:hidden}.filters-container .body .filter-options-container *{color:#181f33}.filters-container .body .filter-options-container .filter-options-title{text-transform:uppercase;font-size:12px;line-height:16px;letter-spacing:.25px}.filters-container .body .filter-options-container .filter-options-title span{color:#6a737d}.filters-container .body .filter-options-container .filter-options{margin-top:16px;overflow-y:scroll;height:calc(100% - 32px)}.filters-container .body .filter-options-container .filter-options .filter-option{height:48px;border-bottom:1px solid #e0e0e0;align-items:center;padding-left:16px;gap:13px;font-size:15px}.filters-container .body .filter-options-container .filter-options .filter-option span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filter-options-container .filter-options .filter-option input[type=radio]{accent-color:#0937b2;width:20px;height:20px}.filters-container .footer{height:73px;border-top:1px solid #e0e0e0;padding:0 16px;align-items:center;justify-content:space-between}.filters-container .footer button{width:160px}"]
38
+ },] }
39
+ ];
40
+ MobileFilterComponent.ctorParameters = () => [];
41
+ MobileFilterComponent.propDecorators = {
42
+ filterOptions: [{ type: Input }],
43
+ backIcon: [{ type: Input }],
44
+ headerName: [{ type: Input }],
45
+ applyBtnName: [{ type: Input }],
46
+ clearBtnName: [{ type: Input }],
47
+ closeFilters: [{ type: Output }],
48
+ clearFilters: [{ type: Output }],
49
+ applyFilters: [{ type: Output }]
50
+ };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9tb2JpbGUtZmlsdGVyL21vYmlsZS1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0UsTUFBTSxPQUFPLHFCQUFxQjtJQW1CaEM7UUFoQkEsd0JBQW1CLEdBQVcsTUFBTSxDQUFDO1FBTTVCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsZUFBVSxHQUFXLFNBQVMsQ0FBQztRQUMvQixpQkFBWSxHQUFXLE9BQU8sQ0FBQztRQUMvQixpQkFBWSxHQUFXLGVBQWUsQ0FBQztRQUV0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFFNUMsQ0FBQztJQWRqQixJQUFhLGFBQWEsQ0FBQyxPQUFPO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUFBLENBQUM7SUFjRixRQUFRO0lBQ1IsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBSSxFQUFFLGNBQWM7UUFDL0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pJLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDO1lBQzlDLHVDQUNLLE1BQU0sS0FDVCxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFDOUc7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDREQUE0RDtRQUM1RCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5RixhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUosQ0FBQzs7O1lBOUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QiwwN0VBQTZDOzthQUU5Qzs7Ozs0QkFNRSxLQUFLO3VCQUlMLEtBQUs7eUJBRUwsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBRUwsTUFBTTsyQkFDTixNQUFNOzJCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pcy1tb2JpbGUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vYmlsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2JpbGUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW9iaWxlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBsb2NhbEZpbHRlck9wdGlvbnM6IElGaWx0ZXJPcHRpb25zO1xuICBjdXJyZW50U2VsZWN0ZWRJdGVtOiBzdHJpbmcgPSAnU29ydCc7XG5cbiAgQElucHV0KCkgc2V0IGZpbHRlck9wdGlvbnMob3B0aW9ucykge1xuICAgIHRoaXMubG9jYWxGaWx0ZXJPcHRpb25zID0gb3B0aW9ucztcbiAgfTtcblxuICBASW5wdXQoKSBiYWNrSWNvbjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgaGVhZGVyTmFtZTogc3RyaW5nID0gJ0ZpbHRlcnMnO1xuICBASW5wdXQoKSBhcHBseUJ0bk5hbWU6IHN0cmluZyA9ICdBcHBseSc7XG4gIEBJbnB1dCgpIGNsZWFyQnRuTmFtZTogc3RyaW5nID0gJ0NsZWFyIEZpbHRlcnMnO1xuXG4gIEBPdXRwdXQoKSBjbG9zZUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbGVhckZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhcHBseUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyPElGaWx0ZXJPcHRpb25zPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBvcmlnaW5hbE9yZGVyKCkgeyAgLy8gdXNlZCBpbiB0ZW1wbGF0ZSBmb3Iga2V5dmFsdWUgcGlwZSBzb3J0aW5nXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICB0b2dnbGVGaWx0ZXIoZGF0YSwgaXNTZWxlY3RlZEl0ZW0pIHtcbiAgICBjb25zdCBpc011bHRpU2VsZWN0ID0gdGhpcy5sb2NhbEZpbHRlck9wdGlvbnNbdGhpcy5jdXJyZW50U2VsZWN0ZWRJdGVtXS5tdWx0aVNlbGVjdDtcbiAgICB0aGlzLmxvY2FsRmlsdGVyT3B0aW9uc1t0aGlzLmN1cnJlbnRTZWxlY3RlZEl0ZW1dLm9wdGlvbnMgPSB0aGlzLmxvY2FsRmlsdGVyT3B0aW9uc1t0aGlzLmN1cnJlbnRTZWxlY3RlZEl0ZW1dLm9wdGlvbnMubWFwKG9wdGlvbiA9PiB7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkVmFsdWUgPSBvcHRpb24udmFsdWUgPT09IGRhdGE7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkVmFsdWUgPyBpc011bHRpU2VsZWN0ID8gIW9wdGlvbi5zZWxlY3RlZCA6IHRydWUgOiBpc011bHRpU2VsZWN0ID8gb3B0aW9uLnNlbGVjdGVkIDogZmFsc2VcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGNoYW5naW5nIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBmb3IgbXVsdGlzZWxlY3QgZmlsdGVyc1xuICAgIGNvbnN0IG5vT2ZTZWxlY3RlZEl0ZW1zID0gdGhpcy5sb2NhbEZpbHRlck9wdGlvbnNbdGhpcy5jdXJyZW50U2VsZWN0ZWRJdGVtXS5ub09mU2VsZWN0ZWRJdGVtcztcbiAgICBpc011bHRpU2VsZWN0ID8gdGhpcy5sb2NhbEZpbHRlck9wdGlvbnNbdGhpcy5jdXJyZW50U2VsZWN0ZWRJdGVtXS5ub09mU2VsZWN0ZWRJdGVtcyA9IGlzU2VsZWN0ZWRJdGVtID8gbm9PZlNlbGVjdGVkSXRlbXMgLSAxIDogbm9PZlNlbGVjdGVkSXRlbXMgKyAxIDogbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJPcHRpb25zIHtcbiAgW2ZpbHRlck5hbWU6IHN0cmluZ106IHtcbiAgICAgIG9wdGlvbnM6IHtsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBzZWxlY3RlZDogYm9vbGVhbiwgY2FwYWNpdGllcz86IG51bWJlcltdLCBhbWVuaXRpZXM/OiBzdHJpbmdbXX1bXSwgICAgLy8gY2FwYWNpdGllcyAmIGFtZW5pdGllcyBhcmUgZm9yIGZsb29yXG4gICAgICBtdWx0aVNlbGVjdDogYm9vbGVhbixcbiAgICAgIG5vT2ZTZWxlY3RlZEl0ZW1zPzogbnVtYmVyXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { MobileFilterComponent } from "./mobile-filter.component";
4
+ import { ButtonModule } from "mis-crystal-design-system/button";
5
+ import { CheckboxModule } from "mis-crystal-design-system/checkbox";
6
+ export class MobileFilterModule {
7
+ }
8
+ MobileFilterModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ declarations: [MobileFilterComponent],
11
+ imports: [CommonModule, ButtonModule, CheckboxModule],
12
+ exports: [MobileFilterComponent]
13
+ },] }
14
+ ];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZpbHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9tb2JpbGUtZmlsdGVyL21vYmlsZS1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFPcEUsTUFBTSxPQUFPLGtCQUFrQjs7O1lBTDlCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUM7Z0JBQ3JELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTW9iaWxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vbW9iaWxlLWZpbHRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL2J1dHRvblwiO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS9jaGVja2JveFwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtNb2JpbGVGaWx0ZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Nb2R1bGUsIENoZWNrYm94TW9kdWxlXSxcbiAgZXhwb3J0czogW01vYmlsZUZpbHRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTW9iaWxlRmlsdGVyTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { MobileFilterModule } from './mobile-filter.module';
2
+ export { MobileFilterComponent } from './mobile-filter.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL21vYmlsZS1maWx0ZXIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQWtCLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNb2JpbGVGaWx0ZXJNb2R1bGUgfSBmcm9tICcuL21vYmlsZS1maWx0ZXIubW9kdWxlJztcbmV4cG9ydCB7IE1vYmlsZUZpbHRlckNvbXBvbmVudCwgSUZpbHRlck9wdGlvbnMgfSBmcm9tICcuL21vYmlsZS1maWx0ZXIuY29tcG9uZW50JzsiXX0=
@@ -0,0 +1,71 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
+ import { ButtonModule } from 'mis-crystal-design-system/button';
4
+ import { CheckboxModule } from 'mis-crystal-design-system/checkbox';
5
+
6
+ class MobileFilterComponent {
7
+ constructor() {
8
+ this.currentSelectedItem = 'Sort';
9
+ this.backIcon = '';
10
+ this.headerName = 'Filters';
11
+ this.applyBtnName = 'Apply';
12
+ this.clearBtnName = 'Clear Filters';
13
+ this.closeFilters = new EventEmitter();
14
+ this.clearFilters = new EventEmitter();
15
+ this.applyFilters = new EventEmitter();
16
+ }
17
+ set filterOptions(options) {
18
+ this.localFilterOptions = options;
19
+ }
20
+ ;
21
+ ngOnInit() {
22
+ }
23
+ originalOrder() {
24
+ return 0;
25
+ }
26
+ toggleFilter(data, isSelectedItem) {
27
+ const isMultiSelect = this.localFilterOptions[this.currentSelectedItem].multiSelect;
28
+ this.localFilterOptions[this.currentSelectedItem].options = this.localFilterOptions[this.currentSelectedItem].options.map(option => {
29
+ const isSelectedValue = option.value === data;
30
+ return Object.assign(Object.assign({}, option), { selected: isSelectedValue ? isMultiSelect ? !option.selected : true : isMultiSelect ? option.selected : false });
31
+ });
32
+ // changing number of selected items for multiselect filters
33
+ const noOfSelectedItems = this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;
34
+ isMultiSelect ? this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems = isSelectedItem ? noOfSelectedItems - 1 : noOfSelectedItems + 1 : null;
35
+ }
36
+ }
37
+ MobileFilterComponent.decorators = [
38
+ { type: Component, args: [{
39
+ selector: 'mis-mobile-filter',
40
+ template: "<div class=\"filters-container\">\n <div class=\"head display-flex\">\n <img (click)=\"closeFilters.emit();\" [src]=\"backIcon\" alt=\"\">\n <span>{{headerName}}</span>\n </div>\n <div class=\"body display-flex\">\n <div class=\"filters\">\n <ng-container *ngFor=\"let filter of localFilterOptions | keyvalue : originalOrder\">\n <div class=\"filter display-flex\" (click)=\"currentSelectedItem = filter.key\">\n <span class=\"filterName\" [ngStyle]=\"{'color': filter.key === currentSelectedItem ? '#0937B2' : '#181F33'}\">{{ filter.key }}</span>\n <span class=\"selectedNumber\" *ngIf=\"localFilterOptions[filter.key]['multiSelect'] && localFilterOptions[filter.key]['noOfSelectedItems'] > 0\">{{ localFilterOptions[filter.key]['noOfSelectedItems'] }}</span>\n <div class=\"highlightor\" *ngIf=\"filter.key === currentSelectedItem\"></div>\n </div>\n </ng-container>\n </div>\n <div class=\"filter-options-container\">\n <div class=\"filter-options-title\">\n <span>{{ currentSelectedItem }}</span>\n </div>\n <div class=\"filter-options\">\n <ng-container *ngFor=\"let option of localFilterOptions[currentSelectedItem]?.options; let i = index\">\n <div class=\"filter-option display-flex\" (click)=\"toggleFilter(option.value, option.selected)\" >\n <mis-checkbox *ngIf=\"localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\"></mis-checkbox>\n <input type=\"radio\" *ngIf=\"!localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\">\n <span [ngStyle]=\"{'color': option.selected ? '#181F33' : '#6A737D'}\">{{ option.label }}</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer display-flex\">\n <button\n mis-button\n size=\"md\"\n type=\"text\"\n (click)=\"clearFilters.emit()\">\n {{clearBtnName}}\n </button>\n <button\n mis-button\n size=\"md\"\n type=\"primary\"\n (click)=\"applyFilters.emit(localFilterOptions)\"\n >\n {{applyBtnName}}\n </button>\n </div>\n</div>\n",
41
+ styles: [".display-flex{display:flex}.filters-container{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;cursor:default}.filters-container *{font-family:Lato}.filters-container .head{height:56px;border-bottom:1px solid #e0e0e0;justify-content:flex-start;align-items:center;padding:0 16px;gap:12px}.filters-container .head img{cursor:pointer}.filters-container .head span{font-weight:700;font-size:17px;line-height:24px;letter-spacing:.2px}.filters-container .body{height:calc(100vh - 129px)}.filters-container .body .filters{width:120px;border-right:1px solid #e0e0e0;flex-shrink:0}.filters-container .body .filters .filter{height:56px;padding:0 16px;border-bottom:1px solid #e0e0e0;align-items:center;font-size:15px;justify-content:space-between;position:relative}.filters-container .body .filters .filter .filterName{color:#6a737d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filters .filter .selectedNumber{background-color:#f5f5f5;height:24px;width:auto;font-size:14px;min-width:24px;border-radius:50%;text-align:center;line-height:24px;padding:0 8px}.filters-container .body .filters .filter .highlightor{position:absolute;left:0;height:100%;width:4px;background-color:#0937b2}.filters-container .body .filter-options-container{padding:16px 16px 0 12px;width:calc(100% - 56px);overflow-x:hidden}.filters-container .body .filter-options-container *{color:#181f33}.filters-container .body .filter-options-container .filter-options-title{text-transform:uppercase;font-size:12px;line-height:16px;letter-spacing:.25px}.filters-container .body .filter-options-container .filter-options-title span{color:#6a737d}.filters-container .body .filter-options-container .filter-options{margin-top:16px;overflow-y:scroll;height:calc(100% - 32px)}.filters-container .body .filter-options-container .filter-options .filter-option{height:48px;border-bottom:1px solid #e0e0e0;align-items:center;padding-left:16px;gap:13px;font-size:15px}.filters-container .body .filter-options-container .filter-options .filter-option span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filter-options-container .filter-options .filter-option input[type=radio]{accent-color:#0937b2;width:20px;height:20px}.filters-container .footer{height:73px;border-top:1px solid #e0e0e0;padding:0 16px;align-items:center;justify-content:space-between}.filters-container .footer button{width:160px}"]
42
+ },] }
43
+ ];
44
+ MobileFilterComponent.ctorParameters = () => [];
45
+ MobileFilterComponent.propDecorators = {
46
+ filterOptions: [{ type: Input }],
47
+ backIcon: [{ type: Input }],
48
+ headerName: [{ type: Input }],
49
+ applyBtnName: [{ type: Input }],
50
+ clearBtnName: [{ type: Input }],
51
+ closeFilters: [{ type: Output }],
52
+ clearFilters: [{ type: Output }],
53
+ applyFilters: [{ type: Output }]
54
+ };
55
+
56
+ class MobileFilterModule {
57
+ }
58
+ MobileFilterModule.decorators = [
59
+ { type: NgModule, args: [{
60
+ declarations: [MobileFilterComponent],
61
+ imports: [CommonModule, ButtonModule, CheckboxModule],
62
+ exports: [MobileFilterComponent]
63
+ },] }
64
+ ];
65
+
66
+ /**
67
+ * Generated bundle index. Do not edit.
68
+ */
69
+
70
+ export { MobileFilterComponent, MobileFilterModule };
71
+ //# sourceMappingURL=mis-crystal-design-system-mobile-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mis-crystal-design-system-mobile-filter.js","sources":["../../../projects/mis-components/mobile-filter/mobile-filter.component.ts","../../../projects/mis-components/mobile-filter/mobile-filter.module.ts","../../../projects/mis-components/mobile-filter/mis-crystal-design-system-mobile-filter.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'mis-mobile-filter',\n templateUrl: './mobile-filter.component.html',\n styleUrls: ['./mobile-filter.component.scss']\n})\nexport class MobileFilterComponent implements OnInit {\n\n localFilterOptions: IFilterOptions;\n currentSelectedItem: string = 'Sort';\n\n @Input() set filterOptions(options) {\n this.localFilterOptions = options;\n };\n\n @Input() backIcon: string = '';\n\n @Input() headerName: string = 'Filters';\n @Input() applyBtnName: string = 'Apply';\n @Input() clearBtnName: string = 'Clear Filters';\n\n @Output() closeFilters = new EventEmitter();\n @Output() clearFilters = new EventEmitter();\n @Output() applyFilters = new EventEmitter<IFilterOptions>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n originalOrder() { // used in template for keyvalue pipe sorting\n return 0;\n }\n\n toggleFilter(data, isSelectedItem) {\n const isMultiSelect = this.localFilterOptions[this.currentSelectedItem].multiSelect;\n this.localFilterOptions[this.currentSelectedItem].options = this.localFilterOptions[this.currentSelectedItem].options.map(option => {\n const isSelectedValue = option.value === data;\n return {\n ...option,\n selected: isSelectedValue ? isMultiSelect ? !option.selected : true : isMultiSelect ? option.selected : false\n }\n });\n\n // changing number of selected items for multiselect filters\n const noOfSelectedItems = this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems;\n isMultiSelect ? this.localFilterOptions[this.currentSelectedItem].noOfSelectedItems = isSelectedItem ? noOfSelectedItems - 1 : noOfSelectedItems + 1 : null;\n }\n}\n\nexport interface IFilterOptions {\n [filterName: string]: {\n options: {label: string, value: string, selected: boolean, capacities?: number[], amenities?: string[]}[], // capacities & amenities are for floor\n multiSelect: boolean,\n noOfSelectedItems?: number\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MobileFilterComponent } from \"./mobile-filter.component\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\n\n@NgModule({\n declarations: [MobileFilterComponent],\n imports: [CommonModule, ButtonModule, CheckboxModule],\n exports: [MobileFilterComponent]\n})\nexport class MobileFilterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAOa,qBAAqB;IAmBhC;QAhBA,wBAAmB,GAAW,MAAM,CAAC;QAM5B,aAAQ,GAAW,EAAE,CAAC;QAEtB,eAAU,GAAW,SAAS,CAAC;QAC/B,iBAAY,GAAW,OAAO,CAAC;QAC/B,iBAAY,GAAW,eAAe,CAAC;QAEtC,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,iBAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;KAE3C;IAdjB,IAAa,aAAa,CAAC,OAAO;QAChC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;KACnC;;IAcD,QAAQ;KACP;IAED,aAAa;QACX,OAAO,CAAC,CAAC;KACV;IAED,YAAY,CAAC,IAAI,EAAE,cAAc;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC;QACpF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;YAC9H,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;YAC9C,uCACK,MAAM,KACT,QAAQ,EAAE,eAAe,GAAG,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,aAAa,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,IAC9G;SACF,CAAC,CAAC;;QAGH,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAC;QAC9F,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;KAC7J;;;YA9CF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,07EAA6C;;aAE9C;;;;4BAME,KAAK;uBAIL,KAAK;yBAEL,KAAK;2BACL,KAAK;2BACL,KAAK;2BAEL,MAAM;2BACN,MAAM;2BACN,MAAM;;;MCbI,kBAAkB;;;YAL9B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;gBACrD,OAAO,EAAE,CAAC,qBAAqB,CAAC;aACjC;;;ACVD;;;;;;"}
@@ -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":{"MobileFilterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MobileFilterComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12},{"__symbolic":"reference","module":"mis-crystal-design-system/button","name":"ButtonModule","line":8,"character":26},{"__symbolic":"reference","module":"mis-crystal-design-system/checkbox","name":"CheckboxModule","line":8,"character":40}],"exports":[{"__symbolic":"reference","name":"MobileFilterComponent"}]}]}],"members":{}},"MobileFilterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"mis-mobile-filter","template":"<div class=\"filters-container\">\n <div class=\"head display-flex\">\n <img (click)=\"closeFilters.emit();\" [src]=\"backIcon\" alt=\"\">\n <span>{{headerName}}</span>\n </div>\n <div class=\"body display-flex\">\n <div class=\"filters\">\n <ng-container *ngFor=\"let filter of localFilterOptions | keyvalue : originalOrder\">\n <div class=\"filter display-flex\" (click)=\"currentSelectedItem = filter.key\">\n <span class=\"filterName\" [ngStyle]=\"{'color': filter.key === currentSelectedItem ? '#0937B2' : '#181F33'}\">{{ filter.key }}</span>\n <span class=\"selectedNumber\" *ngIf=\"localFilterOptions[filter.key]['multiSelect'] && localFilterOptions[filter.key]['noOfSelectedItems'] > 0\">{{ localFilterOptions[filter.key]['noOfSelectedItems'] }}</span>\n <div class=\"highlightor\" *ngIf=\"filter.key === currentSelectedItem\"></div>\n </div>\n </ng-container>\n </div>\n <div class=\"filter-options-container\">\n <div class=\"filter-options-title\">\n <span>{{ currentSelectedItem }}</span>\n </div>\n <div class=\"filter-options\">\n <ng-container *ngFor=\"let option of localFilterOptions[currentSelectedItem]?.options; let i = index\">\n <div class=\"filter-option display-flex\" (click)=\"toggleFilter(option.value, option.selected)\" >\n <mis-checkbox *ngIf=\"localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\"></mis-checkbox>\n <input type=\"radio\" *ngIf=\"!localFilterOptions[currentSelectedItem].multiSelect\" [checked]=\"option.selected\">\n <span [ngStyle]=\"{'color': option.selected ? '#181F33' : '#6A737D'}\">{{ option.label }}</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer display-flex\">\n <button\n mis-button\n size=\"md\"\n type=\"text\"\n (click)=\"clearFilters.emit()\">\n {{clearBtnName}}\n </button>\n <button\n mis-button\n size=\"md\"\n type=\"primary\"\n (click)=\"applyFilters.emit(localFilterOptions)\"\n >\n {{applyBtnName}}\n </button>\n </div>\n</div>\n","styles":[".display-flex{display:flex}.filters-container{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;cursor:default}.filters-container *{font-family:Lato}.filters-container .head{height:56px;border-bottom:1px solid #e0e0e0;justify-content:flex-start;align-items:center;padding:0 16px;gap:12px}.filters-container .head img{cursor:pointer}.filters-container .head span{font-weight:700;font-size:17px;line-height:24px;letter-spacing:.2px}.filters-container .body{height:calc(100vh - 129px)}.filters-container .body .filters{width:120px;border-right:1px solid #e0e0e0;flex-shrink:0}.filters-container .body .filters .filter{height:56px;padding:0 16px;border-bottom:1px solid #e0e0e0;align-items:center;font-size:15px;justify-content:space-between;position:relative}.filters-container .body .filters .filter .filterName{color:#6a737d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filters .filter .selectedNumber{background-color:#f5f5f5;height:24px;width:auto;font-size:14px;min-width:24px;border-radius:50%;text-align:center;line-height:24px;padding:0 8px}.filters-container .body .filters .filter .highlightor{position:absolute;left:0;height:100%;width:4px;background-color:#0937b2}.filters-container .body .filter-options-container{padding:16px 16px 0 12px;width:calc(100% - 56px);overflow-x:hidden}.filters-container .body .filter-options-container *{color:#181f33}.filters-container .body .filter-options-container .filter-options-title{text-transform:uppercase;font-size:12px;line-height:16px;letter-spacing:.25px}.filters-container .body .filter-options-container .filter-options-title span{color:#6a737d}.filters-container .body .filter-options-container .filter-options{margin-top:16px;overflow-y:scroll;height:calc(100% - 32px)}.filters-container .body .filter-options-container .filter-options .filter-option{height:48px;border-bottom:1px solid #e0e0e0;align-items:center;padding-left:16px;gap:13px;font-size:15px}.filters-container .body .filter-options-container .filter-options .filter-option span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filters-container .body .filter-options-container .filter-options .filter-option input[type=radio]{accent-color:#0937b2;width:20px;height:20px}.filters-container .footer{height:73px;border-top:1px solid #e0e0e0;padding:0 16px;align-items:center;justify-content:space-between}.filters-container .footer button{width:160px}"]}]}],"members":{"filterOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"backIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"headerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"applyBtnName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"clearBtnName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"closeFilters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"clearFilters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"applyFilters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"originalOrder":[{"__symbolic":"method"}],"toggleFilter":[{"__symbolic":"method"}]}},"IFilterOptions":{"__symbolic":"interface"}},"origins":{"MobileFilterModule":"./mobile-filter.module","MobileFilterComponent":"./mobile-filter.component","IFilterOptions":"./mobile-filter.component"},"importAs":"mis-crystal-design-system/mobile-filter"}
@@ -0,0 +1,30 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ export declare class MobileFilterComponent implements OnInit {
3
+ localFilterOptions: IFilterOptions;
4
+ currentSelectedItem: string;
5
+ set filterOptions(options: any);
6
+ backIcon: string;
7
+ headerName: string;
8
+ applyBtnName: string;
9
+ clearBtnName: string;
10
+ closeFilters: EventEmitter<any>;
11
+ clearFilters: EventEmitter<any>;
12
+ applyFilters: EventEmitter<IFilterOptions>;
13
+ constructor();
14
+ ngOnInit(): void;
15
+ originalOrder(): number;
16
+ toggleFilter(data: any, isSelectedItem: any): void;
17
+ }
18
+ export interface IFilterOptions {
19
+ [filterName: string]: {
20
+ options: {
21
+ label: string;
22
+ value: string;
23
+ selected: boolean;
24
+ capacities?: number[];
25
+ amenities?: string[];
26
+ }[];
27
+ multiSelect: boolean;
28
+ noOfSelectedItems?: number;
29
+ };
30
+ }
@@ -0,0 +1,2 @@
1
+ export declare class MobileFilterModule {
2
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "main": "../bundles/mis-crystal-design-system-mobile-filter.umd.js",
3
+ "module": "../fesm2015/mis-crystal-design-system-mobile-filter.js",
4
+ "es2015": "../fesm2015/mis-crystal-design-system-mobile-filter.js",
5
+ "esm2015": "../esm2015/mobile-filter/mis-crystal-design-system-mobile-filter.js",
6
+ "fesm2015": "../fesm2015/mis-crystal-design-system-mobile-filter.js",
7
+ "typings": "mis-crystal-design-system-mobile-filter.d.ts",
8
+ "metadata": "mis-crystal-design-system-mobile-filter.metadata.json",
9
+ "sideEffects": false,
10
+ "name": "mis-crystal-design-system/mobile-filter"
11
+ }
@@ -0,0 +1,2 @@
1
+ export { MobileFilterModule } from './mobile-filter.module';
2
+ export { MobileFilterComponent, IFilterOptions } from './mobile-filter.component';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mis-crystal-design-system",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "*",
6
6
  "@angular/core": "*",