@factor_ec/ui 2.1.2 → 3.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/esm2020/lib/io/expression-builder/expression-builder.component.mjs +1 -1
- package/esm2020/lib/io/icon/icon.component.mjs +3 -5
- package/esm2020/lib/io/image/image.component.mjs +2 -2
- package/esm2020/lib/io/io.module.mjs +1 -6
- package/esm2020/lib/io/message/message.component.mjs +3 -3
- package/esm2020/lib/layout/collapsible/collapsible.component.mjs +37 -0
- package/esm2020/lib/layout/layout.module.mjs +28 -0
- package/esm2020/lib/models/action.mjs +1 -1
- package/esm2020/lib/navigation/list/list.component.mjs +55 -25
- package/esm2020/lib/navigation/navigation.module.mjs +9 -15
- package/esm2020/lib/navigation/toolbar/toolbar.component.mjs +1 -1
- package/esm2020/lib/ui.module.mjs +8 -1
- package/esm2020/public-api.mjs +3 -5
- package/fesm2015/factor_ec-ui.mjs +120 -206
- package/fesm2015/factor_ec-ui.mjs.map +1 -1
- package/fesm2020/factor_ec-ui.mjs +119 -205
- package/fesm2020/factor_ec-ui.mjs.map +1 -1
- package/lib/io/icon/icon.component.d.ts +1 -2
- package/lib/io/io.module.d.ts +7 -8
- package/lib/layout/collapsible/collapsible.component.d.ts +10 -0
- package/lib/layout/layout.module.d.ts +9 -0
- package/lib/models/action.d.ts +0 -1
- package/lib/navigation/list/list.component.d.ts +10 -8
- package/lib/navigation/navigation.module.d.ts +8 -9
- package/lib/ui.module.d.ts +3 -2
- package/package.json +1 -1
- package/public-api.d.ts +2 -4
- package/scss/all.scss +5 -5
- package/scss/components/collapsible.scss +44 -0
- package/scss/components/dropdown.scss +56 -0
- package/scss/components/list.scss +20 -42
- package/scss/components/ph.scss +27 -0
- package/scss/components/popup.scss +7 -0
- package/scss/components.scss +8 -5
- package/scss/mixins/breakpoints.scss +123 -0
- package/scss/mixins.scss +1 -0
- package/scss/reboot.scss +20 -15
- package/scss/root.scss +34 -21
- package/scss/variables.scss +76 -1
- package/esm2020/lib/io/listview/listview.component.mjs +0 -11
- package/esm2020/lib/navigation/navbar/navbar.component.mjs +0 -72
- package/esm2020/lib/navigation/searchbox/searchbox.component.mjs +0 -96
- package/lib/io/listview/listview.component.d.ts +0 -5
- package/lib/navigation/navbar/navbar.component.d.ts +0 -19
- package/lib/navigation/searchbox/searchbox.component.d.ts +0 -34
- package/scss/components/button.scss +0 -23
- package/scss/layout.scss +0 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, HostBinding, Inject, EventEmitter, Output, Injectable, ApplicationRef, PLATFORM_ID, Directive, NgModule
|
|
2
|
+
import { Component, Input, HostBinding, Inject, EventEmitter, Output, Injectable, ApplicationRef, PLATFORM_ID, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@factor_ec/utils';
|
|
4
4
|
import * as i1$1 from '@angular/common';
|
|
5
5
|
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
@@ -10,7 +10,7 @@ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
|
10
10
|
import * as i2 from '@angular/material/button';
|
|
11
11
|
import { MatButtonModule } from '@angular/material/button';
|
|
12
12
|
import { ReplaySubject } from 'rxjs';
|
|
13
|
-
import * as
|
|
13
|
+
import * as i4 from '@angular/router';
|
|
14
14
|
import { RouterModule } from '@angular/router';
|
|
15
15
|
import * as i5 from '@angular/material/menu';
|
|
16
16
|
import { MatMenuModule } from '@angular/material/menu';
|
|
@@ -153,10 +153,10 @@ class IconComponent {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IconComponent, deps: [{ token: 'FactorUiConfiguration' }], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
-
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: IconComponent, selector: "ft-icon", inputs: { collection: "collection", mode: "mode", name: "name", path: "path",
|
|
156
|
+
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: IconComponent, selector: "ft-icon", inputs: { collection: "collection", mode: "mode", name: "name", path: "path", src: "src", class: "class" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg *ngIf=\"!src; else imageTemplate\">\n <use attr.xlink:href=\"{{ url }}\" attr.href=\"{{ url }}\" />\n</svg>\n<ng-template #imageTemplate>\n <img [src]=\"src\" />\n</ng-template>", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
157
157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IconComponent, decorators: [{
|
|
158
158
|
type: Component,
|
|
159
|
-
args: [{ selector: 'ft-icon', template: "<svg *ngIf=\"!src; else imageTemplate\"
|
|
159
|
+
args: [{ selector: 'ft-icon', template: "<svg *ngIf=\"!src; else imageTemplate\">\n <use attr.xlink:href=\"{{ url }}\" attr.href=\"{{ url }}\" />\n</svg>\n<ng-template #imageTemplate>\n <img [src]=\"src\" />\n</ng-template>" }]
|
|
160
160
|
}], ctorParameters: function () {
|
|
161
161
|
return [{ type: undefined, decorators: [{
|
|
162
162
|
type: Inject,
|
|
@@ -170,8 +170,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
170
170
|
type: Input
|
|
171
171
|
}], path: [{
|
|
172
172
|
type: Input
|
|
173
|
-
}], size: [{
|
|
174
|
-
type: Input
|
|
175
173
|
}], src: [{
|
|
176
174
|
type: Input
|
|
177
175
|
}], class: [{
|
|
@@ -238,10 +236,10 @@ class ImageComponent {
|
|
|
238
236
|
}
|
|
239
237
|
}
|
|
240
238
|
ImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ImageComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
241
|
-
ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "
|
|
239
|
+
ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", 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 ft-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:ft-fade-in .3s}@keyframes ft-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ft-placeholder-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] });
|
|
242
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ImageComponent, decorators: [{
|
|
243
241
|
type: Component,
|
|
244
|
-
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"] }]
|
|
242
|
+
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 ft-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:ft-fade-in .3s}@keyframes ft-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ft-placeholder-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}\n"] }]
|
|
245
243
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
|
|
246
244
|
type: Input
|
|
247
245
|
}], error: [{
|
|
@@ -286,10 +284,10 @@ class MessageComponent {
|
|
|
286
284
|
}
|
|
287
285
|
}
|
|
288
286
|
MessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MessageComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
289
|
-
MessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: MessageComponent, selector: "ft-message", outputs: { beforeSelect: "beforeSelect" }, ngImport: i0, template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"
|
|
287
|
+
MessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: MessageComponent, selector: "ft-message", outputs: { beforeSelect: "beforeSelect" }, ngImport: i0, template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>", styles: [".mat-mdc-dialog-title{display:flex;align-items:center;gap:.5rem}.mat-mdc-dialog-content{display:flex;align-items:center;margin-bottom:.5rem}.mat-mdc-dialog-content ft-icon{margin-right:.5rem}.mat-mdc-dialog-actions{display:flex;align-items:center;justify-content:flex-end;padding-bottom:1.5rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] });
|
|
290
288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MessageComponent, decorators: [{
|
|
291
289
|
type: Component,
|
|
292
|
-
args: [{ selector: 'ft-message', template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"
|
|
290
|
+
args: [{ selector: 'ft-message', template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>", styles: [".mat-mdc-dialog-title{display:flex;align-items:center;gap:.5rem}.mat-mdc-dialog-content{display:flex;align-items:center;margin-bottom:.5rem}.mat-mdc-dialog-content ft-icon{margin-right:.5rem}.mat-mdc-dialog-actions{display:flex;align-items:center;justify-content:flex-end;padding-bottom:1.5rem}\n"] }]
|
|
293
291
|
}], ctorParameters: function () {
|
|
294
292
|
return [{ type: undefined, decorators: [{
|
|
295
293
|
type: Inject,
|
|
@@ -631,15 +629,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
631
629
|
args: ['class']
|
|
632
630
|
}] } });
|
|
633
631
|
|
|
634
|
-
class ListviewComponent {
|
|
635
|
-
}
|
|
636
|
-
ListviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
637
|
-
ListviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ListviewComponent, selector: "ft-listview", ngImport: i0, template: "<p>listview works!</p>\n", styles: [""] });
|
|
638
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListviewComponent, decorators: [{
|
|
639
|
-
type: Component,
|
|
640
|
-
args: [{ selector: 'ft-listview', template: "<p>listview works!</p>\n" }]
|
|
641
|
-
}] });
|
|
642
|
-
|
|
643
632
|
class ExpressionBuilderComponent {
|
|
644
633
|
constructor() {
|
|
645
634
|
this.properties = [
|
|
@@ -702,7 +691,7 @@ class ExpressionBuilderComponent {
|
|
|
702
691
|
}
|
|
703
692
|
}
|
|
704
693
|
ExpressionBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExpressionBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
705
|
-
ExpressionBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ExpressionBuilderComponent, selector: "ft-expression-builder", ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"filterGroupTemplate\" [ngTemplateOutletContext]=\"{filter:filters, parent:null}\">\n</ng-container>\n<ng-template #filterGroupTemplate let-filter=\"filter\" let-parent=\"parent\">\n <div class=\"ft-filter\">\n <div class=\"ft-filter__tools\">\n <button type=\"button\" class=\"filter__button filter__button--icon filter__button--toggle\"\n (click)=\"filter.collapsed = !filter.collapsed\" *ngIf=\"filter.children && filter.children.length > 0\">\n <ft-icon name=\"angle-right\" [ngClass]=\"{'ft-icon--open': !filter.collapsed}\"></ft-icon>\n </button>\n <div class=\"ft-filter__button-group\">\n <button type=\"button\" class=\"filter__button\"\n [ngClass]=\"{'ft-filter__button--active': filter.operator === operator.value}\"\n *ngFor=\"let operator of groupOperators\" (click)=\"filter.operator = operator.value\">{{ operator.label\n }}</button>\n </div>\n <button type=\"button\" class=\"ft-filter__button\" (click)=\"add('filter', filter)\" *ngIf=\"filter.operator\">Agregar\n filtro</button>\n <button type=\"button\" class=\"ft-filter__button\" (click)=\"add('group', filter)\" *ngIf=\"filter.operator\">Agregar\n grupo</button>\n <button type=\"button\" class=\"ft-filter__button filter__button--icon filter__button--remove\"\n (click)=\"remove(filter, parent)\" *ngIf=\"parent\">\n <ft-icon name=\"close\"></ft-icon>\n </button>\n </div>\n <div class=\"ft-filter__children\" *ngIf=\"filter.children && filter.children.length > 0 && !filter.collapsed\">\n <ng-container *ngFor=\"let child of filter.children\">\n <ng-container [ngTemplateOutlet]=\"child.type === 'group' ? filterGroupTemplate : filterTemplate\"\n [ngTemplateOutletContext]=\"{filter:child, parent:filter.children}\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n<ng-template #filterTemplate let-filter=\"filter\" let-parent=\"parent\">\n <div class=\"ft-filter\">\n <div class=\"ft-filter__tools\">\n <select class=\"filter__input\">\n <option *ngFor=\"let property of properties\" value=\"property.value\">{{ property.label }}</option>\n </select>\n <select class=\"ft-filter__input\">\n <option>Mayor que</option>\n <option>Mayor igual que</option>\n <option>Igual que</option>\n <option>Menor que</option>\n <option>Menor igual que</option>\n </select>\n <input type=\"text\" class=\"ft-filter__input\" />\n <button type=\"button\" class=\"filter__button filter__button--icon\" (click)=\"remove(filter, parent)\">\n <ft-icon name=\"close\"></ft-icon>\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:block;padding:2rem}.ft-filter{--focus-color: #00bcd4;--focus-color-rgb: 0, 188, 212;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.5rem}.ft-filter__tools{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:.5rem;overflow:hidden}.ft-filter__children{padding-left:1rem;position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.5rem}.ft-filter__button{border:1px solid rgba(0,0,0,.2);background-color:transparent;border-radius:.25rem;padding:.25rem .5rem;background-color:#ffffff4d}.ft-filter__button--icon{border-color:transparent;background-color:transparent;padding:.25rem}.ft-filter__button--active{background-color:var(--focus-color);color:#fff}.ft-filter__button:not(.ft-filter__button--active):hover{border-color:var(--focus-color);background-color:rgba(var(--focus-color-rgb),.1)}.ft-filter__button:not(.ft-filter__button--active):active{background-color:rgba(var(--focus-color-rgb),.3)}.ft-filter__button:focus{outline:none;border-color:var(--focus-color)}.ft-filter__button .ft-icon{display:block;transition:transform .2s}.ft-filter__button .ft-icon--open{transform:rotate(90deg)}.ft-filter__button-group .ft-filter__button{border-radius:0}.ft-filter__button-group .ft-filter__button:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-right:0}.ft-filter__button-group .ft-filter__button:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.ft-filter__input{background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.25rem;padding:.25rem;transition:box-shadow .2s}.ft-filter__input:hover{border-color:var(--focus-color)}.ft-filter__input:focus{outline:none;border-color:var(--focus-color);box-shadow:0 0 0 2px rgba(var(--focus-color-rgb),.2)}.ft-filter select.ft-filter__input{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .5rem center;background-size:.625rem;padding-right:1.5rem;-webkit-appearance:none;appearance:none}@keyframes slide-right{0%{margin-left:calc(-40px + .5rem)}to{margin-left:0}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "
|
|
694
|
+
ExpressionBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ExpressionBuilderComponent, selector: "ft-expression-builder", ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"filterGroupTemplate\" [ngTemplateOutletContext]=\"{filter:filters, parent:null}\">\n</ng-container>\n<ng-template #filterGroupTemplate let-filter=\"filter\" let-parent=\"parent\">\n <div class=\"ft-filter\">\n <div class=\"ft-filter__tools\">\n <button type=\"button\" class=\"filter__button filter__button--icon filter__button--toggle\"\n (click)=\"filter.collapsed = !filter.collapsed\" *ngIf=\"filter.children && filter.children.length > 0\">\n <ft-icon name=\"angle-right\" [ngClass]=\"{'ft-icon--open': !filter.collapsed}\"></ft-icon>\n </button>\n <div class=\"ft-filter__button-group\">\n <button type=\"button\" class=\"filter__button\"\n [ngClass]=\"{'ft-filter__button--active': filter.operator === operator.value}\"\n *ngFor=\"let operator of groupOperators\" (click)=\"filter.operator = operator.value\">{{ operator.label\n }}</button>\n </div>\n <button type=\"button\" class=\"ft-filter__button\" (click)=\"add('filter', filter)\" *ngIf=\"filter.operator\">Agregar\n filtro</button>\n <button type=\"button\" class=\"ft-filter__button\" (click)=\"add('group', filter)\" *ngIf=\"filter.operator\">Agregar\n grupo</button>\n <button type=\"button\" class=\"ft-filter__button filter__button--icon filter__button--remove\"\n (click)=\"remove(filter, parent)\" *ngIf=\"parent\">\n <ft-icon name=\"close\"></ft-icon>\n </button>\n </div>\n <div class=\"ft-filter__children\" *ngIf=\"filter.children && filter.children.length > 0 && !filter.collapsed\">\n <ng-container *ngFor=\"let child of filter.children\">\n <ng-container [ngTemplateOutlet]=\"child.type === 'group' ? filterGroupTemplate : filterTemplate\"\n [ngTemplateOutletContext]=\"{filter:child, parent:filter.children}\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n<ng-template #filterTemplate let-filter=\"filter\" let-parent=\"parent\">\n <div class=\"ft-filter\">\n <div class=\"ft-filter__tools\">\n <select class=\"filter__input\">\n <option *ngFor=\"let property of properties\" value=\"property.value\">{{ property.label }}</option>\n </select>\n <select class=\"ft-filter__input\">\n <option>Mayor que</option>\n <option>Mayor igual que</option>\n <option>Igual que</option>\n <option>Menor que</option>\n <option>Menor igual que</option>\n </select>\n <input type=\"text\" class=\"ft-filter__input\" />\n <button type=\"button\" class=\"filter__button filter__button--icon\" (click)=\"remove(filter, parent)\">\n <ft-icon name=\"close\"></ft-icon>\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:block;padding:2rem}.ft-filter{--focus-color: #00bcd4;--focus-color-rgb: 0, 188, 212;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.5rem}.ft-filter__tools{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:.5rem;overflow:hidden}.ft-filter__children{padding-left:1rem;position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.5rem}.ft-filter__button{border:1px solid rgba(0,0,0,.2);background-color:transparent;border-radius:.25rem;padding:.25rem .5rem;background-color:#ffffff4d}.ft-filter__button--icon{border-color:transparent;background-color:transparent;padding:.25rem}.ft-filter__button--active{background-color:var(--focus-color);color:#fff}.ft-filter__button:not(.ft-filter__button--active):hover{border-color:var(--focus-color);background-color:rgba(var(--focus-color-rgb),.1)}.ft-filter__button:not(.ft-filter__button--active):active{background-color:rgba(var(--focus-color-rgb),.3)}.ft-filter__button:focus{outline:none;border-color:var(--focus-color)}.ft-filter__button .ft-icon{display:block;transition:transform .2s}.ft-filter__button .ft-icon--open{transform:rotate(90deg)}.ft-filter__button-group .ft-filter__button{border-radius:0}.ft-filter__button-group .ft-filter__button:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-right:0}.ft-filter__button-group .ft-filter__button:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.ft-filter__input{background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.25rem;padding:.25rem;transition:box-shadow .2s}.ft-filter__input:hover{border-color:var(--focus-color)}.ft-filter__input:focus{outline:none;border-color:var(--focus-color);box-shadow:0 0 0 2px rgba(var(--focus-color-rgb),.2)}.ft-filter select.ft-filter__input{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .5rem center;background-size:.625rem;padding-right:1.5rem;-webkit-appearance:none;appearance:none}@keyframes slide-right{0%{margin-left:calc(-40px + .5rem)}to{margin-left:0}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] });
|
|
706
695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExpressionBuilderComponent, decorators: [{
|
|
707
696
|
type: Component,
|
|
708
697
|
args: [{ selector: 'ft-expression-builder', template: "<ng-container [ngTemplateOutlet]=\"filterGroupTemplate\" [ngTemplateOutletContext]=\"{filter:filters, parent:null}\">\n</ng-container>\n<ng-template #filterGroupTemplate let-filter=\"filter\" let-parent=\"parent\">\n <div class=\"ft-filter\">\n <div class=\"ft-filter__tools\">\n <button type=\"button\" class=\"filter__button filter__button--icon filter__button--toggle\"\n (click)=\"filter.collapsed = !filter.collapsed\" *ngIf=\"filter.children && filter.children.length > 0\">\n <ft-icon name=\"angle-right\" [ngClass]=\"{'ft-icon--open': !filter.collapsed}\"></ft-icon>\n </button>\n <div class=\"ft-filter__button-group\">\n <button type=\"button\" class=\"filter__button\"\n [ngClass]=\"{'ft-filter__button--active': filter.operator === operator.value}\"\n *ngFor=\"let operator of groupOperators\" (click)=\"filter.operator = operator.value\">{{ operator.label\n }}</button>\n </div>\n <button type=\"button\" class=\"ft-filter__button\" (click)=\"add('filter', filter)\" *ngIf=\"filter.operator\">Agregar\n filtro</button>\n <button type=\"button\" class=\"ft-filter__button\" (click)=\"add('group', filter)\" *ngIf=\"filter.operator\">Agregar\n grupo</button>\n <button type=\"button\" class=\"ft-filter__button filter__button--icon filter__button--remove\"\n (click)=\"remove(filter, parent)\" *ngIf=\"parent\">\n <ft-icon name=\"close\"></ft-icon>\n </button>\n </div>\n <div class=\"ft-filter__children\" *ngIf=\"filter.children && filter.children.length > 0 && !filter.collapsed\">\n <ng-container *ngFor=\"let child of filter.children\">\n <ng-container [ngTemplateOutlet]=\"child.type === 'group' ? filterGroupTemplate : filterTemplate\"\n [ngTemplateOutletContext]=\"{filter:child, parent:filter.children}\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n<ng-template #filterTemplate let-filter=\"filter\" let-parent=\"parent\">\n <div class=\"ft-filter\">\n <div class=\"ft-filter__tools\">\n <select class=\"filter__input\">\n <option *ngFor=\"let property of properties\" value=\"property.value\">{{ property.label }}</option>\n </select>\n <select class=\"ft-filter__input\">\n <option>Mayor que</option>\n <option>Mayor igual que</option>\n <option>Igual que</option>\n <option>Menor que</option>\n <option>Menor igual que</option>\n </select>\n <input type=\"text\" class=\"ft-filter__input\" />\n <button type=\"button\" class=\"filter__button filter__button--icon\" (click)=\"remove(filter, parent)\">\n <ft-icon name=\"close\"></ft-icon>\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:block;padding:2rem}.ft-filter{--focus-color: #00bcd4;--focus-color-rgb: 0, 188, 212;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.5rem}.ft-filter__tools{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:.5rem;overflow:hidden}.ft-filter__children{padding-left:1rem;position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.5rem}.ft-filter__button{border:1px solid rgba(0,0,0,.2);background-color:transparent;border-radius:.25rem;padding:.25rem .5rem;background-color:#ffffff4d}.ft-filter__button--icon{border-color:transparent;background-color:transparent;padding:.25rem}.ft-filter__button--active{background-color:var(--focus-color);color:#fff}.ft-filter__button:not(.ft-filter__button--active):hover{border-color:var(--focus-color);background-color:rgba(var(--focus-color-rgb),.1)}.ft-filter__button:not(.ft-filter__button--active):active{background-color:rgba(var(--focus-color-rgb),.3)}.ft-filter__button:focus{outline:none;border-color:var(--focus-color)}.ft-filter__button .ft-icon{display:block;transition:transform .2s}.ft-filter__button .ft-icon--open{transform:rotate(90deg)}.ft-filter__button-group .ft-filter__button{border-radius:0}.ft-filter__button-group .ft-filter__button:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-right:0}.ft-filter__button-group .ft-filter__button:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.ft-filter__input{background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.25rem;padding:.25rem;transition:box-shadow .2s}.ft-filter__input:hover{border-color:var(--focus-color)}.ft-filter__input:focus{outline:none;border-color:var(--focus-color);box-shadow:0 0 0 2px rgba(var(--focus-color-rgb),.2)}.ft-filter select.ft-filter__input{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .5rem center;background-size:.625rem;padding-right:1.5rem;-webkit-appearance:none;appearance:none}@keyframes slide-right{0%{margin-left:calc(-40px + .5rem)}to{margin-left:0}}\n"] }]
|
|
@@ -719,7 +708,6 @@ IoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0
|
|
|
719
708
|
RatingComponent,
|
|
720
709
|
ObserveIntersectingDirective,
|
|
721
710
|
TimelineComponent,
|
|
722
|
-
ListviewComponent,
|
|
723
711
|
MessageContentComponent,
|
|
724
712
|
ExpressionBuilderComponent], imports: [CommonModule,
|
|
725
713
|
MatButtonModule,
|
|
@@ -732,7 +720,6 @@ IoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0
|
|
|
732
720
|
RatingComponent,
|
|
733
721
|
ObserveIntersectingDirective,
|
|
734
722
|
TimelineComponent,
|
|
735
|
-
ListviewComponent,
|
|
736
723
|
MessageContentComponent,
|
|
737
724
|
ExpressionBuilderComponent] });
|
|
738
725
|
IoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IoModule, imports: [CommonModule,
|
|
@@ -751,7 +738,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
751
738
|
RatingComponent,
|
|
752
739
|
ObserveIntersectingDirective,
|
|
753
740
|
TimelineComponent,
|
|
754
|
-
ListviewComponent,
|
|
755
741
|
MessageContentComponent,
|
|
756
742
|
ExpressionBuilderComponent
|
|
757
743
|
],
|
|
@@ -770,235 +756,162 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
770
756
|
RatingComponent,
|
|
771
757
|
ObserveIntersectingDirective,
|
|
772
758
|
TimelineComponent,
|
|
773
|
-
ListviewComponent,
|
|
774
759
|
MessageContentComponent,
|
|
775
760
|
ExpressionBuilderComponent
|
|
776
761
|
]
|
|
777
762
|
}]
|
|
778
763
|
}] });
|
|
779
764
|
|
|
780
|
-
class
|
|
781
|
-
constructor(
|
|
782
|
-
this.router = router;
|
|
783
|
-
this.change = new EventEmitter();
|
|
784
|
-
this.iconNameField = 'iconName';
|
|
785
|
-
this.labelField = 'label';
|
|
765
|
+
class CollapsibleComponent {
|
|
766
|
+
constructor() {
|
|
786
767
|
this.class = '';
|
|
768
|
+
this.expanded = true;
|
|
769
|
+
this.header = '';
|
|
787
770
|
}
|
|
788
771
|
get hostClasses() {
|
|
789
772
|
return [
|
|
790
|
-
'ft-
|
|
773
|
+
'ft-collapsible',
|
|
774
|
+
this.expanded ? 'ft-collapsible--show' : '',
|
|
791
775
|
this.class
|
|
792
776
|
].join(' ');
|
|
793
777
|
}
|
|
794
778
|
;
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
if (!item.url || item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
798
|
-
type = 'button';
|
|
799
|
-
}
|
|
800
|
-
else {
|
|
801
|
-
type = 'link';
|
|
802
|
-
}
|
|
803
|
-
return type;
|
|
804
|
-
}
|
|
805
|
-
setItem(item) {
|
|
806
|
-
if (item.url) {
|
|
807
|
-
if (item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
808
|
-
window.location.href = item.url;
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
else if (item.click) {
|
|
812
|
-
item.click();
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
toggleCollapsible(action) {
|
|
816
|
-
var _a;
|
|
817
|
-
action.metadata = action.metadata || {};
|
|
818
|
-
action.metadata.show = !((_a = action.metadata) === null || _a === void 0 ? void 0 : _a.show);
|
|
819
|
-
this.change.emit(action);
|
|
779
|
+
toggleCollapsible() {
|
|
780
|
+
this.expanded = !this.expanded;
|
|
820
781
|
}
|
|
821
782
|
}
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type:
|
|
783
|
+
CollapsibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
784
|
+
CollapsibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: CollapsibleComponent, selector: "ft-collapsible", inputs: { class: "class", expanded: "expanded", header: "header" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<button type=\"button\" class=\"ft-button ft-collapsible__header\" (click)=\"toggleCollapsible()\">\n <div class=\"ft-item\">\n <div class=\"ft-item__label\">{{ header }}</div>\n <ft-icon class=\"ft-item__toggle\" name=\"angle-down\"></ft-icon>\n </div>\n</button>\n<div class=\"ft-collapsible__content\">\n <ng-content></ng-content>\n</div>", dependencies: [{ kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] });
|
|
785
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CollapsibleComponent, decorators: [{
|
|
825
786
|
type: Component,
|
|
826
|
-
args: [{ selector: 'ft-
|
|
827
|
-
}],
|
|
828
|
-
type: Output
|
|
829
|
-
}], iconCollection: [{
|
|
830
|
-
type: Input
|
|
831
|
-
}], iconNameField: [{
|
|
832
|
-
type: Input
|
|
833
|
-
}], iconPath: [{
|
|
834
|
-
type: Input
|
|
835
|
-
}], labelField: [{
|
|
836
|
-
type: Input
|
|
837
|
-
}], items: [{
|
|
838
|
-
type: Input
|
|
839
|
-
}], class: [{
|
|
787
|
+
args: [{ selector: 'ft-collapsible', template: "<button type=\"button\" class=\"ft-button ft-collapsible__header\" (click)=\"toggleCollapsible()\">\n <div class=\"ft-item\">\n <div class=\"ft-item__label\">{{ header }}</div>\n <ft-icon class=\"ft-item__toggle\" name=\"angle-down\"></ft-icon>\n </div>\n</button>\n<div class=\"ft-collapsible__content\">\n <ng-content></ng-content>\n</div>" }]
|
|
788
|
+
}], propDecorators: { class: [{
|
|
840
789
|
type: Input
|
|
841
790
|
}], hostClasses: [{
|
|
842
791
|
type: HostBinding,
|
|
843
792
|
args: ['class']
|
|
793
|
+
}], expanded: [{
|
|
794
|
+
type: Input
|
|
795
|
+
}], header: [{
|
|
796
|
+
type: Input
|
|
844
797
|
}] } });
|
|
845
798
|
|
|
846
|
-
class
|
|
799
|
+
class LayoutModule {
|
|
800
|
+
}
|
|
801
|
+
LayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
802
|
+
LayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, declarations: [CollapsibleComponent], imports: [CommonModule,
|
|
803
|
+
IoModule], exports: [CollapsibleComponent] });
|
|
804
|
+
LayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, imports: [CommonModule,
|
|
805
|
+
IoModule] });
|
|
806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, decorators: [{
|
|
807
|
+
type: NgModule,
|
|
808
|
+
args: [{
|
|
809
|
+
declarations: [
|
|
810
|
+
CollapsibleComponent
|
|
811
|
+
],
|
|
812
|
+
exports: [
|
|
813
|
+
CollapsibleComponent
|
|
814
|
+
],
|
|
815
|
+
imports: [
|
|
816
|
+
CommonModule,
|
|
817
|
+
IoModule
|
|
818
|
+
]
|
|
819
|
+
}]
|
|
820
|
+
}] });
|
|
821
|
+
|
|
822
|
+
class ListComponent {
|
|
847
823
|
constructor() {
|
|
824
|
+
this.actionSelected = new EventEmitter();
|
|
848
825
|
this.iconNameField = 'iconName';
|
|
849
826
|
this.labelField = 'label';
|
|
850
|
-
this.
|
|
851
|
-
this.
|
|
827
|
+
this.selectable = null;
|
|
828
|
+
this.selection = [];
|
|
852
829
|
this.class = '';
|
|
830
|
+
this.actionSelected.subscribe((action) => {
|
|
831
|
+
switch (this.selectable) {
|
|
832
|
+
case 'single':
|
|
833
|
+
this.selection = [action];
|
|
834
|
+
break;
|
|
835
|
+
case 'multiple':
|
|
836
|
+
this.selection.push(action);
|
|
837
|
+
break;
|
|
838
|
+
}
|
|
839
|
+
});
|
|
853
840
|
}
|
|
854
841
|
get hostClasses() {
|
|
855
842
|
return [
|
|
856
|
-
'ft-
|
|
857
|
-
this.class
|
|
858
|
-
this.position
|
|
843
|
+
'ft-list',
|
|
844
|
+
this.class
|
|
859
845
|
].join(' ');
|
|
860
846
|
}
|
|
861
847
|
;
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
if (!
|
|
865
|
-
|
|
848
|
+
updateAction(action) {
|
|
849
|
+
action.metadata = action.metadata || {};
|
|
850
|
+
if (!action.id) {
|
|
851
|
+
action.id = Math.floor(Math.random() * 1000000).toString();
|
|
852
|
+
}
|
|
853
|
+
if (!action.url) {
|
|
854
|
+
action.metadata.componentType = 'button';
|
|
866
855
|
}
|
|
867
856
|
else {
|
|
868
|
-
|
|
857
|
+
action.metadata.componentType = 'link';
|
|
858
|
+
const urlParts = action.url.split('?');
|
|
859
|
+
if (urlParts.length > 1) {
|
|
860
|
+
const queryString = urlParts.at(-1);
|
|
861
|
+
const searchParams = new URLSearchParams(queryString);
|
|
862
|
+
action.url = urlParts[0];
|
|
863
|
+
action.metadata.queryParams = Object.fromEntries(searchParams.entries());
|
|
864
|
+
}
|
|
869
865
|
}
|
|
870
|
-
return
|
|
866
|
+
return action;
|
|
871
867
|
}
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
}
|
|
868
|
+
handleClick(action) {
|
|
869
|
+
this.actionSelected.emit(action);
|
|
870
|
+
if (action.url && action.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
871
|
+
window.location.href = action.url;
|
|
877
872
|
}
|
|
878
|
-
else if (
|
|
879
|
-
|
|
873
|
+
else if (typeof action.click === 'function') {
|
|
874
|
+
action.click();
|
|
880
875
|
}
|
|
881
876
|
}
|
|
882
877
|
toggleCollapsible(action) {
|
|
883
|
-
|
|
878
|
+
var _a;
|
|
879
|
+
action.metadata = action.metadata || {};
|
|
880
|
+
action.metadata.show = !((_a = action.metadata) === null || _a === void 0 ? void 0 : _a.show);
|
|
881
|
+
this.actionSelected.emit(action);
|
|
884
882
|
}
|
|
885
|
-
|
|
886
|
-
return
|
|
883
|
+
trackById(index, action) {
|
|
884
|
+
return action.id || index;
|
|
887
885
|
}
|
|
888
886
|
}
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type:
|
|
887
|
+
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
888
|
+
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ListComponent, selector: "ft-list", inputs: { iconCollection: "iconCollection", iconNameField: "iconNameField", iconPath: "iconPath", labelField: "labelField", items: "items", selectable: "selectable", selection: "selection", itemTemplate: "itemTemplate", class: "class" }, outputs: { actionSelected: "actionSelected" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"switchTemplate; context: { children: items }\"></ng-container>\n<ng-template #switchTemplate let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let action of children; trackBy: trackById\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsibleTemplate; context: { action: action }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { action: action }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { action: updateAction(action) }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #actionTemplate let-action=\"action\">\n <ng-container [ngSwitch]=\"action.metadata.componentType\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" class=\"ft-button ft-list__item\"\n [ngClass]=\"[action.class || '', selectable && selection.indexOf(action) !== -1 ? 'ft-list__item--selected' : '']\"\n (click)=\"handleClick(action)\" [disabled]=\"action.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate || textTemplate; context: { action: action }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"action.url\" [queryParams]=\"action.metadata?.queryParams\"\n routerLinkActive=\"ft-list__item--active\" class=\"ft-button ft-list__item\"\n [ngClass]=\"[action.class || '', selectable && selection.indexOf(action) !== -1 ? 'ft-list__item--selected' : '']\"\n (click)=\"handleClick(action)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate || textTemplate; context: { action: action }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsibleTemplate let-action=\"action\">\n <ft-collapsible [header]=\"action[labelField]\" [expanded]=\"action.metadata?.show\">\n <div class=\"ft-list\">\n <ng-container *ngTemplateOutlet=\"switchTemplate; context: { children: action.children }\"></ng-container>\n </div>\n </ft-collapsible>\n</ng-template>\n<ng-template #headerTemplate let-action=\"action\">\n <div class=\"ft-list__header\" [ngClass]=\"action.class\">\n {{ action[labelField] }}\n </div>\n</ng-template>\n<ng-template #textTemplate let-action=\"action\">\n <div class=\"ft-item\">\n <ft-icon class=\"ft-item__icon\" *ngIf=\"action[iconNameField] || (selectable && selection.indexOf(action) !== -1)\"\n [name]=\"action[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"ft-item__label\">{{ action[labelField] }}</div>\n </div>\n</ng-template>", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }, { kind: "component", type: CollapsibleComponent, selector: "ft-collapsible", inputs: ["class", "expanded", "header"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
|
|
889
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListComponent, decorators: [{
|
|
892
890
|
type: Component,
|
|
893
|
-
args: [{ selector: 'ft-
|
|
894
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
891
|
+
args: [{ selector: 'ft-list', template: "<ng-container *ngTemplateOutlet=\"switchTemplate; context: { children: items }\"></ng-container>\n<ng-template #switchTemplate let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let action of children; trackBy: trackById\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsibleTemplate; context: { action: action }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { action: action }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { action: updateAction(action) }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #actionTemplate let-action=\"action\">\n <ng-container [ngSwitch]=\"action.metadata.componentType\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" class=\"ft-button ft-list__item\"\n [ngClass]=\"[action.class || '', selectable && selection.indexOf(action) !== -1 ? 'ft-list__item--selected' : '']\"\n (click)=\"handleClick(action)\" [disabled]=\"action.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate || textTemplate; context: { action: action }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"action.url\" [queryParams]=\"action.metadata?.queryParams\"\n routerLinkActive=\"ft-list__item--active\" class=\"ft-button ft-list__item\"\n [ngClass]=\"[action.class || '', selectable && selection.indexOf(action) !== -1 ? 'ft-list__item--selected' : '']\"\n (click)=\"handleClick(action)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate || textTemplate; context: { action: action }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsibleTemplate let-action=\"action\">\n <ft-collapsible [header]=\"action[labelField]\" [expanded]=\"action.metadata?.show\">\n <div class=\"ft-list\">\n <ng-container *ngTemplateOutlet=\"switchTemplate; context: { children: action.children }\"></ng-container>\n </div>\n </ft-collapsible>\n</ng-template>\n<ng-template #headerTemplate let-action=\"action\">\n <div class=\"ft-list__header\" [ngClass]=\"action.class\">\n {{ action[labelField] }}\n </div>\n</ng-template>\n<ng-template #textTemplate let-action=\"action\">\n <div class=\"ft-item\">\n <ft-icon class=\"ft-item__icon\" *ngIf=\"action[iconNameField] || (selectable && selection.indexOf(action) !== -1)\"\n [name]=\"action[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"ft-item__label\">{{ action[labelField] }}</div>\n </div>\n</ng-template>" }]
|
|
892
|
+
}], ctorParameters: function () { return []; }, propDecorators: { actionSelected: [{
|
|
893
|
+
type: Output
|
|
894
|
+
}], iconCollection: [{
|
|
895
895
|
type: Input
|
|
896
896
|
}], iconNameField: [{
|
|
897
897
|
type: Input
|
|
898
|
-
}],
|
|
898
|
+
}], iconPath: [{
|
|
899
899
|
type: Input
|
|
900
|
-
}],
|
|
900
|
+
}], labelField: [{
|
|
901
901
|
type: Input
|
|
902
902
|
}], items: [{
|
|
903
903
|
type: Input
|
|
904
|
-
}],
|
|
904
|
+
}], selectable: [{
|
|
905
905
|
type: Input
|
|
906
|
-
}],
|
|
906
|
+
}], selection: [{
|
|
907
907
|
type: Input
|
|
908
|
-
}],
|
|
909
|
-
type: HostBinding,
|
|
910
|
-
args: ['class']
|
|
911
|
-
}] } });
|
|
912
|
-
|
|
913
|
-
class SearchboxComponent {
|
|
914
|
-
constructor() {
|
|
915
|
-
this.execute = new EventEmitter();
|
|
916
|
-
this.showChange = new EventEmitter();
|
|
917
|
-
this.class = '';
|
|
918
|
-
this.onChange = (_) => { };
|
|
919
|
-
this.onTouched = (_) => { };
|
|
920
|
-
}
|
|
921
|
-
get hostClasses() {
|
|
922
|
-
return [
|
|
923
|
-
'ft-searchbox',
|
|
924
|
-
this.class,
|
|
925
|
-
this.shown ? 'show' : ''
|
|
926
|
-
].join(' ');
|
|
927
|
-
}
|
|
928
|
-
;
|
|
929
|
-
set show(value) {
|
|
930
|
-
this.shown = value;
|
|
931
|
-
if (value) {
|
|
932
|
-
setTimeout(() => {
|
|
933
|
-
this.getNativeElement().focus();
|
|
934
|
-
}, 300);
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
|
-
set value(value) {
|
|
938
|
-
this._value = value || '';
|
|
939
|
-
this.getNativeElement().value = this._value;
|
|
940
|
-
this.onChange(this._value);
|
|
941
|
-
this.onTouched(this._value);
|
|
942
|
-
}
|
|
943
|
-
get value() {
|
|
944
|
-
return this._value;
|
|
945
|
-
}
|
|
946
|
-
ngOnInit() {
|
|
947
|
-
}
|
|
948
|
-
closeSearch() {
|
|
949
|
-
this.showChange.emit(false);
|
|
950
|
-
}
|
|
951
|
-
getNativeElement() {
|
|
952
|
-
const input = this.placeholder ? this.inputPlaceholder : this.input;
|
|
953
|
-
return input.nativeElement;
|
|
954
|
-
}
|
|
955
|
-
registerOnChange(fn) {
|
|
956
|
-
this.onChange = fn;
|
|
957
|
-
}
|
|
958
|
-
registerOnTouched(fn) {
|
|
959
|
-
this.onTouched = fn;
|
|
960
|
-
}
|
|
961
|
-
setDisabledState(isDisabled) {
|
|
962
|
-
this.disabled = isDisabled;
|
|
963
|
-
}
|
|
964
|
-
onSearch(event) {
|
|
965
|
-
event.preventDefault();
|
|
966
|
-
this.getNativeElement().value = '';
|
|
967
|
-
this.execute.emit(this._value);
|
|
968
|
-
}
|
|
969
|
-
updateValue(event) {
|
|
970
|
-
this.value = event.target.value;
|
|
971
|
-
}
|
|
972
|
-
writeValue(value) {
|
|
973
|
-
this.value = value;
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
SearchboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SearchboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
977
|
-
SearchboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: SearchboxComponent, selector: "ft-searchbox", inputs: { placeholder: "placeholder", class: "class", show: "show", value: "value" }, outputs: { execute: "execute", showChange: "showChange" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputPlaceholder", first: true, predicate: ["inputPlaceholder"], descendants: true }], ngImport: i0, template: "<form (submit)=\"onSearch($event)\" class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <button type=\"button\" mat-icon-button class=\"p-2 mr-2\" (click)=\"closeSearch()\">\n <ft-icon name=\"arrow-left\" size=\"2\"></ft-icon>\n </button>\n <input #input type=\"search\" matInput class=\"flex-grow-1\" i18n-placeholder placeholder=\"Search criteria\"\n [disabled]=\"disabled\" (change)=\"updateValue($event)\" (keyup)=\"updateValue($event)\" *ngIf=\"!placeholder\" />\n <input #inputPlaceholder type=\"search\" matInput class=\"flex-grow-1\" [placeholder]=\"placeholder\"\n [disabled]=\"disabled\" (change)=\"updateValue($event)\" (keyup)=\"updateValue($event)\" *ngIf=\"placeholder\" />\n <button type=\"submit\" mat-icon-button class=\"p-2 ml-2\">\n <ft-icon name=\"search\" size=\"2\"></ft-icon>\n </button>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "size", "src", "class"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
978
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SearchboxComponent, decorators: [{
|
|
979
|
-
type: Component,
|
|
980
|
-
args: [{ selector: 'ft-searchbox', template: "<form (submit)=\"onSearch($event)\" class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <button type=\"button\" mat-icon-button class=\"p-2 mr-2\" (click)=\"closeSearch()\">\n <ft-icon name=\"arrow-left\" size=\"2\"></ft-icon>\n </button>\n <input #input type=\"search\" matInput class=\"flex-grow-1\" i18n-placeholder placeholder=\"Search criteria\"\n [disabled]=\"disabled\" (change)=\"updateValue($event)\" (keyup)=\"updateValue($event)\" *ngIf=\"!placeholder\" />\n <input #inputPlaceholder type=\"search\" matInput class=\"flex-grow-1\" [placeholder]=\"placeholder\"\n [disabled]=\"disabled\" (change)=\"updateValue($event)\" (keyup)=\"updateValue($event)\" *ngIf=\"placeholder\" />\n <button type=\"submit\" mat-icon-button class=\"p-2 ml-2\">\n <ft-icon name=\"search\" size=\"2\"></ft-icon>\n </button>\n </div>\n</form>" }]
|
|
981
|
-
}], ctorParameters: function () { return []; }, propDecorators: { input: [{
|
|
982
|
-
type: ViewChild,
|
|
983
|
-
args: ['input', { static: false }]
|
|
984
|
-
}], inputPlaceholder: [{
|
|
985
|
-
type: ViewChild,
|
|
986
|
-
args: ['inputPlaceholder', { static: false }]
|
|
987
|
-
}], placeholder: [{
|
|
908
|
+
}], itemTemplate: [{
|
|
988
909
|
type: Input
|
|
989
|
-
}], execute: [{
|
|
990
|
-
type: Output
|
|
991
|
-
}], showChange: [{
|
|
992
|
-
type: Output
|
|
993
910
|
}], class: [{
|
|
994
911
|
type: Input
|
|
995
912
|
}], hostClasses: [{
|
|
996
913
|
type: HostBinding,
|
|
997
914
|
args: ['class']
|
|
998
|
-
}], show: [{
|
|
999
|
-
type: Input
|
|
1000
|
-
}], value: [{
|
|
1001
|
-
type: Input
|
|
1002
915
|
}] } });
|
|
1003
916
|
|
|
1004
917
|
class ToolbarComponent {
|
|
@@ -1028,7 +941,7 @@ class ToolbarComponent {
|
|
|
1028
941
|
}
|
|
1029
942
|
}
|
|
1030
943
|
ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1031
|
-
ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ToolbarComponent, selector: "ft-toolbar", inputs: { actionOptions: "actionOptions", currentTitleOption: "currentTitleOption", title: "title", titleOptions: "titleOptions", class: "class" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div (ftObserveIntersecting)=\"setOverlapped($event)\" [ftObserveIntersectingOptions]=\"rootMargin\"></div>\n<div class=\"content\">\n <div class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"title ml-2 ml-md-0 mb-0 mr-auto\" *ngIf=\"!titleOptions; else titleForm\">{{ title }}</h5>\n <ng-container *ngFor=\"let option of actionOptions\">\n <button type=\"button\" class=\"p-2\" mat-button [ngClass]=\"option.class || ''\" *ngIf=\"!option.children\"\n (click)=\"option.click ? option.click($event) : null\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <ng-container *ngIf=\"option.children\">\n <button type=\"button\" class=\"p-2\" mat-button [matMenuTriggerFor]=\"menu\"\n [ngClass]=\"option.class || ''\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}\n </div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let childOption of option.children\"\n (click)=\"childOption.click ? childOption.click($event): null\">{{ childOption.label\n }}</button>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-template #titleForm>\n <button type=\"button\" class=\"title p-2 pl-3 mr-auto\" mat-button [matMenuTriggerFor]=\"titleMenu\">\n <div class=\"d-flex align-items-center\">\n <div class=\"label mr-1\">{{ currentTitleOption.label }}</div>\n <ft-icon name=\"angle-down\" size=\"1\"></ft-icon>\n </div>\n </button>\n <mat-menu #titleMenu=\"matMenu\">\n <button class=\"mr-4\" mat-menu-item [disabled]=\"option == currentTitleOption\" *ngFor=\"let option of titleOptions\"\n (click)=\"currentTitleOption = option; option.click ? option.click($event) : null\">\n <div class=\"d-flex align-items-center\">\n <ft-icon [name]=\"option == currentTitleOption? 'check' : ''\" class=\"mr-1\"></ft-icon>\n <div>{{ option.label }}</div>\n </div>\n </button>\n </mat-menu>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "
|
|
944
|
+
ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ToolbarComponent, selector: "ft-toolbar", inputs: { actionOptions: "actionOptions", currentTitleOption: "currentTitleOption", title: "title", titleOptions: "titleOptions", class: "class" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div (ftObserveIntersecting)=\"setOverlapped($event)\" [ftObserveIntersectingOptions]=\"rootMargin\"></div>\n<div class=\"content\">\n <div class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"title ml-2 ml-md-0 mb-0 mr-auto\" *ngIf=\"!titleOptions; else titleForm\">{{ title }}</h5>\n <ng-container *ngFor=\"let option of actionOptions\">\n <button type=\"button\" class=\"p-2\" mat-button [ngClass]=\"option.class || ''\" *ngIf=\"!option.children\"\n (click)=\"option.click ? option.click($event) : null\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <ng-container *ngIf=\"option.children\">\n <button type=\"button\" class=\"p-2\" mat-button [matMenuTriggerFor]=\"menu\"\n [ngClass]=\"option.class || ''\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}\n </div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let childOption of option.children\"\n (click)=\"childOption.click ? childOption.click($event): null\">{{ childOption.label\n }}</button>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-template #titleForm>\n <button type=\"button\" class=\"title p-2 pl-3 mr-auto\" mat-button [matMenuTriggerFor]=\"titleMenu\">\n <div class=\"d-flex align-items-center\">\n <div class=\"label mr-1\">{{ currentTitleOption.label }}</div>\n <ft-icon name=\"angle-down\" size=\"1\"></ft-icon>\n </div>\n </button>\n <mat-menu #titleMenu=\"matMenu\">\n <button class=\"mr-4\" mat-menu-item [disabled]=\"option == currentTitleOption\" *ngFor=\"let option of titleOptions\"\n (click)=\"currentTitleOption = option; option.click ? option.click($event) : null\">\n <div class=\"d-flex align-items-center\">\n <ft-icon [name]=\"option == currentTitleOption? 'check' : ''\" class=\"mr-1\"></ft-icon>\n <div>{{ option.label }}</div>\n </div>\n </button>\n </mat-menu>\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }, { kind: "directive", type: ObserveIntersectingDirective, selector: "[ftObserveIntersecting]", inputs: ["ftObserveIntersectingOptions"], outputs: ["ftObserveIntersecting"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
|
1032
945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
1033
946
|
type: Component,
|
|
1034
947
|
args: [{ selector: 'ft-toolbar', template: "<div (ftObserveIntersecting)=\"setOverlapped($event)\" [ftObserveIntersectingOptions]=\"rootMargin\"></div>\n<div class=\"content\">\n <div class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"title ml-2 ml-md-0 mb-0 mr-auto\" *ngIf=\"!titleOptions; else titleForm\">{{ title }}</h5>\n <ng-container *ngFor=\"let option of actionOptions\">\n <button type=\"button\" class=\"p-2\" mat-button [ngClass]=\"option.class || ''\" *ngIf=\"!option.children\"\n (click)=\"option.click ? option.click($event) : null\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <ng-container *ngIf=\"option.children\">\n <button type=\"button\" class=\"p-2\" mat-button [matMenuTriggerFor]=\"menu\"\n [ngClass]=\"option.class || ''\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}\n </div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let childOption of option.children\"\n (click)=\"childOption.click ? childOption.click($event): null\">{{ childOption.label\n }}</button>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-template #titleForm>\n <button type=\"button\" class=\"title p-2 pl-3 mr-auto\" mat-button [matMenuTriggerFor]=\"titleMenu\">\n <div class=\"d-flex align-items-center\">\n <div class=\"label mr-1\">{{ currentTitleOption.label }}</div>\n <ft-icon name=\"angle-down\" size=\"1\"></ft-icon>\n </div>\n </button>\n <mat-menu #titleMenu=\"matMenu\">\n <button class=\"mr-4\" mat-menu-item [disabled]=\"option == currentTitleOption\" *ngFor=\"let option of titleOptions\"\n (click)=\"currentTitleOption = option; option.click ? option.click($event) : null\">\n <div class=\"d-flex align-items-center\">\n <ft-icon [name]=\"option == currentTitleOption? 'check' : ''\" class=\"mr-1\"></ft-icon>\n <div>{{ option.label }}</div>\n </div>\n </button>\n </mat-menu>\n</ng-template>" }]
|
|
@@ -1051,18 +964,16 @@ class NavigationModule {
|
|
|
1051
964
|
}
|
|
1052
965
|
NavigationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1053
966
|
NavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: NavigationModule, declarations: [ListComponent,
|
|
1054
|
-
|
|
1055
|
-
ToolbarComponent,
|
|
1056
|
-
SearchboxComponent], imports: [CommonModule,
|
|
967
|
+
ToolbarComponent], imports: [CommonModule,
|
|
1057
968
|
IoModule,
|
|
969
|
+
LayoutModule,
|
|
1058
970
|
RouterModule,
|
|
1059
971
|
MatButtonModule,
|
|
1060
972
|
MatMenuModule], exports: [ListComponent,
|
|
1061
|
-
|
|
1062
|
-
ToolbarComponent,
|
|
1063
|
-
SearchboxComponent] });
|
|
973
|
+
ToolbarComponent] });
|
|
1064
974
|
NavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NavigationModule, imports: [CommonModule,
|
|
1065
975
|
IoModule,
|
|
976
|
+
LayoutModule,
|
|
1066
977
|
RouterModule,
|
|
1067
978
|
MatButtonModule,
|
|
1068
979
|
MatMenuModule] });
|
|
@@ -1071,19 +982,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1071
982
|
args: [{
|
|
1072
983
|
declarations: [
|
|
1073
984
|
ListComponent,
|
|
1074
|
-
|
|
1075
|
-
ToolbarComponent,
|
|
1076
|
-
SearchboxComponent
|
|
985
|
+
ToolbarComponent
|
|
1077
986
|
],
|
|
1078
987
|
exports: [
|
|
1079
988
|
ListComponent,
|
|
1080
|
-
|
|
1081
|
-
ToolbarComponent,
|
|
1082
|
-
SearchboxComponent
|
|
989
|
+
ToolbarComponent
|
|
1083
990
|
],
|
|
1084
991
|
imports: [
|
|
1085
992
|
CommonModule,
|
|
1086
993
|
IoModule,
|
|
994
|
+
LayoutModule,
|
|
1087
995
|
RouterModule,
|
|
1088
996
|
MatButtonModule,
|
|
1089
997
|
MatMenuModule
|
|
@@ -1104,11 +1012,15 @@ class UiModule {
|
|
|
1104
1012
|
UiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1105
1013
|
UiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: UiModule, imports: [CommonModule,
|
|
1106
1014
|
IoModule,
|
|
1015
|
+
LayoutModule,
|
|
1107
1016
|
NavigationModule], exports: [IoModule,
|
|
1017
|
+
LayoutModule,
|
|
1108
1018
|
NavigationModule] });
|
|
1109
1019
|
UiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: UiModule, imports: [CommonModule,
|
|
1110
1020
|
IoModule,
|
|
1021
|
+
LayoutModule,
|
|
1111
1022
|
NavigationModule, IoModule,
|
|
1023
|
+
LayoutModule,
|
|
1112
1024
|
NavigationModule] });
|
|
1113
1025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: UiModule, decorators: [{
|
|
1114
1026
|
type: NgModule,
|
|
@@ -1117,10 +1029,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1117
1029
|
imports: [
|
|
1118
1030
|
CommonModule,
|
|
1119
1031
|
IoModule,
|
|
1032
|
+
LayoutModule,
|
|
1120
1033
|
NavigationModule
|
|
1121
1034
|
],
|
|
1122
1035
|
exports: [
|
|
1123
1036
|
IoModule,
|
|
1037
|
+
LayoutModule,
|
|
1124
1038
|
NavigationModule
|
|
1125
1039
|
]
|
|
1126
1040
|
}]
|
|
@@ -1134,6 +1048,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1134
1048
|
* Generated bundle index. Do not edit.
|
|
1135
1049
|
*/
|
|
1136
1050
|
|
|
1137
|
-
export { AvatarComponent, ExpressionBuilderComponent, IconComponent, ImageComponent, IoModule,
|
|
1051
|
+
export { AvatarComponent, CollapsibleComponent, ExpressionBuilderComponent, IconComponent, ImageComponent, IoModule, LayoutModule, ListComponent, MessageComponent, MessageContentComponent, MessageService, NavigationModule, ObserveIntersectingDirective, ProgressComponent, ProgressService, RatingComponent, TimelineComponent, ToolbarComponent, UiModule };
|
|
1138
1052
|
//# sourceMappingURL=factor_ec-ui.mjs.map
|
|
1139
1053
|
//# sourceMappingURL=factor_ec-ui.mjs.map
|