-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsrc_app_custom-elements_resource_resource-list_module_ts.a7610f41c255480b.js.map
1 lines (1 loc) · 8.37 KB
/
src_app_custom-elements_resource_resource-list_module_ts.a7610f41c255480b.js.map
1
{"version":3,"file":"src_app_custom-elements_resource_resource-list_module_ts.a7610f41c255480b.js","mappings":"uPASA,MAAMA,EAAgBC,KAAqB,iBAGpC,IAAMC,EAAb,MAAM,MAAOA,EAGXC,YAAoBC,eAClBC,KAAKC,WAAaD,KAAKE,gBAGjBA,gBAEN,MAAMD,EAAaD,KAAKD,KAAKI,IAASR,GAAeS,MACnDC,OAAIC,GAUV,WAAsBC,GACpB,OAAOC,OAAOC,KAAKF,GAAcF,IAAIK,IACnC,MAAMC,EAAMJ,EAAaG,GACzB,MAAO,CACLE,GAAIC,EAAOH,GACXI,MAAOJ,EACPK,MAAOJ,EAAII,MACXC,cAAeC,EAAgBN,EAAIK,cAAeN,MAGrDQ,KAAKC,GApBUC,CAAad,KACzBe,UAGDpB,SAAiDqB,UAC3CrB,gDAfEJ,GAAe0B,wCAAf1B,EAAe2B,QAAf3B,EAAe,YAAfA,GAAb,GAkCA,WAAyB4B,EAAsBf,GAC7C,OAAOF,OAAOC,KAAKgB,GAAiBpB,IAAIqB,IACpC,MAAMC,EAAMF,EAAgBC,GAC5B,MAAO,CACLd,GAAIC,EAAOa,GACXZ,MAAOY,EACPX,MAAOY,EAAIZ,MACXa,UAAWC,EAAYF,EAAIC,UAAWF,EAAQhB,MAGnDQ,KAAKC,GAIR,WAAqBW,EAAmBJ,EAAgBhB,GACtD,OAAOF,OAAOC,KAAKqB,GAAczB,IAAI0B,IACnC,MAAMC,EAAMF,EAAaC,GACzBC,SAAIC,SAAWvB,EACfsB,EAAIE,YAAcR,EAClBM,EAAIpB,GAAKC,EAAOkB,GACTC,IAERd,KAAKiB,GAGR,WAAqBC,EAA2BC,GAC9C,OAAOD,EAAErB,QAAUsB,EAAEtB,MAAQoB,EAAcC,EAAGC,GAAKD,EAAErB,MAAQsB,EAAEtB,MAAQ,GAAI,EAG7E,WAAuBqB,EAAoBC,GAC1C,OAAOD,EAAEtB,MAAMwB,cAAgBD,EAAEvB,MAAMwB,cAAgB,GAAI,EAG5D,WAAgBxB,GACd,OAAOA,EAAMyB,cAAcC,QAAQ,OAAQ,2DC9EzCjB,oBAGEA,qEAASA,gCAA6BA,SAAkBA,8CADxDA,8CACsCA,kDAKtCA,eAAoD,UAApDA,CAAoD,QAApDA,CAAoD,UAGIA,SAAsCA,QACxFA,iBAAmDA,SAAkBA,QACrEA,gBAAwDA,SAA6CA,QACrGA,gBAAyDA,UAAqCA,wCAJpCA,mCACRA,mCACCA,wBACKA,uDACCA,mEARjEA,eAAiE,UACTA,SAAqBA,QAC3EA,wBAUFA,kCAXgCA,0BAAwBA,wBAC5BA,uCCAzB,IAAMkB,EAAb,MAAM,MAAOA,EAKX3C,YACU4C,EACAC,GADA3C,uBACAA,uBAGV4C,WACE,MAAMX,EAAYjC,KAAK2C,gBAAgBE,SAASZ,UAAY,GAG5DjC,KAAK0C,gBAAgBzC,WAAW6C,UAAUC,IACxC/C,KAAKC,WAAa8C,EAClB/C,KAAKgD,eAAef,KAIxBe,eAAepC,GACbA,EAAKA,EAAG2B,cACRvC,KAAKiD,iBACHjD,KAAKC,WAAWiD,KAAKjB,GAAYA,EAASrB,GAAG2B,gBAAkB3B,IAAOZ,KAAKC,WAAW,GACxFD,KAAK2C,gBAAgBQ,UAAU,GAAI,CAAClB,SAAUjC,KAAKiD,iBAAiBrC,mDAxB3D6B,GAAqBlB,8CAArBkB,EAAqBW,0nBDVlC7B,iBAA2B,WAEvBA,0BAIFA,QACAA,iBACEA,uBAaFA,iBAnB+BA,uCAMAA,iICEpBkB,GAAb,GCCaY,EAAb,MAAM,MAAOA,EALbvD,cAMEE,4BAAoCyC,gDADzBY,6DAFA,CAAExD,GAAiByD,SAFnBC,QAIAF,GAAb","names":["resourcesPath","CONTENT_URL_PREFIX","ResourceService","constructor","http","this","categories","getCategories","get","pipe","map","data","categoryJson","Object","keys","catKey","cat","id","makeId","title","order","subCategories","mkSubCategories","sort","compareCats","mkCategories","publishLast","connect","i0","factory","subCategoryJson","subKey","sub","resources","mkResources","resourceJson","resKey","res","category","subCategory","compareTitles","l","r","toUpperCase","toLowerCase","replace","ResourceListComponent","resourceService","locationService","ngOnInit","search","subscribe","cats","selectCategory","selectedCategory","find","setSearch","selectors","ResourceListModule","imports","CommonModule"],"sourceRoot":"webpack:///","sources":["./src/app/custom-elements/resource/resource.service.ts","./src/app/custom-elements/resource/resource-list.component.html","./src/app/custom-elements/resource/resource-list.component.ts","./src/app/custom-elements/resource/resource-list.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { ConnectableObservable, Observable } from 'rxjs';\nimport { map, publishLast } from 'rxjs/operators';\n\nimport { Category, Resource, SubCategory } from './resource.model';\nimport { CONTENT_URL_PREFIX } from 'app/documents/document.service';\n\nconst resourcesPath = CONTENT_URL_PREFIX + 'resources.json';\n\n@Injectable()\nexport class ResourceService {\n categories: Observable<Category[]>;\n\n constructor(private http: HttpClient) {\n this.categories = this.getCategories();\n }\n\n private getCategories(): Observable<Category[]> {\n\n const categories = this.http.get<any>(resourcesPath).pipe(\n map(data => mkCategories(data)),\n publishLast(),\n );\n\n (categories as ConnectableObservable<Category[]>).connect();\n return categories;\n }\n}\n\n// Extract sorted Category[] from resource JSON data\nfunction mkCategories(categoryJson: any): Category[] {\n return Object.keys(categoryJson).map(catKey => {\n const cat = categoryJson[catKey];\n return {\n id: makeId(catKey),\n title: catKey,\n order: cat.order,\n subCategories: mkSubCategories(cat.subCategories, catKey)\n } as Category;\n })\n .sort(compareCats);\n}\n\n// Extract sorted SubCategory[] from JSON category data\nfunction mkSubCategories(subCategoryJson: any, catKey: string): SubCategory[] {\n return Object.keys(subCategoryJson).map(subKey => {\n const sub = subCategoryJson[subKey];\n return {\n id: makeId(subKey),\n title: subKey,\n order: sub.order,\n resources: mkResources(sub.resources, subKey, catKey)\n } as SubCategory;\n })\n .sort(compareCats);\n}\n\n// Extract sorted Resource[] from JSON subcategory data\nfunction mkResources(resourceJson: any, subKey: string, catKey: string): Resource[] {\n return Object.keys(resourceJson).map(resKey => {\n const res = resourceJson[resKey];\n res.category = catKey;\n res.subCategory = subKey;\n res.id = makeId(resKey);\n return res as Resource;\n })\n .sort(compareTitles);\n}\n\nfunction compareCats(l: Category | SubCategory, r: Category | SubCategory) {\n return l.order === r.order ? compareTitles(l, r) : l.order > r.order ? 1 : -1;\n}\n\nfunction compareTitles(l: {title: string}, r: {title: string}) {\n return l.title.toUpperCase() > r.title.toUpperCase() ? 1 : -1;\n}\n\nfunction makeId(title: string) {\n return title.toLowerCase().replace(/\\s+/g, '-');\n}\n","<div class=\"center-layout\">\n <div class=\"flex-center group-buttons\">\n <button *ngFor=\"let category of categories\"\n class=\"button mat-button filter-button\"\n [class.selected]=\"category.id == selectedCategory.id\"\n (click)=\"selectCategory(category.id)\">{{category.title}}</button>\n </div>\n <div class=\"showcase\">\n <div *ngFor=\"let subCategory of selectedCategory?.subCategories\">\n <h2 class=\"subcategory-title\" id=\"{{subCategory.id}}\">{{subCategory.title}}</h2>\n <div *ngFor=\"let resource of subCategory.resources\">\n <div class=\"resource-item\">\n <a class=\"resource-row-link\" rel=\"noopener\" target=\"_blank\" [href]=\"resource.url\">\n <h3 translation-result=\"on\" class=\"resource-name\">{{resource.titleCn || resource.title}}</h3>\n <h3 translation-origin=\"off\" class=\"resource-name\">{{resource.title}}</h3>\n <p translation-result=\"on\" class=\"resource-description\">{{resource.descCn || resource.desc || '无描述'}}</p>\n <p translation-origin=\"off\" class=\"resource-description\">{{resource.desc || 'No Description'}}</p>\n </a>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\nimport { Category } from './resource.model';\nimport { ResourceService } from './resource.service';\nimport { LocationService } from 'app/shared/location.service';\n\n@Component({\n selector: 'aio-resource-list',\n templateUrl: 'resource-list.component.html'\n})\nexport class ResourceListComponent implements OnInit {\n\n categories: Category[];\n selectedCategory: Category;\n\n constructor(\n private resourceService: ResourceService,\n private locationService: LocationService) {\n }\n\n ngOnInit() {\n const category = this.locationService.search().category || '';\n // Not using async pipe because cats appear twice in template\n // No need to unsubscribe because categories observable completes.\n this.resourceService.categories.subscribe(cats => {\n this.categories = cats;\n this.selectCategory(category);\n });\n }\n\n selectCategory(id: string) {\n id = id.toLowerCase();\n this.selectedCategory =\n this.categories.find(category => category.id.toLowerCase() === id) || this.categories[0];\n this.locationService.setSearch('', {category: this.selectedCategory.id});\n }\n}\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResourceListComponent } from './resource-list.component';\nimport { ResourceService } from './resource.service';\nimport { WithCustomElementComponent } from '../element-registry';\n\n@NgModule({\n imports: [ CommonModule ],\n declarations: [ ResourceListComponent ],\n providers: [ ResourceService ]\n})\nexport class ResourceListModule implements WithCustomElementComponent {\n customElementComponent: Type<any> = ResourceListComponent;\n}\n"]}