column-fitter 15.0.6

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/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # ColumnFitter
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project column-fitter` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project column-fitter`.
8
+ > Note: Don't forget to add `--project column-fitter` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build column-fitter` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build column-fitter`, go to the dist folder `cd dist/column-fitter` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test column-fitter` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
Binary file
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbHVtbi1maXR0ZXIvc3JjL2NvbHVtbi1maXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Component } from '@angular/core';
2
+ import { DeviceSizes } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../column-fitter.component";
6
+ export class ColumnFitterDemoComponent {
7
+ constructor() {
8
+ this.columns = [
9
+ { device: DeviceSizes.MOBILE, columns: 1 },
10
+ { device: DeviceSizes.TABLET, columns: 4 },
11
+ { device: DeviceSizes.MINI, columns: 2 },
12
+ ];
13
+ this.bookmarks = [
14
+ { value: 'To Kill a Mockingbird', id: 1 },
15
+ { value: '1984', id: 2 },
16
+ { value: 'The Great Gatsby', id: 3 },
17
+ { value: 'Moby Dick', id: 4 },
18
+ { value: 'War and Peace', id: 5 },
19
+ { value: 'Pride and Prejudice', id: 6 },
20
+ { value: 'The Catcher in the Rye', id: 7 },
21
+ { value: 'Brave New World', id: 8 },
22
+ ];
23
+ }
24
+ ngOnInit() {
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnFitterDemoComponent, selector: "app-column-fitter-demo", ngImport: i0, template: "<app-column-fitter\n gap=\"1rem\"\n margin=\"1rem\"\n padding=\"1rem\"\n backgroundColor=\"green\"\n minWidth=\"240px\"\n [columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of bookmarks\"\n class=\"column-format\"\n >\n {{ item.value }}\n </div>\n</app-column-fitter>\n", styles: [".column-format{border:1px solid black;padding:2rem;background-color:#fff;border-radius:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.ColumnFitterComponent, selector: "app-column-fitter", inputs: ["padding", "margin", "backgroundColor", "minWidth", "gap", "columns"] }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterDemoComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'app-column-fitter-demo', template: "<app-column-fitter\n gap=\"1rem\"\n margin=\"1rem\"\n padding=\"1rem\"\n backgroundColor=\"green\"\n minWidth=\"240px\"\n [columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of bookmarks\"\n class=\"column-format\"\n >\n {{ item.value }}\n </div>\n</app-column-fitter>\n", styles: [".column-format{border:1px solid black;padding:2rem;background-color:#fff;border-radius:1rem}\n"] }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpdHRlci1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbHVtbi1maXR0ZXIvc3JjL2xpYi9jb2x1bW4tZml0dGVyLWRlbW8vY29sdW1uLWZpdHRlci1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbHVtbi1maXR0ZXIvc3JjL2xpYi9jb2x1bW4tZml0dGVyLWRlbW8vY29sdW1uLWZpdHRlci1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFVLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQVFoRCxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBT0UsWUFBTyxHQUFhO1lBQ2xCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUMxQyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDMUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO1NBQ3pDLENBQUE7UUFFRCxjQUFTLEdBQUc7WUFDVixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3pDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDN0IsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN2QyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7U0FDdEMsQ0FBQTtLQUtBO0lBSEMsUUFBUTtJQUNSLENBQUM7K0dBcEJVLHlCQUF5QjttR0FBekIseUJBQXlCLDhEQ1R0QyxvU0FlQTs7NEZETmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW4sIERldmljZVNpemVzIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29sdW1uLWZpdHRlci1kZW1vJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1maXR0ZXItZGVtby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi1maXR0ZXItZGVtby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uRml0dGVyRGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29sdW1uczogQ29sdW1uW10gPSBbXG4gICAgeyBkZXZpY2U6IERldmljZVNpemVzLk1PQklMRSwgY29sdW1uczogMSB9LFxuICAgIHsgZGV2aWNlOiBEZXZpY2VTaXplcy5UQUJMRVQsIGNvbHVtbnM6IDQgfSxcbiAgICB7IGRldmljZTogRGV2aWNlU2l6ZXMuTUlOSSwgY29sdW1uczogMiB9LFxuICBdXG5cbiAgYm9va21hcmtzID0gW1xuICAgIHsgdmFsdWU6ICdUbyBLaWxsIGEgTW9ja2luZ2JpcmQnLCBpZDogMSB9LFxuICAgIHsgdmFsdWU6ICcxOTg0JywgaWQ6IDIgfSxcbiAgICB7IHZhbHVlOiAnVGhlIEdyZWF0IEdhdHNieScsIGlkOiAzIH0sXG4gICAgeyB2YWx1ZTogJ01vYnkgRGljaycsIGlkOiA0IH0sXG4gICAgeyB2YWx1ZTogJ1dhciBhbmQgUGVhY2UnLCBpZDogNSB9LFxuICAgIHsgdmFsdWU6ICdQcmlkZSBhbmQgUHJlanVkaWNlJywgaWQ6IDYgfSxcbiAgICB7IHZhbHVlOiAnVGhlIENhdGNoZXIgaW4gdGhlIFJ5ZScsIGlkOiA3IH0sXG4gICAgeyB2YWx1ZTogJ0JyYXZlIE5ldyBXb3JsZCcsIGlkOiA4IH0sXG5dXG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGFwcC1jb2x1bW4tZml0dGVyXG4gIGdhcD1cIjFyZW1cIlxuICBtYXJnaW49XCIxcmVtXCJcbiAgcGFkZGluZz1cIjFyZW1cIlxuICBiYWNrZ3JvdW5kQ29sb3I9XCJncmVlblwiXG4gIG1pbldpZHRoPVwiMjQwcHhcIlxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcbj5cbiAgPGRpdlxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJvb2ttYXJrc1wiXG4gICAgY2xhc3M9XCJjb2x1bW4tZm9ybWF0XCJcbiAgPlxuICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICA8L2Rpdj5cbjwvYXBwLWNvbHVtbi1maXR0ZXI+XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { Component, inject, Input } from '@angular/core';
2
+ import { Column } from './models/column.model';
3
+ import { DeviceSizes } from './models/device-sizes.model';
4
+ import { distinctUntilChanged, Subscription } from 'rxjs';
5
+ import { ScreenObserverService } from 'screen-observer';
6
+ import * as i0 from "@angular/core";
7
+ export class ColumnFitterComponent {
8
+ constructor() {
9
+ this.screenObserverService = inject(ScreenObserverService);
10
+ this.padding = '';
11
+ this.margin = '';
12
+ this.backgroundColor = '';
13
+ this.minWidth = '';
14
+ this.gap = '1rem';
15
+ this.columns = 0;
16
+ this.gridColumns = '';
17
+ this.subscriptions = new Subscription();
18
+ this.hasColumns = Array.isArray(this.columns)
19
+ ? this.columns.every(col => col instanceof Column)
20
+ : (typeof this.columns === 'number' && this.columns > 0);
21
+ this.found = (device) => (Array.isArray(this.columns)) ? this.columns.find(item => item.device === device) : 0;
22
+ }
23
+ ngOnInit() {
24
+ this.subscriptions.add(this.screenObserverService
25
+ .device$
26
+ .pipe(distinctUntilChanged())
27
+ .subscribe((screen) => {
28
+ this.gridColumns = this.getGridTemplateColumns(screen);
29
+ console.log(screen);
30
+ }));
31
+ }
32
+ getGridTemplateColumns(device) {
33
+ if (typeof this.columns === 'number') {
34
+ return this.columns > 0 ? `repeat(${this.columns}, 1fr)` : `repeat(auto-fit, minmax(${this.minWidth}, 1fr))`;
35
+ }
36
+ if (device === 'desktop' && this.found(DeviceSizes.DESKTOP)) {
37
+ const cols = this.found(DeviceSizes.DESKTOP);
38
+ return `repeat(${cols.columns}, 1fr)`;
39
+ }
40
+ else if (device === 'tablet' && this.found(DeviceSizes.TABLET)) {
41
+ const cols = this.found(DeviceSizes.TABLET);
42
+ return `repeat(${cols.columns}, 1fr)`;
43
+ }
44
+ else if (device === 'mini' && this.found(DeviceSizes.MINI)) {
45
+ const cols = this.found(DeviceSizes.MINI);
46
+ return `repeat(${cols.columns}, 1fr)`;
47
+ }
48
+ else if (device === 'mobile' && this.found(DeviceSizes.MOBILE)) {
49
+ const cols = this.found(DeviceSizes.MOBILE);
50
+ return `repeat(${cols.columns}, 1fr)`;
51
+ }
52
+ else {
53
+ return `repeat(auto-fit, minmax(${this.minWidth}, 1fr))`;
54
+ }
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnFitterComponent, selector: "app-column-fitter", inputs: { padding: "padding", margin: "margin", backgroundColor: "backgroundColor", minWidth: "minWidth", gap: "gap", columns: "columns" }, ngImport: i0, template: "<div\n class=\"container\"\n [style.minWidth]=\"minWidth\"\n [style.gap]=\"gap\"\n [style.margin]=\"margin\"\n [style.padding]=\"padding\"\n [style.backgroundColor]=\"backgroundColor\"\n [style.gridTemplateColumns]=\"gridColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(auto,1fr));grid-auto-rows:minmax(auto,auto)}\n"] }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'app-column-fitter', template: "<div\n class=\"container\"\n [style.minWidth]=\"minWidth\"\n [style.gap]=\"gap\"\n [style.margin]=\"margin\"\n [style.padding]=\"padding\"\n [style.backgroundColor]=\"backgroundColor\"\n [style.gridTemplateColumns]=\"gridColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(auto,1fr));grid-auto-rows:minmax(auto,auto)}\n"] }]
62
+ }], ctorParameters: function () { return []; }, propDecorators: { padding: [{
63
+ type: Input
64
+ }], margin: [{
65
+ type: Input
66
+ }], backgroundColor: [{
67
+ type: Input
68
+ }], minWidth: [{
69
+ type: Input
70
+ }], gap: [{
71
+ type: Input
72
+ }], columns: [{
73
+ type: Input
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpdHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2x1bW4tZml0dGVyL3NyYy9saWIvY29sdW1uLWZpdHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2x1bW4tZml0dGVyL3NyYy9saWIvY29sdW1uLWZpdHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVF4RCxNQUFNLE9BQU8scUJBQXFCO0lBbUJoQztRQWpCQSwwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUU1QyxZQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ1osV0FBTSxHQUFHLEVBQUUsQ0FBQTtRQUNYLG9CQUFlLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLGFBQVEsR0FBRyxFQUFFLENBQUE7UUFDYixRQUFHLEdBQUcsTUFBTSxDQUFBO1FBQ1osWUFBTyxHQUFzQixDQUFDLENBQUM7UUFFeEMsZ0JBQVcsR0FBUSxFQUFFLENBQUE7UUFFckIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBRWxDLGVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFF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QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IERldmljZVNpemVzIH0gZnJvbSAnLi9tb2RlbHMvZGV2aWNlLXNpemVzLm1vZGVsJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNjcmVlbk9ic2VydmVyU2VydmljZSB9IGZyb20gJ3NjcmVlbi1vYnNlcnZlcic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbHVtbi1maXR0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWZpdHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi1maXR0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5GaXR0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHNjcmVlbk9ic2VydmVyU2VydmljZSA9IGluamVjdChTY3JlZW5PYnNlcnZlclNlcnZpY2UpXG5cbiAgQElucHV0KCkgcGFkZGluZyA9ICcnXG4gIEBJbnB1dCgpIG1hcmdpbiA9ICcnXG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvciA9ICcnXG4gIEBJbnB1dCgpIG1pbldpZHRoID0gJydcbiAgQElucHV0KCkgZ2FwID0gJzFyZW0nXG4gIEBJbnB1dCgpIGNvbHVtbnM6IG51bWJlciB8IENvbHVtbltdID0gMDtcblxuICBncmlkQ29sdW1uczogYW55ID0gJydcblxuICBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgaGFzQ29sdW1ucyA9IEFycmF5LmlzQXJyYXkodGhpcy5jb2x1bW5zKVxuICAgID8gdGhpcy5jb2x1bW5zLmV2ZXJ5KGNvbCA9PiBjb2wgaW5zdGFuY2VvZiBDb2x1bW4pXG4gICAgOiAodHlwZW9mIHRoaXMuY29sdW1ucyA9PT0gJ251bWJlcicgJiYgdGhpcy5jb2x1bW5zID4gMCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zY3JlZW5PYnNlcnZlclNlcnZpY2VcbiAgICAgIC5kZXZpY2UkXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2NyZWVuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZFRlbXBsYXRlQ29sdW1ucyhzY3JlZW4pXG4gICAgICAgIGNvbnNvbGUubG9nKHNjcmVlbilcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZm91bmQgPSAoZGV2aWNlOiBzdHJpbmcpID0+IChBcnJheS5pc0FycmF5KHRoaXMuY29sdW1ucykpID8gdGhpcy5jb2x1bW5zLmZpbmQoaXRlbSA9PiBpdGVtLmRldmljZSA9PT0gZGV2aWNlKSBhcyBDb2x1bW4gOiAwXG5cbiAgZ2V0R3JpZFRlbXBsYXRlQ29sdW1ucyhkZXZpY2U6IHN0cmluZyk6IGFueSB7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuY29sdW1ucyA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMgPiAwID8gYHJlcGVhdCgke3RoaXMuY29sdW1uc30sIDFmcilgIDogYHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7dGhpcy5taW5XaWR0aH0sIDFmcikpYDtcbiAgICB9XG5cbiAgICBpZiAoZGV2aWNlID09PSAnZGVza3RvcCcgJiYgdGhpcy5mb3VuZChEZXZpY2VTaXplcy5ERVNLVE9QKSkge1xuXG4gICAgICBjb25zdCBjb2xzID0gdGhpcy5mb3VuZChEZXZpY2VTaXplcy5ERVNLVE9QKSBhcyBDb2x1bW5cbiAgICAgIHJldHVybiBgcmVwZWF0KCR7Y29scy5jb2x1bW5zfSwgMWZyKWA7XG5cbiAgICB9IGVsc2UgaWYgKGRldmljZSA9PT0gJ3RhYmxldCcgJiYgdGhpcy5mb3VuZChEZXZpY2VTaXplcy5UQUJMRVQpKSB7XG5cbiAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLmZvdW5kKERldmljZVNpemVzLlRBQkxFVCkgYXMgQ29sdW1uXG4gICAgICByZXR1cm4gYHJlcGVhdCgke2NvbHMuY29sdW1uc30sIDFmcilgO1xuXG4gICAgfSBlbHNlIGlmIChkZXZpY2UgPT09ICdtaW5pJyAmJiB0aGlzLmZvdW5kKERldmljZVNpemVzLk1JTkkpKSB7XG5cbiAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLmZvdW5kKERldmljZVNpemVzLk1JTkkpIGFzIENvbHVtblxuICAgICAgcmV0dXJuIGByZXBlYXQoJHtjb2xzLmNvbHVtbnN9LCAxZnIpYDtcblxuICAgIH0gZWxzZSBpZiAoZGV2aWNlID09PSAnbW9iaWxlJyAmJiB0aGlzLmZvdW5kKERldmljZVNpemVzLk1PQklMRSkpIHtcblxuICAgICAgY29uc3QgY29scyA9IHRoaXMuZm91bmQoRGV2aWNlU2l6ZXMuTU9CSUxFKSBhcyBDb2x1bW5cbiAgICAgIHJldHVybiBgcmVwZWF0KCR7Y29scy5jb2x1bW5zfSwgMWZyKWA7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke3RoaXMubWluV2lkdGh9LCAxZnIpKWA7XG4gICAgfVxuXG4gIH1cblxufVxuXG5cblxuIiwiPGRpdlxuICBjbGFzcz1cImNvbnRhaW5lclwiXG4gIFtzdHlsZS5taW5XaWR0aF09XCJtaW5XaWR0aFwiXG4gIFtzdHlsZS5nYXBdPVwiZ2FwXCJcbiAgW3N0eWxlLm1hcmdpbl09XCJtYXJnaW5cIlxuICBbc3R5bGUucGFkZGluZ109XCJwYWRkaW5nXCJcbiAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICBbc3R5bGUuZ3JpZFRlbXBsYXRlQ29sdW1uc109XCJncmlkQ29sdW1uc1wiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,29 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ColumnFitterComponent } from './column-fitter.component';
4
+ import { ColumnFitterDemoComponent } from './column-fitter-demo/column-fitter-demo.component';
5
+ import * as i0 from "@angular/core";
6
+ export class ColumnFitterModule {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, declarations: [ColumnFitterDemoComponent,
9
+ ColumnFitterComponent], imports: [CommonModule], exports: [ColumnFitterDemoComponent,
10
+ ColumnFitterComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, imports: [CommonModule] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [
17
+ CommonModule
18
+ ],
19
+ declarations: [
20
+ ColumnFitterDemoComponent,
21
+ ColumnFitterComponent,
22
+ ],
23
+ exports: [
24
+ ColumnFitterDemoComponent,
25
+ ColumnFitterComponent,
26
+ ]
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpdHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2x1bW4tZml0dGVyL3NyYy9saWIvY29sdW1uLWZpdHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBZTlGLE1BQU0sT0FBTyxrQkFBa0I7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVIzQix5QkFBeUI7WUFDekIscUJBQXFCLGFBSnJCLFlBQVksYUFPWix5QkFBeUI7WUFDekIscUJBQXFCO2dIQUdaLGtCQUFrQixZQVgzQixZQUFZOzs0RkFXSCxrQkFBa0I7a0JBYjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHlCQUF5Qjt3QkFDekIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IENvbHVtbkZpdHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLWZpdHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uRml0dGVyRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLWZpdHRlci1kZW1vL2NvbHVtbi1maXR0ZXItZGVtby5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENvbHVtbkZpdHRlckRlbW9Db21wb25lbnQsXG4gICAgQ29sdW1uRml0dGVyQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29sdW1uRml0dGVyRGVtb0NvbXBvbmVudCxcbiAgICBDb2x1bW5GaXR0ZXJDb21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uRml0dGVyTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,11 @@
1
+ import { DeviceSizes } from "./device-sizes.model";
2
+ export class Column {
3
+ constructor(device = DeviceSizes.DESKTOP, columns = 0) {
4
+ this.device = device;
5
+ this.columns = columns;
6
+ }
7
+ static adapt(item) {
8
+ return new Column(item?.device, item?.columns);
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sdW1uLWZpdHRlci9zcmMvbGliL21vZGVscy9jb2x1bW4ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBT2xELE1BQU0sT0FBTyxNQUFNO0lBRWpCLFlBQ1MsU0FBUyxXQUFXLENBQUMsT0FBTyxFQUM1QixVQUFVLENBQUM7UUFEWCxXQUFNLEdBQU4sTUFBTSxDQUFzQjtRQUM1QixZQUFPLEdBQVAsT0FBTyxDQUFJO0lBQ2pCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsT0FBTyxJQUFJLE1BQU0sQ0FDZixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxPQUFPLENBQ2QsQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldmljZVNpemVzIH0gZnJvbSBcIi4vZGV2aWNlLXNpemVzLm1vZGVsXCJcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5JbnRlcmZhY2Uge1xuICBkZXZpY2U6IERldmljZVNpemVzXG4gIGNvbHVtbnM6IG51bWJlclxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uIGltcGxlbWVudHMgQ29sdW1uSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGV2aWNlID0gRGV2aWNlU2l6ZXMuREVTS1RPUCxcbiAgICBwdWJsaWMgY29sdW1ucyA9IDAsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENvbHVtbiB7XG5cbiAgICByZXR1cm4gbmV3IENvbHVtbihcbiAgICAgIGl0ZW0/LmRldmljZSxcbiAgICAgIGl0ZW0/LmNvbHVtbnNcbiAgICApXG5cbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export var DeviceSizes;
2
+ (function (DeviceSizes) {
3
+ DeviceSizes["DESKTOP"] = "desktop";
4
+ DeviceSizes["TABLET"] = "tablet";
5
+ DeviceSizes["MINI"] = "mini";
6
+ DeviceSizes["MOBILE"] = "mobile";
7
+ })(DeviceSizes || (DeviceSizes = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNpemVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sdW1uLWZpdHRlci9zcmMvbGliL21vZGVscy9kZXZpY2Utc2l6ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBaUIsQ0FBQTtJQUNqQiw0QkFBYSxDQUFBO0lBQ2IsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLFdBQVcsS0FBWCxXQUFXLFFBS3RCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGV2aWNlU2l6ZXMge1xuICBERVNLVE9QID0gJ2Rlc2t0b3AnLFxuICBUQUJMRVQgPSAndGFibGV0JyxcbiAgTUlOSSA9ICdtaW5pJyxcbiAgTU9CSUxFID0gJ21vYmlsZSdcbn1cblxuXG5cblxuXG4iXX0=
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of selections
3
+ */
4
+ export * from './column.model';
5
+ export * from './device-sizes.model';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2x1bW4tZml0dGVyL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzZWxlY3Rpb25zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW4ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXZpY2Utc2l6ZXMubW9kZWwnO1xuXG5cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of column-fitter
3
+ */
4
+ export * from './lib/models/index';
5
+ export * from './lib/column-fitter.component';
6
+ export * from './lib/column-fitter.module';
7
+ export * from './lib/column-fitter-demo/column-fitter-demo.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbHVtbi1maXR0ZXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb2x1bW4tZml0dGVyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luZGV4JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sdW1uLWZpdHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sdW1uLWZpdHRlci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2x1bW4tZml0dGVyLWRlbW8vY29sdW1uLWZpdHRlci1kZW1vLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,160 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Component, Input, NgModule } from '@angular/core';
3
+ import { Subscription, distinctUntilChanged } from 'rxjs';
4
+ import { ScreenObserverService } from 'screen-observer';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+
8
+ var DeviceSizes;
9
+ (function (DeviceSizes) {
10
+ DeviceSizes["DESKTOP"] = "desktop";
11
+ DeviceSizes["TABLET"] = "tablet";
12
+ DeviceSizes["MINI"] = "mini";
13
+ DeviceSizes["MOBILE"] = "mobile";
14
+ })(DeviceSizes || (DeviceSizes = {}));
15
+
16
+ class Column {
17
+ constructor(device = DeviceSizes.DESKTOP, columns = 0) {
18
+ this.device = device;
19
+ this.columns = columns;
20
+ }
21
+ static adapt(item) {
22
+ return new Column(item?.device, item?.columns);
23
+ }
24
+ }
25
+
26
+ /*
27
+ * Public API Surface of selections
28
+ */
29
+
30
+ class ColumnFitterComponent {
31
+ constructor() {
32
+ this.screenObserverService = inject(ScreenObserverService);
33
+ this.padding = '';
34
+ this.margin = '';
35
+ this.backgroundColor = '';
36
+ this.minWidth = '';
37
+ this.gap = '1rem';
38
+ this.columns = 0;
39
+ this.gridColumns = '';
40
+ this.subscriptions = new Subscription();
41
+ this.hasColumns = Array.isArray(this.columns)
42
+ ? this.columns.every(col => col instanceof Column)
43
+ : (typeof this.columns === 'number' && this.columns > 0);
44
+ this.found = (device) => (Array.isArray(this.columns)) ? this.columns.find(item => item.device === device) : 0;
45
+ }
46
+ ngOnInit() {
47
+ this.subscriptions.add(this.screenObserverService
48
+ .device$
49
+ .pipe(distinctUntilChanged())
50
+ .subscribe((screen) => {
51
+ this.gridColumns = this.getGridTemplateColumns(screen);
52
+ console.log(screen);
53
+ }));
54
+ }
55
+ getGridTemplateColumns(device) {
56
+ if (typeof this.columns === 'number') {
57
+ return this.columns > 0 ? `repeat(${this.columns}, 1fr)` : `repeat(auto-fit, minmax(${this.minWidth}, 1fr))`;
58
+ }
59
+ if (device === 'desktop' && this.found(DeviceSizes.DESKTOP)) {
60
+ const cols = this.found(DeviceSizes.DESKTOP);
61
+ return `repeat(${cols.columns}, 1fr)`;
62
+ }
63
+ else if (device === 'tablet' && this.found(DeviceSizes.TABLET)) {
64
+ const cols = this.found(DeviceSizes.TABLET);
65
+ return `repeat(${cols.columns}, 1fr)`;
66
+ }
67
+ else if (device === 'mini' && this.found(DeviceSizes.MINI)) {
68
+ const cols = this.found(DeviceSizes.MINI);
69
+ return `repeat(${cols.columns}, 1fr)`;
70
+ }
71
+ else if (device === 'mobile' && this.found(DeviceSizes.MOBILE)) {
72
+ const cols = this.found(DeviceSizes.MOBILE);
73
+ return `repeat(${cols.columns}, 1fr)`;
74
+ }
75
+ else {
76
+ return `repeat(auto-fit, minmax(${this.minWidth}, 1fr))`;
77
+ }
78
+ }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnFitterComponent, selector: "app-column-fitter", inputs: { padding: "padding", margin: "margin", backgroundColor: "backgroundColor", minWidth: "minWidth", gap: "gap", columns: "columns" }, ngImport: i0, template: "<div\n class=\"container\"\n [style.minWidth]=\"minWidth\"\n [style.gap]=\"gap\"\n [style.margin]=\"margin\"\n [style.padding]=\"padding\"\n [style.backgroundColor]=\"backgroundColor\"\n [style.gridTemplateColumns]=\"gridColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(auto,1fr));grid-auto-rows:minmax(auto,auto)}\n"] }); }
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterComponent, decorators: [{
83
+ type: Component,
84
+ args: [{ selector: 'app-column-fitter', template: "<div\n class=\"container\"\n [style.minWidth]=\"minWidth\"\n [style.gap]=\"gap\"\n [style.margin]=\"margin\"\n [style.padding]=\"padding\"\n [style.backgroundColor]=\"backgroundColor\"\n [style.gridTemplateColumns]=\"gridColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".container{display:grid;grid-template-columns:repeat(auto-fit,minmax(auto,1fr));grid-auto-rows:minmax(auto,auto)}\n"] }]
85
+ }], ctorParameters: function () { return []; }, propDecorators: { padding: [{
86
+ type: Input
87
+ }], margin: [{
88
+ type: Input
89
+ }], backgroundColor: [{
90
+ type: Input
91
+ }], minWidth: [{
92
+ type: Input
93
+ }], gap: [{
94
+ type: Input
95
+ }], columns: [{
96
+ type: Input
97
+ }] } });
98
+
99
+ class ColumnFitterDemoComponent {
100
+ constructor() {
101
+ this.columns = [
102
+ { device: DeviceSizes.MOBILE, columns: 1 },
103
+ { device: DeviceSizes.TABLET, columns: 4 },
104
+ { device: DeviceSizes.MINI, columns: 2 },
105
+ ];
106
+ this.bookmarks = [
107
+ { value: 'To Kill a Mockingbird', id: 1 },
108
+ { value: '1984', id: 2 },
109
+ { value: 'The Great Gatsby', id: 3 },
110
+ { value: 'Moby Dick', id: 4 },
111
+ { value: 'War and Peace', id: 5 },
112
+ { value: 'Pride and Prejudice', id: 6 },
113
+ { value: 'The Catcher in the Rye', id: 7 },
114
+ { value: 'Brave New World', id: 8 },
115
+ ];
116
+ }
117
+ ngOnInit() {
118
+ }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnFitterDemoComponent, selector: "app-column-fitter-demo", ngImport: i0, template: "<app-column-fitter\n gap=\"1rem\"\n margin=\"1rem\"\n padding=\"1rem\"\n backgroundColor=\"green\"\n minWidth=\"240px\"\n [columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of bookmarks\"\n class=\"column-format\"\n >\n {{ item.value }}\n </div>\n</app-column-fitter>\n", styles: [".column-format{border:1px solid black;padding:2rem;background-color:#fff;border-radius:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ColumnFitterComponent, selector: "app-column-fitter", inputs: ["padding", "margin", "backgroundColor", "minWidth", "gap", "columns"] }] }); }
121
+ }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterDemoComponent, decorators: [{
123
+ type: Component,
124
+ args: [{ selector: 'app-column-fitter-demo', template: "<app-column-fitter\n gap=\"1rem\"\n margin=\"1rem\"\n padding=\"1rem\"\n backgroundColor=\"green\"\n minWidth=\"240px\"\n [columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of bookmarks\"\n class=\"column-format\"\n >\n {{ item.value }}\n </div>\n</app-column-fitter>\n", styles: [".column-format{border:1px solid black;padding:2rem;background-color:#fff;border-radius:1rem}\n"] }]
125
+ }] });
126
+
127
+ class ColumnFitterModule {
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
129
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, declarations: [ColumnFitterDemoComponent,
130
+ ColumnFitterComponent], imports: [CommonModule], exports: [ColumnFitterDemoComponent,
131
+ ColumnFitterComponent] }); }
132
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, imports: [CommonModule] }); }
133
+ }
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnFitterModule, decorators: [{
135
+ type: NgModule,
136
+ args: [{
137
+ imports: [
138
+ CommonModule
139
+ ],
140
+ declarations: [
141
+ ColumnFitterDemoComponent,
142
+ ColumnFitterComponent,
143
+ ],
144
+ exports: [
145
+ ColumnFitterDemoComponent,
146
+ ColumnFitterComponent,
147
+ ]
148
+ }]
149
+ }] });
150
+
151
+ /*
152
+ * Public API Surface of column-fitter
153
+ */
154
+
155
+ /**
156
+ * Generated bundle index. Do not edit.
157
+ */
158
+
159
+ export { Column, ColumnFitterComponent, ColumnFitterDemoComponent, ColumnFitterModule, DeviceSizes };
160
+ //# sourceMappingURL=column-fitter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-fitter.mjs","sources":["../../../projects/column-fitter/src/lib/models/device-sizes.model.ts","../../../projects/column-fitter/src/lib/models/column.model.ts","../../../projects/column-fitter/src/lib/models/index.ts","../../../projects/column-fitter/src/lib/column-fitter.component.ts","../../../projects/column-fitter/src/lib/column-fitter.component.html","../../../projects/column-fitter/src/lib/column-fitter-demo/column-fitter-demo.component.ts","../../../projects/column-fitter/src/lib/column-fitter-demo/column-fitter-demo.component.html","../../../projects/column-fitter/src/lib/column-fitter.module.ts","../../../projects/column-fitter/src/public-api.ts","../../../projects/column-fitter/src/column-fitter.ts"],"sourcesContent":["export enum DeviceSizes {\n DESKTOP = 'desktop',\n TABLET = 'tablet',\n MINI = 'mini',\n MOBILE = 'mobile'\n}\n\n\n\n\n\n","import { DeviceSizes } from \"./device-sizes.model\"\n\nexport interface ColumnInterface {\n device: DeviceSizes\n columns: number\n}\n\nexport class Column implements ColumnInterface {\n\n constructor(\n public device = DeviceSizes.DESKTOP,\n public columns = 0,\n ) {}\n\n static adapt(item?: any): Column {\n\n return new Column(\n item?.device,\n item?.columns\n )\n\n }\n\n}\n","/*\n * Public API Surface of selections\n */\n\nexport * from './column.model';\nexport * from './device-sizes.model';\n\n\n","import { Component, inject, Input, OnInit } from '@angular/core';\nimport { Column } from './models/column.model';\nimport { DeviceSizes } from './models/device-sizes.model';\nimport { distinctUntilChanged, Subscription } from 'rxjs';\nimport { ScreenObserverService } from 'screen-observer';\n\n\n@Component({\n selector: 'app-column-fitter',\n templateUrl: './column-fitter.component.html',\n styleUrls: ['./column-fitter.component.scss']\n})\nexport class ColumnFitterComponent implements OnInit {\n\n screenObserverService = inject(ScreenObserverService)\n\n @Input() padding = ''\n @Input() margin = ''\n @Input() backgroundColor = ''\n @Input() minWidth = ''\n @Input() gap = '1rem'\n @Input() columns: number | Column[] = 0;\n\n gridColumns: any = ''\n\n subscriptions = new Subscription()\n\n hasColumns = Array.isArray(this.columns)\n ? this.columns.every(col => col instanceof Column)\n : (typeof this.columns === 'number' && this.columns > 0);\n\n constructor() { }\n\n ngOnInit() {\n this.subscriptions.add(\n this.screenObserverService\n .device$\n .pipe(\n distinctUntilChanged()\n )\n .subscribe((screen: string) => {\n this.gridColumns = this.getGridTemplateColumns(screen)\n console.log(screen)\n })\n )\n }\n\n found = (device: string) => (Array.isArray(this.columns)) ? this.columns.find(item => item.device === device) as Column : 0\n\n getGridTemplateColumns(device: string): any {\n\n if (typeof this.columns === 'number') {\n return this.columns > 0 ? `repeat(${this.columns}, 1fr)` : `repeat(auto-fit, minmax(${this.minWidth}, 1fr))`;\n }\n\n if (device === 'desktop' && this.found(DeviceSizes.DESKTOP)) {\n\n const cols = this.found(DeviceSizes.DESKTOP) as Column\n return `repeat(${cols.columns}, 1fr)`;\n\n } else if (device === 'tablet' && this.found(DeviceSizes.TABLET)) {\n\n const cols = this.found(DeviceSizes.TABLET) as Column\n return `repeat(${cols.columns}, 1fr)`;\n\n } else if (device === 'mini' && this.found(DeviceSizes.MINI)) {\n\n const cols = this.found(DeviceSizes.MINI) as Column\n return `repeat(${cols.columns}, 1fr)`;\n\n } else if (device === 'mobile' && this.found(DeviceSizes.MOBILE)) {\n\n const cols = this.found(DeviceSizes.MOBILE) as Column\n return `repeat(${cols.columns}, 1fr)`;\n\n } else {\n return `repeat(auto-fit, minmax(${this.minWidth}, 1fr))`;\n }\n\n }\n\n}\n\n\n\n","<div\n class=\"container\"\n [style.minWidth]=\"minWidth\"\n [style.gap]=\"gap\"\n [style.margin]=\"margin\"\n [style.padding]=\"padding\"\n [style.backgroundColor]=\"backgroundColor\"\n [style.gridTemplateColumns]=\"gridColumns\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { Column, DeviceSizes } from '../models';\n\n\n@Component({\n selector: 'app-column-fitter-demo',\n templateUrl: './column-fitter-demo.component.html',\n styleUrls: ['./column-fitter-demo.component.css']\n})\nexport class ColumnFitterDemoComponent implements OnInit {\n\n columns: Column[] = [\n { device: DeviceSizes.MOBILE, columns: 1 },\n { device: DeviceSizes.TABLET, columns: 4 },\n { device: DeviceSizes.MINI, columns: 2 },\n ]\n\n bookmarks = [\n { value: 'To Kill a Mockingbird', id: 1 },\n { value: '1984', id: 2 },\n { value: 'The Great Gatsby', id: 3 },\n { value: 'Moby Dick', id: 4 },\n { value: 'War and Peace', id: 5 },\n { value: 'Pride and Prejudice', id: 6 },\n { value: 'The Catcher in the Rye', id: 7 },\n { value: 'Brave New World', id: 8 },\n]\n\n ngOnInit() {\n }\n\n}\n","<app-column-fitter\n gap=\"1rem\"\n margin=\"1rem\"\n padding=\"1rem\"\n backgroundColor=\"green\"\n minWidth=\"240px\"\n [columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of bookmarks\"\n class=\"column-format\"\n >\n {{ item.value }}\n </div>\n</app-column-fitter>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ColumnFitterComponent } from './column-fitter.component';\nimport { ColumnFitterDemoComponent } from './column-fitter-demo/column-fitter-demo.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n ColumnFitterDemoComponent,\n ColumnFitterComponent,\n ],\n exports: [\n ColumnFitterDemoComponent,\n ColumnFitterComponent,\n ]\n})\nexport class ColumnFitterModule { }\n","/*\n * Public API Surface of column-fitter\n */\n\nexport * from './lib/models/index';\n\nexport * from './lib/column-fitter.component';\nexport * from './lib/column-fitter.module';\n\nexport * from './lib/column-fitter-demo/column-fitter-demo.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ColumnFitterComponent"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="column-fitter" />
5
+ export * from './public-api';
@@ -0,0 +1,13 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Column } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ColumnFitterDemoComponent implements OnInit {
5
+ columns: Column[];
6
+ bookmarks: {
7
+ value: string;
8
+ id: number;
9
+ }[];
10
+ ngOnInit(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnFitterDemoComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnFitterDemoComponent, "app-column-fitter-demo", never, {}, {}, never, never, false, never>;
13
+ }
@@ -0,0 +1,23 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Column } from './models/column.model';
3
+ import { Subscription } from 'rxjs';
4
+ import { ScreenObserverService } from 'screen-observer';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ColumnFitterComponent implements OnInit {
7
+ screenObserverService: ScreenObserverService;
8
+ padding: string;
9
+ margin: string;
10
+ backgroundColor: string;
11
+ minWidth: string;
12
+ gap: string;
13
+ columns: number | Column[];
14
+ gridColumns: any;
15
+ subscriptions: Subscription;
16
+ hasColumns: boolean;
17
+ constructor();
18
+ ngOnInit(): void;
19
+ found: (device: string) => Column | 0;
20
+ getGridTemplateColumns(device: string): any;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnFitterComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnFitterComponent, "app-column-fitter", never, { "padding": { "alias": "padding"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; }, {}, never, ["*"], false, never>;
23
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./column-fitter-demo/column-fitter-demo.component";
3
+ import * as i2 from "./column-fitter.component";
4
+ import * as i3 from "@angular/common";
5
+ export declare class ColumnFitterModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnFitterModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ColumnFitterModule, [typeof i1.ColumnFitterDemoComponent, typeof i2.ColumnFitterComponent], [typeof i3.CommonModule], [typeof i1.ColumnFitterDemoComponent, typeof i2.ColumnFitterComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<ColumnFitterModule>;
9
+ }
@@ -0,0 +1,11 @@
1
+ import { DeviceSizes } from "./device-sizes.model";
2
+ export interface ColumnInterface {
3
+ device: DeviceSizes;
4
+ columns: number;
5
+ }
6
+ export declare class Column implements ColumnInterface {
7
+ device: DeviceSizes;
8
+ columns: number;
9
+ constructor(device?: DeviceSizes, columns?: number);
10
+ static adapt(item?: any): Column;
11
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum DeviceSizes {
2
+ DESKTOP = "desktop",
3
+ TABLET = "tablet",
4
+ MINI = "mini",
5
+ MOBILE = "mobile"
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './column.model';
2
+ export * from './device-sizes.model';
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "column-fitter",
3
+ "version": "15.0.6",
4
+ "homepage": "https://wavecoders.ca",
5
+ "author": "Mike Bonifacio <wavecoders@gmail.com> (http://wavecoders@gmail.com/)",
6
+ "description": "This is an Angular Module containing Components/Services using Material",
7
+ "funding": [
8
+ {
9
+ "type": "individual",
10
+ "url": "http://wavecoders.ca/donate"
11
+ }
12
+ ],
13
+ "peerDependencies": {
14
+ "@angular/common": "^15.2.0",
15
+ "@angular/core": "^15.2.0",
16
+ "screen-observer": "^15.0.5"
17
+ },
18
+ "dependencies": {
19
+ "tslib": "^2.3.0"
20
+ },
21
+ "sideEffects": false,
22
+ "module": "fesm2022/column-fitter.mjs",
23
+ "typings": "index.d.ts",
24
+ "exports": {
25
+ "./package.json": {
26
+ "default": "./package.json"
27
+ },
28
+ ".": {
29
+ "types": "./index.d.ts",
30
+ "esm2022": "./esm2022/column-fitter.mjs",
31
+ "esm": "./esm2022/column-fitter.mjs",
32
+ "default": "./fesm2022/column-fitter.mjs"
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,4 @@
1
+ export * from './lib/models/index';
2
+ export * from './lib/column-fitter.component';
3
+ export * from './lib/column-fitter.module';
4
+ export * from './lib/column-fitter-demo/column-fitter-demo.component';