@dereekb/dbx-web 9.20.19 → 9.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/package.json +2 -2
- package/esm2020/lib/layout/content/content.layout.module.mjs +31 -4
- package/esm2020/lib/layout/content/content.pit.directive.mjs +19 -0
- package/esm2020/lib/layout/content/index.mjs +2 -1
- package/esm2020/lib/layout/list/list.wrapper.mjs +1 -1
- package/esm2020/table/dereekb-dbx-web-table.mjs +5 -0
- package/esm2020/table/index.mjs +2 -0
- package/esm2020/table/lib/date/date.table.column.header.component.mjs +49 -0
- package/esm2020/table/lib/date/daterange.table.cell.input.component.mjs +166 -0
- package/esm2020/table/lib/date/index.mjs +4 -0
- package/esm2020/table/lib/date/table.date.module.mjs +68 -0
- package/esm2020/table/lib/index.mjs +18 -0
- package/esm2020/table/lib/table.cell.action.component.mjs +28 -0
- package/esm2020/table/lib/table.cell.input.component.mjs +31 -0
- package/esm2020/table/lib/table.cell.summaryend.component.mjs +28 -0
- package/esm2020/table/lib/table.cell.summarystart.component.mjs +31 -0
- package/esm2020/table/lib/table.column.directive.mjs +30 -0
- package/esm2020/table/lib/table.column.footer.component.mjs +35 -0
- package/esm2020/table/lib/table.column.header.component.mjs +35 -0
- package/esm2020/table/lib/table.component.mjs +59 -0
- package/esm2020/table/lib/table.directive.mjs +37 -0
- package/esm2020/table/lib/table.item.action.component.mjs +35 -0
- package/esm2020/table/lib/table.item.cell.component.mjs +39 -0
- package/esm2020/table/lib/table.item.directive.mjs +30 -0
- package/esm2020/table/lib/table.item.header.component.mjs +27 -0
- package/esm2020/table/lib/table.mjs +2 -0
- package/esm2020/table/lib/table.module.mjs +74 -0
- package/esm2020/table/lib/table.store.mjs +53 -0
- package/fesm2015/dereekb-dbx-web-table.mjs +746 -0
- package/fesm2015/dereekb-dbx-web-table.mjs.map +1 -0
- package/fesm2015/dereekb-dbx-web.mjs +58 -13
- package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web-table.mjs +739 -0
- package/fesm2020/dereekb-dbx-web-table.mjs.map +1 -0
- package/fesm2020/dereekb-dbx-web.mjs +56 -13
- package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
- package/lib/extension/_extension.scss +19 -0
- package/lib/extension/table/_table.scss +60 -0
- package/lib/layout/content/_content.scss +14 -0
- package/lib/layout/content/content.layout.module.d.ts +3 -2
- package/lib/layout/content/content.pit.directive.d.ts +8 -0
- package/lib/layout/content/index.d.ts +1 -0
- package/lib/layout/list/list.wrapper.d.ts +2 -1
- package/lib/layout/style/_style.scss +4 -0
- package/lib/style/_config.scss +8 -2
- package/mapbox/package.json +3 -3
- package/package.json +14 -6
- package/table/README.md +6 -0
- package/table/esm2020/dereekb-dbx-web-table.mjs +5 -0
- package/table/esm2020/index.mjs +2 -0
- package/table/esm2020/lib/date/date.table.column.header.component.mjs +49 -0
- package/table/esm2020/lib/date/daterange.table.cell.input.component.mjs +166 -0
- package/table/esm2020/lib/date/index.mjs +4 -0
- package/table/esm2020/lib/date/table.date.module.mjs +68 -0
- package/table/esm2020/lib/index.mjs +18 -0
- package/table/esm2020/lib/table.cell.action.component.mjs +28 -0
- package/table/esm2020/lib/table.cell.input.component.mjs +31 -0
- package/table/esm2020/lib/table.cell.summaryend.component.mjs +28 -0
- package/table/esm2020/lib/table.cell.summarystart.component.mjs +31 -0
- package/table/esm2020/lib/table.column.directive.mjs +30 -0
- package/table/esm2020/lib/table.column.footer.component.mjs +35 -0
- package/table/esm2020/lib/table.column.header.component.mjs +35 -0
- package/table/esm2020/lib/table.component.mjs +59 -0
- package/table/esm2020/lib/table.directive.mjs +37 -0
- package/table/esm2020/lib/table.item.action.component.mjs +35 -0
- package/table/esm2020/lib/table.item.cell.component.mjs +39 -0
- package/table/esm2020/lib/table.item.directive.mjs +30 -0
- package/table/esm2020/lib/table.item.header.component.mjs +27 -0
- package/table/esm2020/lib/table.mjs +2 -0
- package/table/esm2020/lib/table.module.mjs +74 -0
- package/table/esm2020/lib/table.store.mjs +53 -0
- package/table/fesm2015/dereekb-dbx-web-table.mjs +746 -0
- package/table/fesm2015/dereekb-dbx-web-table.mjs.map +1 -0
- package/table/fesm2020/dereekb-dbx-web-table.mjs +739 -0
- package/table/fesm2020/dereekb-dbx-web-table.mjs.map +1 -0
- package/table/index.d.ts +1 -0
- package/table/lib/date/date.table.column.header.component.d.ts +18 -0
- package/table/lib/date/daterange.table.cell.input.component.d.ts +66 -0
- package/table/lib/date/index.d.ts +3 -0
- package/table/lib/date/table.date.module.d.ts +16 -0
- package/table/lib/index.d.ts +17 -0
- package/table/lib/table.cell.action.component.d.ts +9 -0
- package/table/lib/table.cell.input.component.d.ts +12 -0
- package/table/lib/table.cell.summaryend.component.d.ts +9 -0
- package/table/lib/table.cell.summarystart.component.d.ts +12 -0
- package/table/lib/table.column.directive.d.ts +18 -0
- package/table/lib/table.column.footer.component.d.ts +8 -0
- package/table/lib/table.column.header.component.d.ts +8 -0
- package/table/lib/table.component.d.ts +29 -0
- package/table/lib/table.d.ts +99 -0
- package/table/lib/table.directive.d.ts +16 -0
- package/table/lib/table.item.action.component.d.ts +8 -0
- package/table/lib/table.item.cell.component.d.ts +13 -0
- package/table/lib/table.item.directive.d.ts +17 -0
- package/table/lib/table.item.header.component.d.ts +8 -0
- package/table/lib/table.module.d.ts +22 -0
- package/table/lib/table.store.d.ts +38 -0
- package/table/package.json +35 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { beginLoading, filterMaybe, valueFromLoadingState } from '@dereekb/rxjs';
|
|
3
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
4
|
+
import { distinctUntilChanged, first, map, shareReplay, switchMap, tap, combineLatest, of } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class DbxTableStore extends ComponentStore {
|
|
7
|
+
constructor() {
|
|
8
|
+
super({
|
|
9
|
+
input: null,
|
|
10
|
+
dataDelegate: null,
|
|
11
|
+
viewDelegate: null
|
|
12
|
+
});
|
|
13
|
+
// MARK: Effects
|
|
14
|
+
this.loadMore = this.effect((input) => {
|
|
15
|
+
return input.pipe(switchMap(() => this.data$.pipe(first(), tap((x) => {
|
|
16
|
+
if (x.loadMore) {
|
|
17
|
+
x.loadMore();
|
|
18
|
+
}
|
|
19
|
+
}))));
|
|
20
|
+
});
|
|
21
|
+
// MARK: Accessors
|
|
22
|
+
this.input$ = this.state$.pipe(map((x) => x.input), distinctUntilChanged(), shareReplay(1));
|
|
23
|
+
this.dataDelegate$ = this.state$.pipe(map((x) => x.dataDelegate), distinctUntilChanged(), shareReplay(1));
|
|
24
|
+
this.currentViewDelegate$ = this.state$.pipe(map((x) => x.viewDelegate), distinctUntilChanged(), shareReplay(1));
|
|
25
|
+
this.viewDelegate$ = this.currentViewDelegate$.pipe(filterMaybe());
|
|
26
|
+
this.dataState$ = combineLatest([this.input$, this.dataDelegate$]).pipe(switchMap(([input, dataDelegate]) => {
|
|
27
|
+
let obs;
|
|
28
|
+
if (input && dataDelegate) {
|
|
29
|
+
obs = dataDelegate.loadData(input);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
obs = of(beginLoading());
|
|
33
|
+
}
|
|
34
|
+
return obs;
|
|
35
|
+
}), shareReplay(1));
|
|
36
|
+
this.data$ = this.dataState$.pipe(
|
|
37
|
+
//
|
|
38
|
+
valueFromLoadingState(), distinctUntilChanged(), shareReplay(1));
|
|
39
|
+
this.columns$ = this.data$.pipe(map((x) => x.columns), shareReplay(1));
|
|
40
|
+
this.itemsState$ = this.data$.pipe(switchMap((x) => x.items$), shareReplay(1));
|
|
41
|
+
this.items$ = this.itemsState$.pipe(valueFromLoadingState(), shareReplay(1));
|
|
42
|
+
// MARK: State Changes
|
|
43
|
+
this.setInput = this.updater((state, input) => ({ ...state, input }));
|
|
44
|
+
this.setDataDelegate = this.updater((state, dataDelegate) => ({ ...state, dataDelegate }));
|
|
45
|
+
this.setViewDelegate = this.updater((state, viewDelegate) => ({ ...state, viewDelegate }));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
DbxTableStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxTableStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
DbxTableStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxTableStore });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxTableStore, decorators: [{
|
|
51
|
+
type: Injectable
|
|
52
|
+
}], ctorParameters: function () { return []; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3RhYmxlL3NyYy9saWIvdGFibGUuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBa0YscUJBQXFCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekssT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQVMsTUFBTSxNQUFNLENBQUM7O0FBbUIzSCxNQUFNLE9BQU8sYUFBcUQsU0FBUSxjQUEyQztJQUNuSDtRQUNFLEtBQUssQ0FBQztZQUNKLEtBQUssRUFBRSxJQUFJO1lBQ1gsWUFBWSxFQUFFLElBQUk7WUFDbEIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO1FBR0wsZ0JBQWdCO1FBQ1AsYUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUF1QixFQUFFLEVBQUU7WUFDMUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQ2QsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILGtCQUFrQjtRQUNULFdBQU0sR0FBRyxJQUFJ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YixhQUFhOzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBiZWdpbkxvYWRpbmcsIGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIFBhZ2VMaXN0TG9hZGluZ1N0YXRlLCBQYWdlTG9hZGluZ1N0YXRlLCB0YXBPbkxvYWRpbmdTdGF0ZVN1Y2Nlc3MsIHZhbHVlRnJvbUxvYWRpbmdTdGF0ZSwgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgY29tYmluZUxhdGVzdCwgb2YsIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhUYWJsZUNvbHVtbiwgRGJ4VGFibGVDb250ZXh0RGF0YSwgRGJ4VGFibGVDb250ZXh0RGF0YURlbGVnYXRlLCBEYnhUYWJsZVZpZXdEZWxlZ2F0ZSB9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlU3RvcmVTdGF0ZTxJLCBDLCBUPiB7XG4gIC8qKlxuICAgKiBDb250ZXh0dWFsIGlucHV0IHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBkYXRhIGRlbGVnYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ6IE1heWJlPEk+O1xuICAvKipcbiAgICogRGVsZWdhdGUgdXNlZCBmb3IgcmV0cmlldmluZyBpbmZvIGdpdmVuIHRoZSBzZWxlY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBkYXRhRGVsZWdhdGU6IE1heWJlPERieFRhYmxlQ29udGV4dERhdGFEZWxlZ2F0ZTxJLCBDLCBUPj47XG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIHZpZXcgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSB2aWV3RGVsZWdhdGU6IE1heWJlPERieFRhYmxlVmlld0RlbGVnYXRlPEksIEMsIFQ+Pjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieFRhYmxlU3RvcmU8SSA9IHVua25vd24sIEMgPSB1bmtub3duLCBUID0gdW5rbm93bj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxEYnhUYWJsZVN0b3JlU3RhdGU8SSwgQywgVD4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgaW5wdXQ6IG51bGwsXG4gICAgICBkYXRhRGVsZWdhdGU6IG51bGwsXG4gICAgICB2aWV3RGVsZWdhdGU6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgbG9hZE1vcmUgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmRhdGEkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgIGlmICh4LmxvYWRNb3JlKSB7XG4gICAgICAgICAgICAgIHgubG9hZE1vcmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGlucHV0JCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlucHV0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YURlbGVnYXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRhdGFEZWxlZ2F0ZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRWaWV3RGVsZWdhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudmlld0RlbGVnYXRlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmlld0RlbGVnYXRlJCA9IHRoaXMuY3VycmVudFZpZXdEZWxlZ2F0ZSQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBkYXRhU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZUNvbnRleHREYXRhPEksIEMsIFQ+Pj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlucHV0JCwgdGhpcy5kYXRhRGVsZWdhdGUkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtpbnB1dCwgZGF0YURlbGVnYXRlXSkgPT4ge1xuICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4+O1xuXG4gICAgICBpZiAoaW5wdXQgJiYgZGF0YURlbGVnYXRlKSB7XG4gICAgICAgIG9icyA9IGRhdGFEZWxlZ2F0ZS5sb2FkRGF0YShpbnB1dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnMgPSBvZihiZWdpbkxvYWRpbmc8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4oKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYnM7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUNvbnRleHREYXRhPEksIEMsIFQ+PiA9IHRoaXMuZGF0YVN0YXRlJC5waXBlKFxuICAgIC8vXG4gICAgdmFsdWVGcm9tTG9hZGluZ1N0YXRlKCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbHVtbnMkOiBPYnNlcnZhYmxlPERieFRhYmxlQ29sdW1uPEM+W10+ID0gdGhpcy5kYXRhJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5jb2x1bW5zKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPFQ+PiA9IHRoaXMuZGF0YSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguaXRlbXMkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5pdGVtc1N0YXRlJC5waXBlKHZhbHVlRnJvbUxvYWRpbmdTdGF0ZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICByZWFkb25seSBzZXRJbnB1dCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlucHV0OiBNYXliZTxJPikgPT4gKHsgLi4uc3RhdGUsIGlucHV0IH0pKTtcbiAgcmVhZG9ubHkgc2V0RGF0YURlbGVnYXRlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YURlbGVnYXRlOiBNYXliZTxEYnhUYWJsZUNvbnRleHREYXRhRGVsZWdhdGU8SSwgQywgVD4+KSA9PiAoeyAuLi5zdGF0ZSwgZGF0YURlbGVnYXRlIH0pKTtcbiAgcmVhZG9ubHkgc2V0Vmlld0RlbGVnYXRlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdmlld0RlbGVnYXRlOiBNYXliZTxEYnhUYWJsZVZpZXdEZWxlZ2F0ZTxJLCBDLCBUPj4pID0+ICh7IC4uLnN0YXRlLCB2aWV3RGVsZWdhdGUgfSkpO1xufVxuIl19
|