@firestitch/2fa 12.0.1 → 12.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/trusted-devices/trusted-devices.component.d.ts +2 -2
- package/app/interfaces/trusted-device-ip.d.ts +3 -0
- package/bundles/firestitch-2fa.umd.js +9 -16
- package/bundles/firestitch-2fa.umd.js.map +1 -1
- package/esm2015/app/components/trusted-devices/trusted-devices.component.js +6 -14
- package/esm2015/app/interfaces/trusted-device-ip.js +1 -1
- package/fesm2015/firestitch-2fa.js +5 -13
- package/fesm2015/firestitch-2fa.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ export declare class FsTrustedDevicesComponent implements OnInit, OnDestroy {
|
|
|
10
10
|
data: ITrustedDevice[];
|
|
11
11
|
paging?: any;
|
|
12
12
|
}>;
|
|
13
|
-
|
|
13
|
+
deleteTrustedDevice: (trustedDevice: ITrustedDevice) => Observable<any>;
|
|
14
14
|
signOutTrustedDevice: (trustedDevice: ITrustedDevice) => Observable<any>;
|
|
15
15
|
showAccount: boolean;
|
|
16
16
|
listComponent: FsListComponent;
|
|
@@ -22,5 +22,5 @@ export declare class FsTrustedDevicesComponent implements OnInit, OnDestroy {
|
|
|
22
22
|
private _initListConfig;
|
|
23
23
|
reload(): void;
|
|
24
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsTrustedDevicesComponent, never>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FsTrustedDevicesComponent, "fs-trusted-devices", never, { "fetchTrustedDevices": "fetchTrustedDevices"; "
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FsTrustedDevicesComponent, "fs-trusted-devices", never, { "fetchTrustedDevices": "fetchTrustedDevices"; "deleteTrustedDevice": "deleteTrustedDevice"; "signOutTrustedDevice": "signOutTrustedDevice"; "showAccount": "showAccount"; }, {}, never, never>;
|
|
26
26
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/flex-layout'), require('@angular/material/icon'), require('@firestitch/list'), require('@firestitch/date'), require('@firestitch/country'), require('@firestitch/device'), require('@angular/material/tooltip'), require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@firestitch/2fa', ['exports', '@angular/core', '@angular/common', '@angular/flex-layout', '@angular/material/icon', '@firestitch/list', '@firestitch/date', '@firestitch/country', '@firestitch/device', '@angular/material/tooltip', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["2fa"] = {}), global.ng.core, global.ng.common, global.ng.flexLayout, global.ng.material.icon, global.i2$1, global.i7, global.i1$1, global.i5, global.ng.material.tooltip, global.
|
|
5
|
-
})(this, (function (exports, i0, i6, flexLayout, i1, i2$1, i7, i1$1, i5, i2,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/flex-layout'), require('@angular/material/icon'), require('@firestitch/list'), require('@firestitch/date'), require('@firestitch/country'), require('@firestitch/device'), require('@angular/material/tooltip'), require('rxjs'), require('rxjs/operators'), require('@firestitch/badge')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@firestitch/2fa', ['exports', '@angular/core', '@angular/common', '@angular/flex-layout', '@angular/material/icon', '@firestitch/list', '@firestitch/date', '@firestitch/country', '@firestitch/device', '@angular/material/tooltip', 'rxjs', 'rxjs/operators', '@firestitch/badge'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["2fa"] = {}), global.ng.core, global.ng.common, global.ng.flexLayout, global.ng.material.icon, global.i2$1, global.i7, global.i1$1, global.i5, global.ng.material.tooltip, global.rxjs, global.rxjs.operators, global.i3));
|
|
5
|
+
})(this, (function (exports, i0, i6, flexLayout, i1, i2$1, i7, i1$1, i5, i2, rxjs, operators, i3) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespace(e) {
|
|
8
8
|
if (e && e.__esModule) return e;
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
function FsTrustedDevicesComponent(_fsCountry) {
|
|
54
54
|
this._fsCountry = _fsCountry;
|
|
55
55
|
this.fetchTrustedDevices = function (query) { return new rxjs.Observable(); };
|
|
56
|
-
this.
|
|
56
|
+
this.deleteTrustedDevice = function (trustedDevice) { return new rxjs.Observable(); };
|
|
57
57
|
this.signOutTrustedDevice = function (trustedDevice) { return new rxjs.Observable(); };
|
|
58
58
|
this.showAccount = true;
|
|
59
59
|
this._destroy$ = new rxjs.Subject();
|
|
@@ -73,13 +73,6 @@
|
|
|
73
73
|
FsTrustedDevicesComponent.prototype._initListConfig = function () {
|
|
74
74
|
var _this = this;
|
|
75
75
|
this.listConfig = {
|
|
76
|
-
filters: [
|
|
77
|
-
{
|
|
78
|
-
name: 'keyword',
|
|
79
|
-
type: filter.ItemType.Keyword,
|
|
80
|
-
label: 'Search',
|
|
81
|
-
},
|
|
82
|
-
],
|
|
83
76
|
rowActions: [
|
|
84
77
|
{
|
|
85
78
|
click: function (data) {
|
|
@@ -93,14 +86,14 @@
|
|
|
93
86
|
},
|
|
94
87
|
{
|
|
95
88
|
click: function (data) {
|
|
96
|
-
_this.
|
|
89
|
+
_this.deleteTrustedDevice(data)
|
|
97
90
|
.subscribe(function () {
|
|
98
91
|
_this.reload();
|
|
99
92
|
});
|
|
100
93
|
},
|
|
101
94
|
remove: {
|
|
102
95
|
title: 'Confirm',
|
|
103
|
-
template: 'Are you sure you would like to delete this
|
|
96
|
+
template: 'Are you sure you would like to delete this trusted device?',
|
|
104
97
|
},
|
|
105
98
|
menu: true,
|
|
106
99
|
label: 'Delete',
|
|
@@ -123,7 +116,7 @@
|
|
|
123
116
|
return FsTrustedDevicesComponent;
|
|
124
117
|
}());
|
|
125
118
|
FsTrustedDevicesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsTrustedDevicesComponent, deps: [{ token: i1__namespace$1.FsCountry }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
126
|
-
FsTrustedDevicesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTrustedDevicesComponent, selector: "fs-trusted-devices", inputs: { fetchTrustedDevices: "fetchTrustedDevices",
|
|
119
|
+
FsTrustedDevicesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTrustedDevicesComponent, selector: "fs-trusted-devices", inputs: { fetchTrustedDevices: "fetchTrustedDevices", deleteTrustedDevice: "deleteTrustedDevice", signOutTrustedDevice: "signOutTrustedDevice", showAccount: "showAccount" }, viewQueries: [{ propertyName: "listComponent", first: true, predicate: i2$1.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <!-- Use FsIp and pass in region, country, lat and lng -->\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .col-account .row{display:flex;align-items:center}:host ::ng-deep .col-account .row fs-badge{margin-right:5px}:host ::ng-deep .col-device .device{position:relative;display:inline-block}:host ::ng-deep .col-device .device .current-device{right:8px;top:-8px;position:absolute}\n"], components: [{ type: i2__namespace$1.FsListComponent, selector: "fs-list", inputs: ["loaderLines", "config"], outputs: ["filtersReady"] }, { type: i3__namespace.FsBadgeComponent, selector: "fs-badge", inputs: ["text", "shape", "color", "tooltip", "size", "image", "icon", "iconSize", "iconColor", "backgroundSize"] }, { type: FsTrustedCurrentDeviceComponent, selector: "fs-trusted-current-device" }, { type: i5__namespace.FsDeviceOsComponent, selector: "fs-device-os", inputs: ["type", "os", "showName", "version"] }, { type: i5__namespace.FsDeviceBrowserComponent, selector: "fs-device-browser", inputs: ["type", "version", "showName"] }, { type: i1__namespace$1.FsCountryComponent, selector: "fs-country", inputs: ["showIcon", "showName", "width", "code"] }], directives: [{ type: i2__namespace$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "customize", "title", "name", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateAgo": i7__namespace.FsDateAgoPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
|
127
120
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsTrustedDevicesComponent, decorators: [{
|
|
128
121
|
type: i0.Component,
|
|
129
122
|
args: [{
|
|
@@ -134,7 +127,7 @@
|
|
|
134
127
|
}]
|
|
135
128
|
}], ctorParameters: function () { return [{ type: i1__namespace$1.FsCountry }]; }, propDecorators: { fetchTrustedDevices: [{
|
|
136
129
|
type: i0.Input
|
|
137
|
-
}],
|
|
130
|
+
}], deleteTrustedDevice: [{
|
|
138
131
|
type: i0.Input
|
|
139
132
|
}], signOutTrustedDevice: [{
|
|
140
133
|
type: i0.Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-2fa.umd.js","sources":["../../src/app/components/trusted-current-device/trusted-current-device.component.ts","../../src/app/components/trusted-current-device/trusted-current-device.component.html","../../src/app/components/trusted-devices/trusted-devices.component.ts","../../src/app/components/trusted-devices/trusted-devices.component.html","../../src/app/fs-2fa.module.ts","../../src/firestitch-2fa.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n\n@Component({\n selector: 'fs-trusted-current-device',\n templateUrl: './trusted-current-device.component.html',\n styleUrls: [ './trusted-current-device.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedCurrentDeviceComponent {\n}\n","\n<div class=\"current-device\">\n <mat-icon class=\"circle\">circle</mat-icon>\n <mat-icon \n class=\"check\"\n matTooltip=\"This device\">\n check_circle\n </mat-icon>\n</div>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { FsCountry } from '@firestitch/country';\n\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { ITrustedDevice } from '../../interfaces/trusted-device';\nimport { ITrustedDeviceAccount } from '../../interfaces/trusted-device-account';\n\n\n@Component({\n selector: 'fs-trusted-devices',\n templateUrl: './trusted-devices.component.html',\n styleUrls: [ './trusted-devices.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedDevicesComponent implements OnInit, OnDestroy {\n\n @Input()\n public fetchTrustedDevices = (query: any) => new Observable<{\n data: ITrustedDevice[];\n paging?: any;\n }>();\n\n @Input()\n public removeTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public signOutTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public showAccount = true;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _fsCountry: FsCountry,\n ) { }\n\n public ngOnInit(): void {\n this._fsCountry.ready$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._initListConfig();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n rowActions: [\n {\n click: (data) => {\n this.signOutTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n menu: true,\n label: 'Sign Out',\n },\n {\n click: (data) => {\n this.removeTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this.fetchTrustedDevices(query)\n .pipe(\n map((response) => {\n return {\n data: response.data,\n paging: response.paging,\n };\n }),\n );\n },\n };\n }\n\n public reload(): void {\n this.listComponent.reload();\n }\n\n}\n","<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsCountryModule } from '@firestitch/country';\nimport { FsDeviceModule } from '@firestitch/device';\n\nimport { FsTrustedCurrentDeviceComponent } from './components/trusted-current-device/trusted-current-device.component';\nimport { FsTrustedDevicesComponent } from './components/trusted-devices/trusted-devices.component';\n\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n\n MatIconModule,\n MatTooltipModule,\n\n FsListModule,\n FsDateModule,\n FsCountryModule,\n FsDeviceModule,\n FsBadgeModule,\n ],\n exports: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n declarations: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n})\nexport class Fs2FaModule {\n static forRoot(): ModuleWithProviders<Fs2FaModule> {\n return {\n ngModule: Fs2FaModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Component","ChangeDetectionStrategy","Observable","Subject","takeUntil","ItemType","map","FsListComponent","Input","ViewChild","CommonModule","FlexLayoutModule","MatIconModule","MatTooltipModule","FsListModule","FsDateModule","FsCountryModule","FsDeviceModule","FsBadgeModule","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAYA;;;;2JAAa,+BAA+B;oIAA/B,+BAA+B,4ECZ5C,qMASA;0HDGa,+BAA+B;0BAN3CA,YAAS;2BAAC;4BACT,QAAQ,EAAE,2BAA2B;4BACrC,WAAW,EAAE,yCAAyC;4BACtD,SAAS,EAAE,CAAE,yCAAyC,CAAE;4BACxD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;yBAChD;;;;YEyCC,mCACU,UAAqB;gBAArB,eAAU,GAAV,UAAU,CAAW;gBAtBxB,wBAAmB,GAAG,UAAC,KAAU,IAAK,OAAA,IAAIC,eAAU,EAGvD,GAAA,CAAC;gBAGE,wBAAmB,GAAG,UAAC,aAA6B,IAAK,OAAA,IAAIA,eAAU,EAAO,GAAA,CAAC;gBAG/E,yBAAoB,GAAG,UAAC,aAA8B,IAAK,OAAA,IAAIA,eAAU,EAAO,GAAA,CAAC;gBAGjF,gBAAW,GAAG,IAAI,CAAC;gBAOlB,cAAS,GAAG,IAAIC,YAAO,EAAE,CAAC;aAI7B;YAEE,4CAAQ,GAAR;gBAAA,iBAQN;gBAPC,IAAI,CAAC,UAAU,CAAC,MAAM;qBACnB,IAAI,CACHC,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,eAAe,EAAE,CAAC;iBACxB,CAAC,CAAC;aACN;YAEM,+CAAW,GAAX;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAC3B;YAEO,mDAAe,GAAf;gBAAA,iBA+CP;gBA9CC,IAAI,CAAC,UAAU,GAAG;oBAChB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,SAAS;4BACf,IAAI,EAAEC,eAAQ,CAAC,OAAO;4BACtB,KAAK,EAAE,QAAQ;yBAChB;qBACF;oBACD,UAAU,EAAE;wBACV;4BACE,KAAK,EAAE,UAAC,IAAI;gCACV,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;qCAC9B,SAAS,CAAC;oCACT,KAAI,CAAC,MAAM,EAAE,CAAC;iCACf,CAAC,CAAC;6BACJ;4BACD,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,UAAU;yBAClB;wBACD;4BACE,KAAK,EAAE,UAAC,IAAI;gCACV,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;qCAC7B,SAAS,CAAC;oCACT,KAAI,CAAC,MAAM,EAAE,CAAC;iCACf,CAAC,CAAC;6BACJ;4BACD,MAAM,EAAE;gCACN,KAAK,EAAE,SAAS;gCAChB,QAAQ,EAAE,oDAAoD;6BAC/D;4BACD,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,QAAQ;yBAChB;qBACF;oBACD,KAAK,EAAE,UAAC,KAAK;wBACX,OAAO,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;6BACnC,IAAI,CACHC,aAAG,CAAC,UAAC,QAAQ;4BACX,OAAO;gCACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gCACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;6BACxB,CAAC;yBACH,CAAC,CACH,CAAC;qBACL;iBACF,CAAC;aACH;YAEM,0CAAM,GAAN;gBACL,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;aAC7B;;;qJA9FU,yBAAyB;8HAAzB,yBAAyB,uRAiBzBC,oBAAe,2DC7C5B,y8DAuDA;0HD3Ba,yBAAyB;0BANrCP,YAAS;2BAAC;4BACT,QAAQ,EAAE,oBAAoB;4BAC9B,WAAW,EAAE,kCAAkC;4BAC/C,SAAS,EAAE,CAAE,kCAAkC,CAAE;4BACjD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;yBAChD;qHAIQ,mBAAmB;8BADzBO,QAAK;wBAOC,mBAAmB;8BADzBA,QAAK;wBAIC,oBAAoB;8BAD1BA,QAAK;wBAIC,WAAW;8BADjBA,QAAK;wBAIC,aAAa;8BADnBC,YAAS;+BAACF,oBAAe;;;;YEJ5B;;YACS,mBAAO,GAAd;gBACE,OAAO;oBACL,QAAQ,EAAE,WAAW;iBACtB,CAAC;aACH;;;uIALU,WAAW;wIAAX,WAAW,iBAJpB,yBAAyB;gBACzB,+BAA+B,aAlB/BG,eAAY;gBACZC,2BAAgB;gBAEhBC,gBAAa;gBACbC,mBAAgB;gBAEhBC,iBAAY;gBACZC,eAAY;gBACZC,oBAAe;gBACfC,iBAAc;gBACdC,gBAAa,aAGb,yBAAyB;gBACzB,+BAA+B;wIAOtB,WAAW,YAtBb;oBACPR,eAAY;oBACZC,2BAAgB;oBAEhBC,gBAAa;oBACbC,mBAAgB;oBAEhBC,iBAAY;oBACZC,eAAY;oBACZC,oBAAe;oBACfC,iBAAc;oBACdC,gBAAa;iBACd;0HAUU,WAAW;0BAvBvBC,WAAQ;2BAAC;4BACR,OAAO,EAAE;gCACPT,eAAY;gCACZC,2BAAgB;gCAEhBC,gBAAa;gCACbC,mBAAgB;gCAEhBC,iBAAY;gCACZC,eAAY;gCACZC,oBAAe;gCACfC,iBAAc;gCACdC,gBAAa;6BACd;4BACD,OAAO,EAAE;gCACP,yBAAyB;gCACzB,+BAA+B;6BAChC;4BACD,YAAY,EAAE;gCACZ,yBAAyB;gCACzB,+BAA+B;6BAChC;yBACF;;;QCxCD;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"firestitch-2fa.umd.js","sources":["../../src/app/components/trusted-current-device/trusted-current-device.component.ts","../../src/app/components/trusted-current-device/trusted-current-device.component.html","../../src/app/components/trusted-devices/trusted-devices.component.ts","../../src/app/components/trusted-devices/trusted-devices.component.html","../../src/app/fs-2fa.module.ts","../../src/firestitch-2fa.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n\n@Component({\n selector: 'fs-trusted-current-device',\n templateUrl: './trusted-current-device.component.html',\n styleUrls: [ './trusted-current-device.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedCurrentDeviceComponent {\n}\n","\n<div class=\"current-device\">\n <mat-icon class=\"circle\">circle</mat-icon>\n <mat-icon \n class=\"check\"\n matTooltip=\"This device\">\n check_circle\n </mat-icon>\n</div>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { FsCountry } from '@firestitch/country';\n\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { ITrustedDevice } from '../../interfaces/trusted-device';\n\n\n@Component({\n selector: 'fs-trusted-devices',\n templateUrl: './trusted-devices.component.html',\n styleUrls: [ './trusted-devices.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedDevicesComponent implements OnInit, OnDestroy {\n\n @Input()\n public fetchTrustedDevices = (query: any) => new Observable<{\n data: ITrustedDevice[];\n paging?: any;\n }>();\n\n @Input()\n public deleteTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public signOutTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public showAccount = true;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _fsCountry: FsCountry,\n ) { }\n\n public ngOnInit(): void {\n this._fsCountry.ready$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._initListConfig();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n rowActions: [\n {\n click: (data) => {\n this.signOutTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n menu: true,\n label: 'Sign Out',\n },\n {\n click: (data) => {\n this.deleteTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this trusted device?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this.fetchTrustedDevices(query)\n .pipe(\n map((response) => {\n return {\n data: response.data,\n paging: response.paging,\n };\n }),\n );\n },\n };\n }\n\n public reload(): void {\n this.listComponent.reload();\n }\n\n}\n","<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <!-- Use FsIp and pass in region, country, lat and lng -->\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsCountryModule } from '@firestitch/country';\nimport { FsDeviceModule } from '@firestitch/device';\n\nimport { FsTrustedCurrentDeviceComponent } from './components/trusted-current-device/trusted-current-device.component';\nimport { FsTrustedDevicesComponent } from './components/trusted-devices/trusted-devices.component';\n\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n\n MatIconModule,\n MatTooltipModule,\n\n FsListModule,\n FsDateModule,\n FsCountryModule,\n FsDeviceModule,\n FsBadgeModule,\n ],\n exports: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n declarations: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n})\nexport class Fs2FaModule {\n static forRoot(): ModuleWithProviders<Fs2FaModule> {\n return {\n ngModule: Fs2FaModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Component","ChangeDetectionStrategy","Observable","Subject","takeUntil","map","FsListComponent","Input","ViewChild","CommonModule","FlexLayoutModule","MatIconModule","MatTooltipModule","FsListModule","FsDateModule","FsCountryModule","FsDeviceModule","FsBadgeModule","NgModule"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Component, ViewChild, Input, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
2
|
import { FsListComponent } from '@firestitch/list';
|
|
3
|
-
import { ItemType } from '@firestitch/filter';
|
|
4
3
|
import { FsCountry } from '@firestitch/country';
|
|
5
4
|
import { Observable, Subject } from 'rxjs';
|
|
6
5
|
import { map, takeUntil } from 'rxjs/operators';
|
|
@@ -16,7 +15,7 @@ export class FsTrustedDevicesComponent {
|
|
|
16
15
|
constructor(_fsCountry) {
|
|
17
16
|
this._fsCountry = _fsCountry;
|
|
18
17
|
this.fetchTrustedDevices = (query) => new Observable();
|
|
19
|
-
this.
|
|
18
|
+
this.deleteTrustedDevice = (trustedDevice) => new Observable();
|
|
20
19
|
this.signOutTrustedDevice = (trustedDevice) => new Observable();
|
|
21
20
|
this.showAccount = true;
|
|
22
21
|
this._destroy$ = new Subject();
|
|
@@ -34,13 +33,6 @@ export class FsTrustedDevicesComponent {
|
|
|
34
33
|
}
|
|
35
34
|
_initListConfig() {
|
|
36
35
|
this.listConfig = {
|
|
37
|
-
filters: [
|
|
38
|
-
{
|
|
39
|
-
name: 'keyword',
|
|
40
|
-
type: ItemType.Keyword,
|
|
41
|
-
label: 'Search',
|
|
42
|
-
},
|
|
43
|
-
],
|
|
44
36
|
rowActions: [
|
|
45
37
|
{
|
|
46
38
|
click: (data) => {
|
|
@@ -54,14 +46,14 @@ export class FsTrustedDevicesComponent {
|
|
|
54
46
|
},
|
|
55
47
|
{
|
|
56
48
|
click: (data) => {
|
|
57
|
-
this.
|
|
49
|
+
this.deleteTrustedDevice(data)
|
|
58
50
|
.subscribe(() => {
|
|
59
51
|
this.reload();
|
|
60
52
|
});
|
|
61
53
|
},
|
|
62
54
|
remove: {
|
|
63
55
|
title: 'Confirm',
|
|
64
|
-
template: 'Are you sure you would like to delete this
|
|
56
|
+
template: 'Are you sure you would like to delete this trusted device?',
|
|
65
57
|
},
|
|
66
58
|
menu: true,
|
|
67
59
|
label: 'Delete',
|
|
@@ -83,7 +75,7 @@ export class FsTrustedDevicesComponent {
|
|
|
83
75
|
}
|
|
84
76
|
}
|
|
85
77
|
FsTrustedDevicesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTrustedDevicesComponent, deps: [{ token: i1.FsCountry }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
FsTrustedDevicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTrustedDevicesComponent, selector: "fs-trusted-devices", inputs: { fetchTrustedDevices: "fetchTrustedDevices",
|
|
78
|
+
FsTrustedDevicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTrustedDevicesComponent, selector: "fs-trusted-devices", inputs: { fetchTrustedDevices: "fetchTrustedDevices", deleteTrustedDevice: "deleteTrustedDevice", signOutTrustedDevice: "signOutTrustedDevice", showAccount: "showAccount" }, viewQueries: [{ propertyName: "listComponent", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <!-- Use FsIp and pass in region, country, lat and lng -->\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .col-account .row{display:flex;align-items:center}:host ::ng-deep .col-account .row fs-badge{margin-right:5px}:host ::ng-deep .col-device .device{position:relative;display:inline-block}:host ::ng-deep .col-device .device .current-device{right:8px;top:-8px;position:absolute}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["loaderLines", "config"], outputs: ["filtersReady"] }, { type: i3.FsBadgeComponent, selector: "fs-badge", inputs: ["text", "shape", "color", "tooltip", "size", "image", "icon", "iconSize", "iconColor", "backgroundSize"] }, { type: i4.FsTrustedCurrentDeviceComponent, selector: "fs-trusted-current-device" }, { type: i5.FsDeviceOsComponent, selector: "fs-device-os", inputs: ["type", "os", "showName", "version"] }, { type: i5.FsDeviceBrowserComponent, selector: "fs-device-browser", inputs: ["type", "version", "showName"] }, { type: i1.FsCountryComponent, selector: "fs-country", inputs: ["showIcon", "showName", "width", "code"] }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "customize", "title", "name", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateAgo": i7.FsDateAgoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
87
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTrustedDevicesComponent, decorators: [{
|
|
88
80
|
type: Component,
|
|
89
81
|
args: [{
|
|
@@ -94,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
94
86
|
}]
|
|
95
87
|
}], ctorParameters: function () { return [{ type: i1.FsCountry }]; }, propDecorators: { fetchTrustedDevices: [{
|
|
96
88
|
type: Input
|
|
97
|
-
}],
|
|
89
|
+
}], deleteTrustedDevice: [{
|
|
98
90
|
type: Input
|
|
99
91
|
}], signOutTrustedDevice: [{
|
|
100
92
|
type: Input
|
|
@@ -104,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
104
96
|
type: ViewChild,
|
|
105
97
|
args: [FsListComponent]
|
|
106
98
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90cnVzdGVkLWRldmljZXMvdHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90cnVzdGVkLWRldmljZXMvdHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFHTCx1QkFBdUIsR0FHeEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVloRCxNQUFNLE9BQU8seUJBQXlCO0lBd0JwQyxZQUNVLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7UUF0QnhCLHdCQUFtQixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFHdkQsQ0FBQztRQUdFLHdCQUFtQixHQUFHLENBQUMsYUFBNkIsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLEVBQU8sQ0FBQztRQUcvRSx5QkFBb0IsR0FBRyxDQUFDLGFBQThCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxFQUFPLENBQUM7UUFHakYsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFPbEIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFJOUIsQ0FBQztJQUVFLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU87b0JBQ3RCLEtBQUssRUFBRSxRQUFRO2lCQUNoQjthQUNGO1lBQ0QsVUFBVSxFQUFFO2dCQUNWO29CQUNFLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUNkLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7NkJBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNoQixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksRUFBRSxJQUFJO29CQUNWLEtBQUssRUFBRSxVQUFVO2lCQUNsQjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDOzZCQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxNQUFNLEVBQUU7d0JBQ04sS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSxvREFBb0Q7cUJBQy9EO29CQUNELElBQUksRUFBRSxJQUFJO29CQUNWLEtBQUssRUFBRSxRQUFRO2lCQUNoQjthQUNGO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO3FCQUNuQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ2YsT0FBTzt3QkFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7d0JBQ25CLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtxQkFDeEIsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ04sQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7dUhBOUZVLHlCQUF5QjsyR0FBekIseUJBQXlCLHVSQWlCekIsZUFBZSxnREM3QzVCLHk4REF1REE7NEZEM0JhLHlCQUF5QjtrQkFOckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsa0NBQWtDO29CQUMvQyxTQUFTLEVBQUUsQ0FBRSxrQ0FBa0MsQ0FBRTtvQkFDakQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO2dHQUlRLG1CQUFtQjtzQkFEekIsS0FBSztnQkFPQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsb0JBQW9CO3NCQUQxQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzQ291bnRyeSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvdW50cnknO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSVRydXN0ZWREZXZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RydXN0ZWQtZGV2aWNlJztcbmltcG9ydCB7IElUcnVzdGVkRGV2aWNlQWNjb3VudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdHJ1c3RlZC1kZXZpY2UtYWNjb3VudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtdHJ1c3RlZC1kZXZpY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydXN0ZWQtZGV2aWNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi90cnVzdGVkLWRldmljZXMuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc1RydXN0ZWREZXZpY2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmZXRjaFRydXN0ZWREZXZpY2VzID0gKHF1ZXJ5OiBhbnkpID0+IG5ldyBPYnNlcnZhYmxlPHtcbiAgICBkYXRhOiBJVHJ1c3RlZERldmljZVtdO1xuICAgIHBhZ2luZz86IGFueTtcbiAgfT4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVtb3ZlVHJ1c3RlZERldmljZSA9ICh0cnVzdGVkRGV2aWNlOiBJVHJ1c3RlZERldmljZSkgPT4gbmV3IE9ic2VydmFibGU8YW55PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWduT3V0VHJ1c3RlZERldmljZSA9ICh0cnVzdGVkRGV2aWNlOiAgSVRydXN0ZWREZXZpY2UpID0+IG5ldyBPYnNlcnZhYmxlPGFueT4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0FjY291bnQgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50KVxuICBwdWJsaWMgbGlzdENvbXBvbmVudDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBsaXN0Q29uZmlnOiBGc0xpc3RDb25maWc7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2ZzQ291bnRyeTogRnNDb3VudHJ5LFxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mc0NvdW50cnkucmVhZHkkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pbml0TGlzdENvbmZpZygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0TGlzdENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcm93QWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2xpY2s6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNpZ25PdXRUcnVzdGVkRGV2aWNlKGRhdGEpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbWVudTogdHJ1ZSxcbiAgICAgICAgICBsYWJlbDogJ1NpZ24gT3V0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVUcnVzdGVkRGV2aWNlKGRhdGEpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVtb3ZlOiB7XG4gICAgICAgICAgICB0aXRsZTogJ0NvbmZpcm0nLFxuICAgICAgICAgICAgdGVtcGxhdGU6ICdBcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gZGVsZXRlIHRoaXMgcmVjb3JkPycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZW51OiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiAnRGVsZXRlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoVHJ1c3RlZERldmljZXMocXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgICAgICBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdENvbXBvbmVudC5yZWxvYWQoKTtcbiAgfVxuXG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImxpc3RDb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiQWNjb3VudFwiIFtzaG93XT1cInNob3dBY2NvdW50XCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCIgY2xhc3M9XCJjb2wtYWNjb3VudFwiPlxuICAgICAgPGRpdiAqbmdJZj1cInJvdy5hY2NvdW50XCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGZzLWJhZGdlIFxuICAgICAgICAgICpuZ0lmPVwicm93LmFjY291bnQuYXZhdGFyVXJsXCJcbiAgICAgICAgICBzaGFwZT1cImNpcmNsZVwiIFxuICAgICAgICAgIGltYWdlPVwie3sgcm93LmFjY291bnQuYXZhdGFyVXJsIH19XCI+XG4gICAgICAgIDwvZnMtYmFkZ2U+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3sgcm93LmFjY291bnQubmFtZSB9fVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiICpuZ0lmPVwicm93LmFjY291bnQuZW1haWxcIj57eyByb3cuYWNjb3VudC5lbWFpbCB9fTwvZGl2PiAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiRGV2aWNlXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCIgY2xhc3M9XCJjb2wtZGV2aWNlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlXCIgKm5nSWY9XCJyb3cuZGV2aWNlXCI+XG4gICAgICAgIDxmcy10cnVzdGVkLWN1cnJlbnQtZGV2aWNlICpuZ0lmPVwicm93LmN1cnJlbnREZXZpY2VcIj48L2ZzLXRydXN0ZWQtY3VycmVudC1kZXZpY2U+XG4gICAgICAgIDxmcy1kZXZpY2Utb3NcbiAgICAgICAgICBbdHlwZV09XCJyb3cuZGV2aWNlLnR5cGVcIlxuICAgICAgICAgIFtvc109XCJyb3cuZGV2aWNlLm9zVHlwZVwiXG4gICAgICAgICAgW3ZlcnNpb25dPVwicm93LmRldmljZS5vc1ZlcnNpb25cIj5cbiAgICAgICAgPC9mcy1kZXZpY2Utb3M+XG4gICAgICA8L2Rpdj4gICAgIFxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkJyb3dzZXJcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxmcy1kZXZpY2UtYnJvd3NlclxuICAgICAgICAqbmdJZj1cInJvdy5kZXZpY2VcIlxuICAgICAgICBbdHlwZV09XCJyb3cuZGV2aWNlLmJyb3dzZXJUeXBlXCJcbiAgICAgICAgW3ZlcnNpb25dPVwicm93LmRldmljZS5icm93c2VyVmVyc2lvblwiXG4gICAgICAgIFtzaG93TmFtZV09XCJ0cnVlXCJcbiAgICAgID48L2ZzLWRldmljZS1icm93c2VyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkFkZGVkXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyByb3cuY3JlYXRlRGF0ZSB8IGZzRGF0ZUFnbyB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkxvY2F0aW9uXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICA8ZnMtY291bnRyeSBbY29kZV09XCJyb3cuaXAuY291bnRyeVwiPjwvZnMtY291bnRyeT5cbiAgICAgIDxkaXY+PHNtYWxsPnt7cm93LmlwLmlwfX08L3NtYWxsPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkxhc3Qgc2lnbmVkIGluXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyByb3cuYWN0aXZpdHlEYXRlIHwgZnNEYXRlQWdvIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbjwvZnMtbGlzdD5cbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90cnVzdGVkLWRldmljZXMvdHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90cnVzdGVkLWRldmljZXMvdHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFHTCx1QkFBdUIsR0FHeEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBV2hELE1BQU0sT0FBTyx5QkFBeUI7SUF3QnBDLFlBQ1UsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQXRCeEIsd0JBQW1CLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxFQUd2RCxDQUFDO1FBR0Usd0JBQW1CLEdBQUcsQ0FBQyxhQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBTyxDQUFDO1FBRy9FLHlCQUFvQixHQUFHLENBQUMsYUFBOEIsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLEVBQU8sQ0FBQztRQUdqRixnQkFBVyxHQUFHLElBQUksQ0FBQztRQU9sQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUk5QixDQUFDO0lBRUUsUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTthQUNuQixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsVUFBVSxFQUFFO2dCQUNWO29CQUNFLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUNkLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7NkJBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNoQixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksRUFBRSxJQUFJO29CQUNWLEtBQUssRUFBRSxVQUFVO2lCQUNsQjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDOzZCQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxNQUFNLEVBQUU7d0JBQ04sS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSw0REFBNEQ7cUJBQ3ZFO29CQUNELElBQUksRUFBRSxJQUFJO29CQUNWLEtBQUssRUFBRSxRQUFRO2lCQUNoQjthQUNGO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO3FCQUNuQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ2YsT0FBTzt3QkFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7d0JBQ25CLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtxQkFDeEIsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ04sQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7dUhBdkZVLHlCQUF5QjsyR0FBekIseUJBQXlCLHVSQWlCekIsZUFBZSxnREM1QzVCLDJnRUF3REE7NEZEN0JhLHlCQUF5QjtrQkFOckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsa0NBQWtDO29CQUMvQyxTQUFTLEVBQUUsQ0FBRSxrQ0FBa0MsQ0FBRTtvQkFDakQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO2dHQUlRLG1CQUFtQjtzQkFEekIsS0FBSztnQkFPQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsb0JBQW9CO3NCQUQxQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzQ291bnRyeSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvdW50cnknO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSVRydXN0ZWREZXZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RydXN0ZWQtZGV2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy10cnVzdGVkLWRldmljZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1c3RlZC1kZXZpY2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3RydXN0ZWQtZGV2aWNlcy5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzVHJ1c3RlZERldmljZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZldGNoVHJ1c3RlZERldmljZXMgPSAocXVlcnk6IGFueSkgPT4gbmV3IE9ic2VydmFibGU8e1xuICAgIGRhdGE6IElUcnVzdGVkRGV2aWNlW107XG4gICAgcGFnaW5nPzogYW55O1xuICB9PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWxldGVUcnVzdGVkRGV2aWNlID0gKHRydXN0ZWREZXZpY2U6IElUcnVzdGVkRGV2aWNlKSA9PiBuZXcgT2JzZXJ2YWJsZTxhbnk+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNpZ25PdXRUcnVzdGVkRGV2aWNlID0gKHRydXN0ZWREZXZpY2U6ICBJVHJ1c3RlZERldmljZSkgPT4gbmV3IE9ic2VydmFibGU8YW55PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93QWNjb3VudCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQpXG4gIHB1YmxpYyBsaXN0Q29tcG9uZW50OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgcHVibGljIGxpc3RDb25maWc6IEZzTGlzdENvbmZpZztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZnNDb3VudHJ5OiBGc0NvdW50cnksXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZzQ291bnRyeS5yZWFkeSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2luaXRMaXN0Q29uZmlnKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRMaXN0Q29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdENvbmZpZyA9IHtcbiAgICAgIHJvd0FjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaWduT3V0VHJ1c3RlZERldmljZShkYXRhKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lbnU6IHRydWUsXG4gICAgICAgICAgbGFiZWw6ICdTaWduIE91dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlVHJ1c3RlZERldmljZShkYXRhKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlbW92ZToge1xuICAgICAgICAgICAgdGl0bGU6ICdDb25maXJtJyxcbiAgICAgICAgICAgIHRlbXBsYXRlOiAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIGRlbGV0ZSB0aGlzIHRydXN0ZWQgZGV2aWNlPycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZW51OiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiAnRGVsZXRlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoVHJ1c3RlZERldmljZXMocXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgICAgICBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdENvbXBvbmVudC5yZWxvYWQoKTtcbiAgfVxuXG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImxpc3RDb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiQWNjb3VudFwiIFtzaG93XT1cInNob3dBY2NvdW50XCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCIgY2xhc3M9XCJjb2wtYWNjb3VudFwiPlxuICAgICAgPGRpdiAqbmdJZj1cInJvdy5hY2NvdW50XCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGZzLWJhZGdlIFxuICAgICAgICAgICpuZ0lmPVwicm93LmFjY291bnQuYXZhdGFyVXJsXCJcbiAgICAgICAgICBzaGFwZT1cImNpcmNsZVwiIFxuICAgICAgICAgIGltYWdlPVwie3sgcm93LmFjY291bnQuYXZhdGFyVXJsIH19XCI+XG4gICAgICAgIDwvZnMtYmFkZ2U+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3sgcm93LmFjY291bnQubmFtZSB9fVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiICpuZ0lmPVwicm93LmFjY291bnQuZW1haWxcIj57eyByb3cuYWNjb3VudC5lbWFpbCB9fTwvZGl2PiAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiRGV2aWNlXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCIgY2xhc3M9XCJjb2wtZGV2aWNlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGV2aWNlXCIgKm5nSWY9XCJyb3cuZGV2aWNlXCI+XG4gICAgICAgIDxmcy10cnVzdGVkLWN1cnJlbnQtZGV2aWNlICpuZ0lmPVwicm93LmN1cnJlbnREZXZpY2VcIj48L2ZzLXRydXN0ZWQtY3VycmVudC1kZXZpY2U+XG4gICAgICAgIDxmcy1kZXZpY2Utb3NcbiAgICAgICAgICBbdHlwZV09XCJyb3cuZGV2aWNlLnR5cGVcIlxuICAgICAgICAgIFtvc109XCJyb3cuZGV2aWNlLm9zVHlwZVwiXG4gICAgICAgICAgW3ZlcnNpb25dPVwicm93LmRldmljZS5vc1ZlcnNpb25cIj5cbiAgICAgICAgPC9mcy1kZXZpY2Utb3M+XG4gICAgICA8L2Rpdj4gICAgIFxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkJyb3dzZXJcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxmcy1kZXZpY2UtYnJvd3NlclxuICAgICAgICAqbmdJZj1cInJvdy5kZXZpY2VcIlxuICAgICAgICBbdHlwZV09XCJyb3cuZGV2aWNlLmJyb3dzZXJUeXBlXCJcbiAgICAgICAgW3ZlcnNpb25dPVwicm93LmRldmljZS5icm93c2VyVmVyc2lvblwiXG4gICAgICAgIFtzaG93TmFtZV09XCJ0cnVlXCJcbiAgICAgID48L2ZzLWRldmljZS1icm93c2VyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkFkZGVkXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyByb3cuY3JlYXRlRGF0ZSB8IGZzRGF0ZUFnbyB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkxvY2F0aW9uXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICA8IS0tIFVzZSBGc0lwIGFuZCBwYXNzIGluIHJlZ2lvbiwgY291bnRyeSwgbGF0IGFuZCBsbmcgLS0+XG4gICAgICA8ZnMtY291bnRyeSBbY29kZV09XCJyb3cuaXAuY291bnRyeVwiPjwvZnMtY291bnRyeT5cbiAgICAgIDxkaXY+PHNtYWxsPnt7cm93LmlwLmlwfX08L3NtYWxsPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkxhc3Qgc2lnbmVkIGluXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyByb3cuYWN0aXZpdHlEYXRlIHwgZnNEYXRlQWdvIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbjwvZnMtbGlzdD5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1kZXZpY2UtaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2ludGVyZmFjZXMvdHJ1c3RlZC1kZXZpY2UtaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRydXN0ZWREZXZpY2VJcCB7XG4gIGlkPzogbnVtYmVyO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xuICBpcD86IHN0cmluZztcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBsYXQ/OiBzdHJpbmc7XG4gIGxuZz86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -15,7 +15,6 @@ import * as i5 from '@firestitch/device';
|
|
|
15
15
|
import { FsDeviceModule } from '@firestitch/device';
|
|
16
16
|
import * as i2 from '@angular/material/tooltip';
|
|
17
17
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
18
|
-
import { ItemType } from '@firestitch/filter';
|
|
19
18
|
import { Observable, Subject } from 'rxjs';
|
|
20
19
|
import { takeUntil, map } from 'rxjs/operators';
|
|
21
20
|
import * as i3 from '@firestitch/badge';
|
|
@@ -39,7 +38,7 @@ class FsTrustedDevicesComponent {
|
|
|
39
38
|
constructor(_fsCountry) {
|
|
40
39
|
this._fsCountry = _fsCountry;
|
|
41
40
|
this.fetchTrustedDevices = (query) => new Observable();
|
|
42
|
-
this.
|
|
41
|
+
this.deleteTrustedDevice = (trustedDevice) => new Observable();
|
|
43
42
|
this.signOutTrustedDevice = (trustedDevice) => new Observable();
|
|
44
43
|
this.showAccount = true;
|
|
45
44
|
this._destroy$ = new Subject();
|
|
@@ -57,13 +56,6 @@ class FsTrustedDevicesComponent {
|
|
|
57
56
|
}
|
|
58
57
|
_initListConfig() {
|
|
59
58
|
this.listConfig = {
|
|
60
|
-
filters: [
|
|
61
|
-
{
|
|
62
|
-
name: 'keyword',
|
|
63
|
-
type: ItemType.Keyword,
|
|
64
|
-
label: 'Search',
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
59
|
rowActions: [
|
|
68
60
|
{
|
|
69
61
|
click: (data) => {
|
|
@@ -77,14 +69,14 @@ class FsTrustedDevicesComponent {
|
|
|
77
69
|
},
|
|
78
70
|
{
|
|
79
71
|
click: (data) => {
|
|
80
|
-
this.
|
|
72
|
+
this.deleteTrustedDevice(data)
|
|
81
73
|
.subscribe(() => {
|
|
82
74
|
this.reload();
|
|
83
75
|
});
|
|
84
76
|
},
|
|
85
77
|
remove: {
|
|
86
78
|
title: 'Confirm',
|
|
87
|
-
template: 'Are you sure you would like to delete this
|
|
79
|
+
template: 'Are you sure you would like to delete this trusted device?',
|
|
88
80
|
},
|
|
89
81
|
menu: true,
|
|
90
82
|
label: 'Delete',
|
|
@@ -106,7 +98,7 @@ class FsTrustedDevicesComponent {
|
|
|
106
98
|
}
|
|
107
99
|
}
|
|
108
100
|
FsTrustedDevicesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTrustedDevicesComponent, deps: [{ token: i1$1.FsCountry }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
-
FsTrustedDevicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTrustedDevicesComponent, selector: "fs-trusted-devices", inputs: { fetchTrustedDevices: "fetchTrustedDevices",
|
|
101
|
+
FsTrustedDevicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTrustedDevicesComponent, selector: "fs-trusted-devices", inputs: { fetchTrustedDevices: "fetchTrustedDevices", deleteTrustedDevice: "deleteTrustedDevice", signOutTrustedDevice: "signOutTrustedDevice", showAccount: "showAccount" }, viewQueries: [{ propertyName: "listComponent", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <!-- Use FsIp and pass in region, country, lat and lng -->\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .col-account .row{display:flex;align-items:center}:host ::ng-deep .col-account .row fs-badge{margin-right:5px}:host ::ng-deep .col-device .device{position:relative;display:inline-block}:host ::ng-deep .col-device .device .current-device{right:8px;top:-8px;position:absolute}\n"], components: [{ type: i2$1.FsListComponent, selector: "fs-list", inputs: ["loaderLines", "config"], outputs: ["filtersReady"] }, { type: i3.FsBadgeComponent, selector: "fs-badge", inputs: ["text", "shape", "color", "tooltip", "size", "image", "icon", "iconSize", "iconColor", "backgroundSize"] }, { type: FsTrustedCurrentDeviceComponent, selector: "fs-trusted-current-device" }, { type: i5.FsDeviceOsComponent, selector: "fs-device-os", inputs: ["type", "os", "showName", "version"] }, { type: i5.FsDeviceBrowserComponent, selector: "fs-device-browser", inputs: ["type", "version", "showName"] }, { type: i1$1.FsCountryComponent, selector: "fs-country", inputs: ["showIcon", "showName", "width", "code"] }], directives: [{ type: i2$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "customize", "title", "name", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateAgo": i7.FsDateAgoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
110
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTrustedDevicesComponent, decorators: [{
|
|
111
103
|
type: Component,
|
|
112
104
|
args: [{
|
|
@@ -117,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
117
109
|
}]
|
|
118
110
|
}], ctorParameters: function () { return [{ type: i1$1.FsCountry }]; }, propDecorators: { fetchTrustedDevices: [{
|
|
119
111
|
type: Input
|
|
120
|
-
}],
|
|
112
|
+
}], deleteTrustedDevice: [{
|
|
121
113
|
type: Input
|
|
122
114
|
}], signOutTrustedDevice: [{
|
|
123
115
|
type: Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-2fa.js","sources":["../../src/app/components/trusted-current-device/trusted-current-device.component.ts","../../src/app/components/trusted-current-device/trusted-current-device.component.html","../../src/app/components/trusted-devices/trusted-devices.component.ts","../../src/app/components/trusted-devices/trusted-devices.component.html","../../src/app/fs-2fa.module.ts","../../src/firestitch-2fa.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n\n@Component({\n selector: 'fs-trusted-current-device',\n templateUrl: './trusted-current-device.component.html',\n styleUrls: [ './trusted-current-device.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedCurrentDeviceComponent {\n}\n","\n<div class=\"current-device\">\n <mat-icon class=\"circle\">circle</mat-icon>\n <mat-icon \n class=\"check\"\n matTooltip=\"This device\">\n check_circle\n </mat-icon>\n</div>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { FsCountry } from '@firestitch/country';\n\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { ITrustedDevice } from '../../interfaces/trusted-device';\nimport { ITrustedDeviceAccount } from '../../interfaces/trusted-device-account';\n\n\n@Component({\n selector: 'fs-trusted-devices',\n templateUrl: './trusted-devices.component.html',\n styleUrls: [ './trusted-devices.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedDevicesComponent implements OnInit, OnDestroy {\n\n @Input()\n public fetchTrustedDevices = (query: any) => new Observable<{\n data: ITrustedDevice[];\n paging?: any;\n }>();\n\n @Input()\n public removeTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public signOutTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public showAccount = true;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _fsCountry: FsCountry,\n ) { }\n\n public ngOnInit(): void {\n this._fsCountry.ready$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._initListConfig();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n rowActions: [\n {\n click: (data) => {\n this.signOutTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n menu: true,\n label: 'Sign Out',\n },\n {\n click: (data) => {\n this.removeTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this.fetchTrustedDevices(query)\n .pipe(\n map((response) => {\n return {\n data: response.data,\n paging: response.paging,\n };\n }),\n );\n },\n };\n }\n\n public reload(): void {\n this.listComponent.reload();\n }\n\n}\n","<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsCountryModule } from '@firestitch/country';\nimport { FsDeviceModule } from '@firestitch/device';\n\nimport { FsTrustedCurrentDeviceComponent } from './components/trusted-current-device/trusted-current-device.component';\nimport { FsTrustedDevicesComponent } from './components/trusted-devices/trusted-devices.component';\n\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n\n MatIconModule,\n MatTooltipModule,\n\n FsListModule,\n FsDateModule,\n FsCountryModule,\n FsDeviceModule,\n FsBadgeModule,\n ],\n exports: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n declarations: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n})\nexport class Fs2FaModule {\n static forRoot(): ModuleWithProviders<Fs2FaModule> {\n return {\n ngModule: Fs2FaModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-2fa.js","sources":["../../src/app/components/trusted-current-device/trusted-current-device.component.ts","../../src/app/components/trusted-current-device/trusted-current-device.component.html","../../src/app/components/trusted-devices/trusted-devices.component.ts","../../src/app/components/trusted-devices/trusted-devices.component.html","../../src/app/fs-2fa.module.ts","../../src/firestitch-2fa.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n\n@Component({\n selector: 'fs-trusted-current-device',\n templateUrl: './trusted-current-device.component.html',\n styleUrls: [ './trusted-current-device.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedCurrentDeviceComponent {\n}\n","\n<div class=\"current-device\">\n <mat-icon class=\"circle\">circle</mat-icon>\n <mat-icon \n class=\"check\"\n matTooltip=\"This device\">\n check_circle\n </mat-icon>\n</div>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { FsCountry } from '@firestitch/country';\n\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { ITrustedDevice } from '../../interfaces/trusted-device';\n\n\n@Component({\n selector: 'fs-trusted-devices',\n templateUrl: './trusted-devices.component.html',\n styleUrls: [ './trusted-devices.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsTrustedDevicesComponent implements OnInit, OnDestroy {\n\n @Input()\n public fetchTrustedDevices = (query: any) => new Observable<{\n data: ITrustedDevice[];\n paging?: any;\n }>();\n\n @Input()\n public deleteTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public signOutTrustedDevice = (trustedDevice: ITrustedDevice) => new Observable<any>();\n\n @Input()\n public showAccount = true;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _fsCountry: FsCountry,\n ) { }\n\n public ngOnInit(): void {\n this._fsCountry.ready$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._initListConfig();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n rowActions: [\n {\n click: (data) => {\n this.signOutTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n menu: true,\n label: 'Sign Out',\n },\n {\n click: (data) => {\n this.deleteTrustedDevice(data)\n .subscribe(() => {\n this.reload();\n });\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this trusted device?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this.fetchTrustedDevices(query)\n .pipe(\n map((response) => {\n return {\n data: response.data,\n paging: response.paging,\n };\n }),\n );\n },\n };\n }\n\n public reload(): void {\n this.listComponent.reload();\n }\n\n}\n","<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Account\" [show]=\"showAccount\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-account\">\n <div *ngIf=\"row.account\" class=\"row\">\n <fs-badge \n *ngIf=\"row.account.avatarUrl\"\n shape=\"circle\" \n image=\"{{ row.account.avatarUrl }}\">\n </fs-badge>\n <div>\n {{ row.account.name }}\n <div class=\"small\" *ngIf=\"row.account.email\">{{ row.account.email }}</div> \n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Device\">\n <ng-template fs-list-cell let-row=\"row\" class=\"col-device\">\n <div class=\"device\" *ngIf=\"row.device\">\n <fs-trusted-current-device *ngIf=\"row.currentDevice\"></fs-trusted-current-device>\n <fs-device-os\n [type]=\"row.device.type\"\n [os]=\"row.device.osType\"\n [version]=\"row.device.osVersion\">\n </fs-device-os>\n </div> \n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Browser\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-device-browser\n *ngIf=\"row.device\"\n [type]=\"row.device.browserType\"\n [version]=\"row.device.browserVersion\"\n [showName]=\"true\"\n ></fs-device-browser>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Added\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Location\">\n <ng-template fs-list-cell let-row=\"row\">\n <!-- Use FsIp and pass in region, country, lat and lng -->\n <fs-country [code]=\"row.ip.country\"></fs-country>\n <div><small>{{row.ip.ip}}</small></div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Last signed in\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.activityDate | fsDateAgo }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsCountryModule } from '@firestitch/country';\nimport { FsDeviceModule } from '@firestitch/device';\n\nimport { FsTrustedCurrentDeviceComponent } from './components/trusted-current-device/trusted-current-device.component';\nimport { FsTrustedDevicesComponent } from './components/trusted-devices/trusted-devices.component';\n\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n\n MatIconModule,\n MatTooltipModule,\n\n FsListModule,\n FsDateModule,\n FsCountryModule,\n FsDeviceModule,\n FsBadgeModule,\n ],\n exports: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n declarations: [\n FsTrustedDevicesComponent,\n FsTrustedCurrentDeviceComponent,\n ],\n})\nexport class Fs2FaModule {\n static forRoot(): ModuleWithProviders<Fs2FaModule> {\n return {\n ngModule: Fs2FaModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|