@factor_ec/ui 1.0.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/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # Ui
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.0.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project ui` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ui`.
8
+ > Note: Don't forget to add `--project ui` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build ui` 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 ui`, go to the dist folder `cd dist/ui` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test ui` 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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yX2VjLXVpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2ZhY3Rvcl9lYy11aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,74 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@factor_ec/utils";
4
+ import * as i2 from "@angular/common";
5
+ export class AvatarComponent {
6
+ constructor(colorService) {
7
+ this.colorService = colorService;
8
+ this.class = '';
9
+ }
10
+ set src(value) {
11
+ if (value && value.trim() != '') {
12
+ this._src = value;
13
+ let image = new Image();
14
+ image.src = value;
15
+ image.onload = () => {
16
+ if ("decode" in image) {
17
+ image.decode().then(() => {
18
+ this.loaded = true;
19
+ });
20
+ }
21
+ else {
22
+ console.error('Image.decode not available.');
23
+ }
24
+ };
25
+ }
26
+ }
27
+ set label(value) {
28
+ this._label = value;
29
+ this.initials = this.getInitials(value);
30
+ }
31
+ get backgroundColor() {
32
+ return this.color || this.colorService.hex(this._label);
33
+ }
34
+ get backgroundImage() {
35
+ return this._src ? `url(${this._src})` : '';
36
+ }
37
+ get hostClasses() {
38
+ return [
39
+ 'ft-avatar',
40
+ this.class
41
+ ].join(' ');
42
+ }
43
+ ngOnInit() {
44
+ }
45
+ getInitials(value) {
46
+ let allInitials = value.match(/\b\w/g) || [];
47
+ let initials = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();
48
+ return initials;
49
+ }
50
+ }
51
+ AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.ColorService }], target: i0.ɵɵFactoryTarget.Component });
52
+ AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AvatarComponent, selector: "ft-avatar", inputs: { color: "color", class: "class", src: "src", label: "label" }, host: { properties: { "style.background-color": "this.backgroundColor", "style.background-image": "this.backgroundImage", "class": "this.hostClasses" } }, ngImport: i0, template: "<div *ngIf=\"!loaded\">{{ initials }}</div>\n", styles: [":host{--default-size: var(--size, 3rem);display:inline-flex;align-items:center;justify-content:center;color:#fff;background-size:cover;background-repeat:no-repeat;border-radius:calc(var(--default-size) / 2);font-size:calc(var(--default-size) - var(--default-size) * .6);min-width:var(--default-size);min-height:var(--default-size);cursor:default;-webkit-user-select:none;user-select:none}div{font-size:1em;line-height:1em}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AvatarComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'ft-avatar', template: "<div *ngIf=\"!loaded\">{{ initials }}</div>\n", styles: [":host{--default-size: var(--size, 3rem);display:inline-flex;align-items:center;justify-content:center;color:#fff;background-size:cover;background-repeat:no-repeat;border-radius:calc(var(--default-size) / 2);font-size:calc(var(--default-size) - var(--default-size) * .6);min-width:var(--default-size);min-height:var(--default-size);cursor:default;-webkit-user-select:none;user-select:none}div{font-size:1em;line-height:1em}\n"] }]
56
+ }], ctorParameters: function () { return [{ type: i1.ColorService }]; }, propDecorators: { color: [{
57
+ type: Input
58
+ }], class: [{
59
+ type: Input
60
+ }], src: [{
61
+ type: Input
62
+ }], label: [{
63
+ type: Input
64
+ }], backgroundColor: [{
65
+ type: HostBinding,
66
+ args: ['style.background-color']
67
+ }], backgroundImage: [{
68
+ type: HostBinding,
69
+ args: ['style.background-image']
70
+ }], hostClasses: [{
71
+ type: HostBinding,
72
+ args: ['class']
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXRFLE1BQU0sT0FBTyxlQUFlO0lBK0MxQixZQUNVLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBeENwQyxVQUFLLEdBQVcsRUFBRSxDQUFDO0lBeUNmLENBQUM7SUF4Q0wsSUFDSSxHQUFHLENBQUMsS0FBYTtRQUNuQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUUsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7WUFDbEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksUUFBUSxJQUFJLEtBQUssRUFBRTtvQkFDckIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNyQixDQUFDLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7aUJBQzlDO1lBQ0gsQ0FBQyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBQ0QsSUFDSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxJQUNJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsV0FBVztZQUNYLElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBTUQsUUFBUTtJQUVSLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLFdBQVcsR0FBYSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7NEdBMURVLGVBQWU7Z0dBQWYsZUFBZSxvUkNSNUIsK0NBQ0E7MkZET2EsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXO21HQVFyQixLQUFLO3NCQURKLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFrQkYsS0FBSztzQkFEUixLQUFLO2dCQU1GLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtqQyxlQUFlO3NCQURsQixXQUFXO3VCQUFDLHdCQUF3QjtnQkFLakMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvclNlcnZpY2UgfSBmcm9tICdAZmFjdG9yX2VjL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnQtYXZhdGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIF9sYWJlbCE6IHN0cmluZztcbiAgX3NyYyE6IHN0cmluZztcbiAgQElucHV0KClcbiAgY29sb3IhOiBzdHJpbmc7XG4gIGluaXRpYWxzITogc3RyaW5nO1xuICBsb2FkZWQhOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpXG4gIHNldCBzcmModmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS50cmltKCkhPScnKSB7XG4gICAgICB0aGlzLl9zcmMgPSB2YWx1ZTtcbiAgICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgaW1hZ2Uuc3JjID0gdmFsdWU7XG4gICAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmIChcImRlY29kZVwiIGluIGltYWdlKSB7XG4gICAgICAgICAgaW1hZ2UuZGVjb2RlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignSW1hZ2UuZGVjb2RlIG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbGFiZWwgPSB2YWx1ZTtcbiAgICB0aGlzLmluaXRpYWxzID0gdGhpcy5nZXRJbml0aWFscyh2YWx1ZSk7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yJylcbiAgZ2V0IGJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbG9yIHx8IHRoaXMuY29sb3JTZXJ2aWNlLmhleCh0aGlzLl9sYWJlbCk7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kLWltYWdlJylcbiAgZ2V0IGJhY2tncm91bmRJbWFnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zcmMgPyBgdXJsKCR7dGhpcy5fc3JjfSlgIDogJyc7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtYXZhdGFyJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcblxuICB9XG4gIGdldEluaXRpYWxzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBhbGxJbml0aWFsczogc3RyaW5nW10gPSB2YWx1ZS5tYXRjaCgvXFxiXFx3L2cpIHx8IFtdO1xuICAgIGxldCBpbml0aWFsczogc3RyaW5nID0gKChhbGxJbml0aWFscy5zaGlmdCgpIHx8ICcnKSArIChhbGxJbml0aWFscy5wb3AoKSB8fCAnJykpLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIGluaXRpYWxzO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCIhbG9hZGVkXCI+e3sgaW5pdGlhbHMgfX08L2Rpdj5cbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { Component, Input, Inject, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class IconComponent {
5
+ constructor(configuration) {
6
+ this.configuration = configuration;
7
+ this.class = '';
8
+ }
9
+ set collection(collection) {
10
+ this._collection = collection;
11
+ this.update();
12
+ }
13
+ set mode(mode) {
14
+ this._mode = mode;
15
+ this.update();
16
+ }
17
+ set name(name) {
18
+ this._name = name;
19
+ this.update();
20
+ }
21
+ set path(path) {
22
+ this._path = path;
23
+ this.update();
24
+ }
25
+ get hostClasses() {
26
+ return [
27
+ 'ft-icon',
28
+ this.class
29
+ ].join(' ');
30
+ }
31
+ ngOnInit() {
32
+ this.update();
33
+ }
34
+ update() {
35
+ // Set the default collection if the mode is external
36
+ if (!this._collection) {
37
+ if (this.configuration.icon && this.configuration.icon.collection) {
38
+ this._collection = this.configuration.icon.collection;
39
+ }
40
+ else if (this._mode === 'external') {
41
+ this._collection = 'icons';
42
+ }
43
+ }
44
+ if (!this._mode) {
45
+ if (this.configuration.icon && this.configuration.icon.mode) {
46
+ this._mode = this.configuration.icon.mode;
47
+ }
48
+ else {
49
+ this._mode = 'external';
50
+ }
51
+ }
52
+ if (this._mode === 'external') {
53
+ // If the icon mode is external
54
+ if (!this._path) {
55
+ if (this.configuration.icon && this.configuration.icon.path) {
56
+ this._path = this.configuration.icon.path;
57
+ }
58
+ else {
59
+ this._path = 'assets';
60
+ }
61
+ }
62
+ this.url = `${this._path}/${this._collection}.svg#${this._name}`;
63
+ }
64
+ else {
65
+ // If the icon mode is inline
66
+ const name = this._collection && this._collection !== 'unset' ? `${this._collection}--${this._name}` : this._name;
67
+ this.url = `#${name}`;
68
+ }
69
+ }
70
+ }
71
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IconComponent, deps: [{ token: 'FactorUiConfiguration' }], target: i0.ɵɵFactoryTarget.Component });
72
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: IconComponent, selector: "ft-icon", inputs: { class: "class", collection: "collection", mode: "mode", name: "name", path: "path", size: "size", src: "src" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg *ngIf=\"!src; else imageTemplate\"><use attr.xlink:href=\"{{ url }}\" attr.href=\"{{ url }}\" /></svg>\n<ng-template #imageTemplate>\n <img [src]=\"src\" />\n</ng-template>", styles: [":host{line-height:0;display:inline-block}:host[size=\"1\"],:host.ft-icon--1{font-size:1rem}:host[size=\"2\"],:host.ft-icon--2{font-size:1.5rem}:host[size=\"3\"],:host.ft-icon--3{font-size:2rem}:host[size=\"4\"],:host.ft-icon--4{font-size:3rem}:host[size=\"5\"],:host.ft-icon--5{font-size:4.5rem}:host[size=\"6\"],:host.ft-icon--6{font-size:8rem}:host[size=\"7\"],:host.ft-icon--7{font-size:16rem}:host[size=\"8\"],:host.ft-icon--8{font-size:32rem}svg{width:1em;height:1em;vertical-align:middle;fill:currentColor}img{height:1em;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: IconComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'ft-icon', template: "<svg *ngIf=\"!src; else imageTemplate\"><use attr.xlink:href=\"{{ url }}\" attr.href=\"{{ url }}\" /></svg>\n<ng-template #imageTemplate>\n <img [src]=\"src\" />\n</ng-template>", styles: [":host{line-height:0;display:inline-block}:host[size=\"1\"],:host.ft-icon--1{font-size:1rem}:host[size=\"2\"],:host.ft-icon--2{font-size:1.5rem}:host[size=\"3\"],:host.ft-icon--3{font-size:2rem}:host[size=\"4\"],:host.ft-icon--4{font-size:3rem}:host[size=\"5\"],:host.ft-icon--5{font-size:4.5rem}:host[size=\"6\"],:host.ft-icon--6{font-size:8rem}:host[size=\"7\"],:host.ft-icon--7{font-size:16rem}:host[size=\"8\"],:host.ft-icon--8{font-size:32rem}svg{width:1em;height:1em;vertical-align:middle;fill:currentColor}img{height:1em;vertical-align:middle}\n"] }]
76
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
77
+ type: Inject,
78
+ args: ['FactorUiConfiguration']
79
+ }] }]; }, propDecorators: { class: [{
80
+ type: Input
81
+ }], collection: [{
82
+ type: Input
83
+ }], mode: [{
84
+ type: Input
85
+ }], name: [{
86
+ type: Input
87
+ }], path: [{
88
+ type: Input
89
+ }], size: [{
90
+ type: Input
91
+ }], src: [{
92
+ type: Input
93
+ }], hostClasses: [{
94
+ type: HostBinding,
95
+ args: ['class']
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFROUUsTUFBTSxPQUFPLGFBQWE7SUF3Q3hCLFlBQzJDLGFBQThCO1FBQTlCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQW5DekUsVUFBSyxHQUFXLEVBQUUsQ0FBQztJQW9DZixDQUFDO0lBbkNMLElBQ0ksVUFBVSxDQUFDLFVBQWtCO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFDSSxJQUFJLENBQUMsSUFBMkI7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUNJLElBQUksQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFDSSxJQUFJLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQU1ELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxTQUFTO1lBQ1QsSUFBSSxDQUFDLEtBQUs7U0FDWCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFNRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxNQUFNO1FBQ1oscURBQXFEO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUN2RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7YUFDekI7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDN0IsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUMzRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7aUJBQ3ZCO2FBQ0Y7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUksSUFBSSxDQUFDLEtBQU0sSUFBSyxJQUFJLENBQUMsV0FBWSxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN0RTthQUFNO1lBQ0wsNkJBQTZCO1lBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbEgsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7MEdBOUVVLGFBQWEsa0JBeUNkLHVCQUF1Qjs4RkF6Q3RCLGFBQWEsZ09DUjFCLG9MQUdjOzJGREtELGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUzs7MEJBNkNoQixNQUFNOzJCQUFDLHVCQUF1Qjs0Q0FuQ2pDLEtBQUs7c0JBREosS0FBSztnQkFHRixVQUFVO3NCQURiLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQU1GLElBQUk7c0JBRFAsS0FBSztnQkFNRixJQUFJO3NCQURQLEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxLQUFLO2dCQUdOLEdBQUc7c0JBREYsS0FBSztnQkFJRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSW5qZWN0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3VpLWNvbmZpZ3VyYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIF9jb2xsZWN0aW9uITogc3RyaW5nO1xuICBfbmFtZSE6IHN0cmluZztcbiAgX21vZGUhOiAnaW5saW5lJyB8ICdleHRlcm5hbCc7XG4gIF9wYXRoITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpXG4gIHNldCBjb2xsZWN0aW9uKGNvbGxlY3Rpb246IHN0cmluZykge1xuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSBjb2xsZWN0aW9uO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IG1vZGUobW9kZTogJ2lubGluZScgfCAnZXh0ZXJuYWwnKSB7XG4gICAgdGhpcy5fbW9kZSA9IG1vZGU7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9uYW1lID0gbmFtZTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9IFxuICBASW5wdXQoKVxuICBzZXQgcGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wYXRoID0gcGF0aDtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNpemUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNyYyE6IHN0cmluZztcbiAgdXJsITogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdmdC1pY29uJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0ZhY3RvclVpQ29uZmlndXJhdGlvbicpIHByaXZhdGUgY29uZmlndXJhdGlvbjogVWlDb25maWd1cmF0aW9uXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgY29sbGVjdGlvbiBpZiB0aGUgbW9kZSBpcyBleHRlcm5hbFxuICAgIGlmICghdGhpcy5fY29sbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pY29uICYmIHRoaXMuY29uZmlndXJhdGlvbi5pY29uLmNvbGxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbi5pY29uLmNvbGxlY3Rpb247XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX21vZGUgPT09ICdleHRlcm5hbCcpIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9ICdpY29ucyc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5fbW9kZSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pY29uICYmIHRoaXMuY29uZmlndXJhdGlvbi5pY29uLm1vZGUpIHtcbiAgICAgICAgdGhpcy5fbW9kZSA9IHRoaXMuY29uZmlndXJhdGlvbi5pY29uLm1vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9tb2RlID0gJ2V4dGVybmFsJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX21vZGUgPT09ICdleHRlcm5hbCcpIHtcbiAgICAgIC8vIElmIHRoZSBpY29uIG1vZGUgaXMgZXh0ZXJuYWxcbiAgICAgIGlmICghdGhpcy5fcGF0aCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmljb24gJiYgdGhpcy5jb25maWd1cmF0aW9uLmljb24ucGF0aCkge1xuICAgICAgICAgIHRoaXMuX3BhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uaWNvbi5wYXRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3BhdGggPSAnYXNzZXRzJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy51cmwgPSBgJHsgdGhpcy5fcGF0aCB9LyR7IHRoaXMuX2NvbGxlY3Rpb24gfS5zdmcjJHt0aGlzLl9uYW1lfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBpY29uIG1vZGUgaXMgaW5saW5lXG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5fY29sbGVjdGlvbiAmJiB0aGlzLl9jb2xsZWN0aW9uICE9PSAndW5zZXQnID8gYCR7dGhpcy5fY29sbGVjdGlvbn0tLSR7dGhpcy5fbmFtZX1gIDogdGhpcy5fbmFtZTtcbiAgICAgIHRoaXMudXJsID0gYCMke25hbWV9YDtcbiAgICB9XG4gIH1cbn1cbiIsIjxzdmcgKm5nSWY9XCIhc3JjOyBlbHNlIGltYWdlVGVtcGxhdGVcIj48dXNlIGF0dHIueGxpbms6aHJlZj1cInt7IHVybCB9fVwiIGF0dHIuaHJlZj1cInt7IHVybCB9fVwiIC8+PC9zdmc+XG48bmctdGVtcGxhdGUgI2ltYWdlVGVtcGxhdGU+XG4gIDxpbWcgW3NyY109XCJzcmNcIiAvPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -0,0 +1,80 @@
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../icon/icon.component";
5
+ export class ImageComponent {
6
+ constructor(element) {
7
+ this.element = element;
8
+ this.class = '';
9
+ this.loading = false;
10
+ this.shown = false;
11
+ }
12
+ ngOnInit() {
13
+ if ("IntersectionObserver" in window) {
14
+ let elementObserver = new IntersectionObserver((entries, observer) => {
15
+ entries.forEach((entry) => {
16
+ if (entry.isIntersecting) {
17
+ let image = new Image();
18
+ image.src = this.src;
19
+ setTimeout(() => {
20
+ if (!this.shown && !this.error) {
21
+ this.loading = true;
22
+ }
23
+ }, 100);
24
+ image.onerror = () => {
25
+ this.error = true;
26
+ this.loading = false;
27
+ };
28
+ image.onload = () => {
29
+ if ("decode" in image) {
30
+ image.decode().then(() => {
31
+ this.loading = false;
32
+ this.shown = true;
33
+ });
34
+ }
35
+ else {
36
+ this.loading = false;
37
+ this.shown = true;
38
+ }
39
+ };
40
+ elementObserver.unobserve(this.element.nativeElement);
41
+ }
42
+ });
43
+ }, {
44
+ rootMargin: "0px 0px 200px 0px"
45
+ });
46
+ elementObserver.observe(this.element.nativeElement);
47
+ }
48
+ else {
49
+ console.error('IntersectionObserver not available.');
50
+ this.loading = false;
51
+ this.shown = true;
52
+ }
53
+ }
54
+ get hostClasses() {
55
+ return [
56
+ 'ft-image',
57
+ this.class
58
+ ].join(' ');
59
+ }
60
+ }
61
+ ImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ImageComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
62
+ ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ImageComponent, selector: "ft-image", inputs: { class: "class", src: "src" }, host: { properties: { "class.ft-image--error": "this.error", "class.ft-image--loading": "this.loading", "class": "this.hostClasses" } }, ngImport: i0, template: "<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n", styles: [":host{display:inline-block;overflow:hidden;display:flex;align-items:center;justify-content:center}:host.ft-image--loading{background-color:#00000008;position:relative;overflow:hidden}:host.ft-image--loading:after{content:\"\";display:block;background-color:#00000005;position:absolute;top:0;bottom:0;width:100%;height:100%;transform:translate(0);animation:1.5s placeholder-loading ease-in-out infinite}:host.ft-image--error{background-color:#ff000008}:host.ft-image--error ft-icon{color:var(--danger)}img{position:relative;z-index:1;max-width:100%;max-height:100%;animation:fade-in .3s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes placeholder-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }] });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ImageComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'ft-image', template: "<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n", styles: [":host{display:inline-block;overflow:hidden;display:flex;align-items:center;justify-content:center}:host.ft-image--loading{background-color:#00000008;position:relative;overflow:hidden}:host.ft-image--loading:after{content:\"\";display:block;background-color:#00000005;position:absolute;top:0;bottom:0;width:100%;height:100%;transform:translate(0);animation:1.5s placeholder-loading ease-in-out infinite}:host.ft-image--error{background-color:#ff000008}:host.ft-image--error ft-icon{color:var(--danger)}img{position:relative;z-index:1;max-width:100%;max-height:100%;animation:fade-in .3s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes placeholder-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}\n"] }]
66
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
67
+ type: Input
68
+ }], error: [{
69
+ type: HostBinding,
70
+ args: ['class.ft-image--error']
71
+ }], loading: [{
72
+ type: HostBinding,
73
+ args: ['class.ft-image--loading']
74
+ }], src: [{
75
+ type: Input
76
+ }], hostClasses: [{
77
+ type: HostBinding,
78
+ args: ['class']
79
+ }] } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ltYWdlL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7OztBQU9sRixNQUFNLE9BQU8sY0FBYztJQVd6QixZQUNVLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFWN0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUluQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLFVBQUssR0FBWSxLQUFLLENBQUM7SUFJbkIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLHNCQUFzQixJQUFJLE1BQU0sRUFBRTtZQUNwQyxJQUFJLGVBQWUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3hCLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTt3QkFDeEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDeEIsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO3dCQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQ0FDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7NkJBQ3JCO3dCQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDUixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTs0QkFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7NEJBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixDQUFDLENBQUM7d0JBQ0YsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7NEJBQ2xCLElBQUksUUFBUSxJQUFJLEtBQUssRUFBRTtnQ0FDckIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0NBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29DQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQ0FDcEIsQ0FBQyxDQUFDLENBQUM7NkJBQ0o7aUNBQU07Z0NBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0NBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOzZCQUNuQjt3QkFDSCxDQUFDLENBQUM7d0JBQ0YsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUN2RDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRTtnQkFDRCxVQUFVLEVBQUUsbUJBQW1CO2FBQ2hDLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxVQUFVO1lBQ1YsSUFBSSxDQUFDLEtBQUs7U0FDWCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7OzJHQTdEVSxjQUFjOytGQUFkLGNBQWMsaU9DUDNCLDBHQUVBOzJGREthLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTtpR0FNcEIsS0FBSztzQkFESixLQUFLO2dCQUdOLEtBQUs7c0JBREosV0FBVzt1QkFBQyx1QkFBdUI7Z0JBR3BDLE9BQU87c0JBRE4sV0FBVzt1QkFBQyx5QkFBeUI7Z0JBR3RDLEdBQUc7c0JBREYsS0FBSztnQkFpREYsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdC1pbWFnZS0tZXJyb3InKVxuICBlcnJvciE6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnQtaW1hZ2UtLWxvYWRpbmcnKVxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHNyYyE6IHN0cmluZztcbiAgc2hvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiIGluIHdpbmRvdykge1xuICAgICAgbGV0IGVsZW1lbnRPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcywgb2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgbGV0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSB0aGlzLnNyYztcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuc2hvd24gJiYgIXRoaXMuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgaW1hZ2Uub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFwiZGVjb2RlXCIgaW4gaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93biA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93biA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBlbGVtZW50T2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSwge1xuICAgICAgICByb290TWFyZ2luOiBcIjBweCAwcHggMjAwcHggMHB4XCJcbiAgICAgIH0pO1xuICAgICAgZWxlbWVudE9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdJbnRlcnNlY3Rpb25PYnNlcnZlciBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3duID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtaW1hZ2UnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgIF0uam9pbignICcpO1xuICB9XG5cbn1cbiIsIjxpbWcgKm5nSWY9XCJzaG93blwiIFtzcmNdPVwic3JjXCIgLz5cbjxmdC1pY29uIG5hbWU9XCJ3YXJuaW5nXCIgc2l6ZT1cIjJcIiAqbmdJZj1cImVycm9yXCI+PC9mdC1pY29uPlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbW9kZWxzL3VpLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVWlDb25maWd1cmF0aW9uIHtcbiAgICBpY29uOiB7XG4gICAgICAgIG1vZGU6ICdleHRlcm5hbCcgfCBudWxsLFxuICAgICAgICBjb2xsZWN0aW9uOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZ1xuICAgIH1cbn0iXX0=
@@ -0,0 +1,42 @@
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class ProgressComponent {
5
+ constructor() {
6
+ this.class = '';
7
+ this.mode = 'indeterminate';
8
+ this.overlay = false;
9
+ }
10
+ ngOnInit() {
11
+ this.value = 0;
12
+ }
13
+ get hostClasses() {
14
+ return [
15
+ 'ft-progress',
16
+ this.overlay ? 'ft-progress--overlay' : '',
17
+ this.class
18
+ ].join(' ');
19
+ }
20
+ }
21
+ ProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ ProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ProgressComponent, selector: "ft-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <circle class=\"track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"bar\" [ngClass]=\"mode\" cx=\"50\" cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", styles: [":host{--track-color: rgba(0, 0, 0, .08);--bar-color: var(--primary);line-height:0;display:inline-block}:host[size=\"1\"],:host.ft-progress--1{font-size:1rem}:host[size=\"2\"],:host.ft-progress--2{font-size:1.5rem}:host[size=\"3\"],:host.ft-progress--3{font-size:2rem}:host[size=\"4\"],:host.ft-progress--4{font-size:3rem}:host[size=\"5\"],:host.ft-progress--5{font-size:4.5rem}:host[size=\"6\"],:host.ft-progress--6{font-size:8rem}:host[size=\"7\"],:host.ft-progress--7{font-size:16rem}:host[size=\"8\"],:host.ft-progress--8{font-size:32rem}:host.ft-progress--overlay{position:fixed;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:var(--z-index-modal, 1000);top:0;left:0;right:0;bottom:0;font-size:42px}:host.ft-progress--overlay svg{background:rgba(255,255,255,.6);-webkit-backdrop-filter:saturate(50%) blur(3px);backdrop-filter:saturate(50%) blur(3px);box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f;border-radius:100vh;padding:.3125rem;animation:progress-reveal .2s;animation-fill-mode:forwards}:host.ft-progress--overlay svg .track{display:none}svg{width:1em;height:1em;vertical-align:middle}svg .track{fill:none;stroke-width:10;stroke:var(--track-color)}svg .bar{fill:none;stroke-opacity:.9;stroke-width:6;stroke:var(--bar-color)}svg .bar.indeterminate{animation:progress-rotation 2s infinite linear}svg .bar.determinate{stroke-dasharray:251.327412288}@keyframes progress-reveal{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes progress-rotation{0%{stroke-dashoffset:0;stroke-dasharray:150.6 100.4}50%{stroke-dasharray:1 250}to{stroke-dashoffset:502;stroke-dasharray:150.6 100.4}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ProgressComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'ft-progress', template: "<svg [ngStyle]=\"{'--bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <circle class=\"track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"bar\" [ngClass]=\"mode\" cx=\"50\" cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", styles: [":host{--track-color: rgba(0, 0, 0, .08);--bar-color: var(--primary);line-height:0;display:inline-block}:host[size=\"1\"],:host.ft-progress--1{font-size:1rem}:host[size=\"2\"],:host.ft-progress--2{font-size:1.5rem}:host[size=\"3\"],:host.ft-progress--3{font-size:2rem}:host[size=\"4\"],:host.ft-progress--4{font-size:3rem}:host[size=\"5\"],:host.ft-progress--5{font-size:4.5rem}:host[size=\"6\"],:host.ft-progress--6{font-size:8rem}:host[size=\"7\"],:host.ft-progress--7{font-size:16rem}:host[size=\"8\"],:host.ft-progress--8{font-size:32rem}:host.ft-progress--overlay{position:fixed;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:var(--z-index-modal, 1000);top:0;left:0;right:0;bottom:0;font-size:42px}:host.ft-progress--overlay svg{background:rgba(255,255,255,.6);-webkit-backdrop-filter:saturate(50%) blur(3px);backdrop-filter:saturate(50%) blur(3px);box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f;border-radius:100vh;padding:.3125rem;animation:progress-reveal .2s;animation-fill-mode:forwards}:host.ft-progress--overlay svg .track{display:none}svg{width:1em;height:1em;vertical-align:middle}svg .track{fill:none;stroke-width:10;stroke:var(--track-color)}svg .bar{fill:none;stroke-opacity:.9;stroke-width:6;stroke:var(--bar-color)}svg .bar.indeterminate{animation:progress-rotation 2s infinite linear}svg .bar.determinate{stroke-dasharray:251.327412288}@keyframes progress-reveal{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes progress-rotation{0%{stroke-dashoffset:0;stroke-dasharray:150.6 100.4}50%{stroke-dasharray:1 250}to{stroke-dashoffset:502;stroke-dasharray:150.6 100.4}}\n"] }]
26
+ }], ctorParameters: function () { return []; }, propDecorators: { class: [{
27
+ type: Input
28
+ }], color: [{
29
+ type: Input
30
+ }], mode: [{
31
+ type: Input
32
+ }], overlay: [{
33
+ type: Input
34
+ }], size: [{
35
+ type: Input
36
+ }], value: [{
37
+ type: Input
38
+ }], hostClasses: [{
39
+ type: HostBinding,
40
+ args: ['class']
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3RFLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUI7UUFaQSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSW5CLFNBQUksR0FBb0MsZUFBZSxDQUFDO1FBRXhELFlBQU8sR0FBWSxLQUFLLENBQUM7SUFNVCxDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLGFBQWE7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQzs7OEdBMUJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHNOQ1A5Qiw0YUFLTTsyRkRFTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsYUFBYTswRUFNdkIsS0FBSztzQkFESixLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBU0YsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LXByb2dyZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3Jlc3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KClcbiAgY29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIG1vZGU6ICdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZScgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gIEBJbnB1dCgpXG4gIG92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2l6ZSE6IG51bWJlcjtcbiAgQElucHV0KClcbiAgdmFsdWUhOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlID0gMDtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdmdC1wcm9ncmVzcycsXG4gICAgICB0aGlzLm92ZXJsYXkgPyAnZnQtcHJvZ3Jlc3MtLW92ZXJsYXknIDogJycsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgXS5qb2luKCcgJyk7XG4gIH1cblxufVxuIiwiPHN2ZyBbbmdTdHlsZV09XCJ7Jy0tYmFyLWNvbG9yJzogY29sb3J9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZFwiPlxuICAgIDxjaXJjbGUgY2xhc3M9XCJ0cmFja1wiIGN4PVwiNTBcIiBjeT1cIjUwXCIgcj1cIjQwXCIgLz5cbiAgICA8Y2lyY2xlIGNsYXNzPVwiYmFyXCIgW25nQ2xhc3NdPVwibW9kZVwiIGN4PVwiNTBcIiBjeT1cIjUwXCIgcj1cIjQwXCJcbiAgICAgICAgW25nU3R5bGVdPVwieydzdHJva2UtZGFzaG9mZnNldCc6IG1vZGU9PSdkZXRlcm1pbmF0ZSc/ICdjYWxjKCgzLjE0MTU5MjY1ICogNDAgKiAyICogKDEwMCAtICcrdmFsdWUrJykpIC8gMTAwKScgOiBudWxsfVwiPlxuICAgIDwvY2lyY2xlPlxuPC9zdmc+Il19
@@ -0,0 +1,39 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { AvatarComponent } from './avatar/avatar.component';
4
+ import { IconComponent } from './icon/icon.component';
5
+ import { ImageComponent } from './image/image.component';
6
+ import { ProgressComponent } from './progress/progress.component';
7
+ import * as i0 from "@angular/core";
8
+ export class UiModule {
9
+ }
10
+ UiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ UiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: UiModule, declarations: [AvatarComponent,
12
+ IconComponent,
13
+ ImageComponent,
14
+ ProgressComponent], imports: [CommonModule], exports: [AvatarComponent,
15
+ IconComponent,
16
+ ImageComponent,
17
+ ProgressComponent] });
18
+ UiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UiModule, imports: [CommonModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UiModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [
23
+ AvatarComponent,
24
+ IconComponent,
25
+ ImageComponent,
26
+ ProgressComponent
27
+ ],
28
+ imports: [
29
+ CommonModule
30
+ ],
31
+ exports: [
32
+ AvatarComponent,
33
+ IconComponent,
34
+ ImageComponent,
35
+ ProgressComponent
36
+ ]
37
+ }]
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi91aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBcUJsRSxNQUFNLE9BQU8sUUFBUTs7cUdBQVIsUUFBUTtzR0FBUixRQUFRLGlCQWZqQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxpQkFBaUIsYUFHakIsWUFBWSxhQUdaLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtzR0FHUixRQUFRLFlBVGpCLFlBQVk7MkZBU0gsUUFBUTtrQkFqQnBCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVaU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Public API Surface of ui
3
+ */
4
+ export * from './lib/avatar/avatar.component';
5
+ export * from './lib/icon/icon.component';
6
+ export * from './lib/image/image.component';
7
+ export * from './lib/progress/progress.component';
8
+ export * from './lib/ui.module';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS5tb2R1bGUnO1xuIl19