@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 () { return [{ type: undefined, decorators: [{
|
|
161
161
|
type: Inject,
|
|
162
162
|
args: ['FactorUiConfiguration']
|
|
@@ -168,8 +168,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
168
168
|
type: Input
|
|
169
169
|
}], path: [{
|
|
170
170
|
type: Input
|
|
171
|
-
}], size: [{
|
|
172
|
-
type: Input
|
|
173
171
|
}], src: [{
|
|
174
172
|
type: Input
|
|
175
173
|
}], class: [{
|
|
@@ -236,10 +234,10 @@ class ImageComponent {
|
|
|
236
234
|
}
|
|
237
235
|
}
|
|
238
236
|
ImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ImageComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
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 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", "
|
|
237
|
+
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"] }] });
|
|
240
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ImageComponent, decorators: [{
|
|
241
239
|
type: Component,
|
|
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 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"] }]
|
|
240
|
+
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"] }]
|
|
243
241
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
|
|
244
242
|
type: Input
|
|
245
243
|
}], error: [{
|
|
@@ -282,10 +280,10 @@ class MessageComponent {
|
|
|
282
280
|
}
|
|
283
281
|
}
|
|
284
282
|
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 });
|
|
285
|
-
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\"
|
|
283
|
+
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"] }] });
|
|
286
284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MessageComponent, decorators: [{
|
|
287
285
|
type: Component,
|
|
288
|
-
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\"
|
|
286
|
+
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"] }]
|
|
289
287
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
290
288
|
type: Inject,
|
|
291
289
|
args: [MAT_DIALOG_DATA]
|
|
@@ -623,15 +621,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
623
621
|
args: ['class']
|
|
624
622
|
}] } });
|
|
625
623
|
|
|
626
|
-
class ListviewComponent {
|
|
627
|
-
}
|
|
628
|
-
ListviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
629
|
-
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: [""] });
|
|
630
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListviewComponent, decorators: [{
|
|
631
|
-
type: Component,
|
|
632
|
-
args: [{ selector: 'ft-listview', template: "<p>listview works!</p>\n" }]
|
|
633
|
-
}] });
|
|
634
|
-
|
|
635
624
|
class ExpressionBuilderComponent {
|
|
636
625
|
constructor() {
|
|
637
626
|
this.properties = [
|
|
@@ -694,7 +683,7 @@ class ExpressionBuilderComponent {
|
|
|
694
683
|
}
|
|
695
684
|
}
|
|
696
685
|
ExpressionBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExpressionBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
697
|
-
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", "
|
|
686
|
+
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"] }] });
|
|
698
687
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExpressionBuilderComponent, decorators: [{
|
|
699
688
|
type: Component,
|
|
700
689
|
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"] }]
|
|
@@ -711,7 +700,6 @@ IoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0
|
|
|
711
700
|
RatingComponent,
|
|
712
701
|
ObserveIntersectingDirective,
|
|
713
702
|
TimelineComponent,
|
|
714
|
-
ListviewComponent,
|
|
715
703
|
MessageContentComponent,
|
|
716
704
|
ExpressionBuilderComponent], imports: [CommonModule,
|
|
717
705
|
MatButtonModule,
|
|
@@ -724,7 +712,6 @@ IoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0
|
|
|
724
712
|
RatingComponent,
|
|
725
713
|
ObserveIntersectingDirective,
|
|
726
714
|
TimelineComponent,
|
|
727
|
-
ListviewComponent,
|
|
728
715
|
MessageContentComponent,
|
|
729
716
|
ExpressionBuilderComponent] });
|
|
730
717
|
IoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IoModule, imports: [CommonModule,
|
|
@@ -743,7 +730,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
743
730
|
RatingComponent,
|
|
744
731
|
ObserveIntersectingDirective,
|
|
745
732
|
TimelineComponent,
|
|
746
|
-
ListviewComponent,
|
|
747
733
|
MessageContentComponent,
|
|
748
734
|
ExpressionBuilderComponent
|
|
749
735
|
],
|
|
@@ -762,234 +748,161 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
762
748
|
RatingComponent,
|
|
763
749
|
ObserveIntersectingDirective,
|
|
764
750
|
TimelineComponent,
|
|
765
|
-
ListviewComponent,
|
|
766
751
|
MessageContentComponent,
|
|
767
752
|
ExpressionBuilderComponent
|
|
768
753
|
]
|
|
769
754
|
}]
|
|
770
755
|
}] });
|
|
771
756
|
|
|
772
|
-
class
|
|
773
|
-
constructor(
|
|
774
|
-
this.router = router;
|
|
775
|
-
this.change = new EventEmitter();
|
|
776
|
-
this.iconNameField = 'iconName';
|
|
777
|
-
this.labelField = 'label';
|
|
757
|
+
class CollapsibleComponent {
|
|
758
|
+
constructor() {
|
|
778
759
|
this.class = '';
|
|
760
|
+
this.expanded = true;
|
|
761
|
+
this.header = '';
|
|
779
762
|
}
|
|
780
763
|
get hostClasses() {
|
|
781
764
|
return [
|
|
782
|
-
'ft-
|
|
765
|
+
'ft-collapsible',
|
|
766
|
+
this.expanded ? 'ft-collapsible--show' : '',
|
|
783
767
|
this.class
|
|
784
768
|
].join(' ');
|
|
785
769
|
}
|
|
786
770
|
;
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
if (!item.url || item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
790
|
-
type = 'button';
|
|
791
|
-
}
|
|
792
|
-
else {
|
|
793
|
-
type = 'link';
|
|
794
|
-
}
|
|
795
|
-
return type;
|
|
796
|
-
}
|
|
797
|
-
setItem(item) {
|
|
798
|
-
if (item.url) {
|
|
799
|
-
if (item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
800
|
-
window.location.href = item.url;
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
else if (item.click) {
|
|
804
|
-
item.click();
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
toggleCollapsible(action) {
|
|
808
|
-
action.metadata = action.metadata || {};
|
|
809
|
-
action.metadata.show = !action.metadata?.show;
|
|
810
|
-
this.change.emit(action);
|
|
771
|
+
toggleCollapsible() {
|
|
772
|
+
this.expanded = !this.expanded;
|
|
811
773
|
}
|
|
812
774
|
}
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type:
|
|
775
|
+
CollapsibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
776
|
+
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"] }] });
|
|
777
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CollapsibleComponent, decorators: [{
|
|
816
778
|
type: Component,
|
|
817
|
-
args: [{ selector: 'ft-
|
|
818
|
-
}],
|
|
819
|
-
type: Output
|
|
820
|
-
}], iconCollection: [{
|
|
821
|
-
type: Input
|
|
822
|
-
}], iconNameField: [{
|
|
823
|
-
type: Input
|
|
824
|
-
}], iconPath: [{
|
|
825
|
-
type: Input
|
|
826
|
-
}], labelField: [{
|
|
827
|
-
type: Input
|
|
828
|
-
}], items: [{
|
|
829
|
-
type: Input
|
|
830
|
-
}], class: [{
|
|
779
|
+
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>" }]
|
|
780
|
+
}], propDecorators: { class: [{
|
|
831
781
|
type: Input
|
|
832
782
|
}], hostClasses: [{
|
|
833
783
|
type: HostBinding,
|
|
834
784
|
args: ['class']
|
|
785
|
+
}], expanded: [{
|
|
786
|
+
type: Input
|
|
787
|
+
}], header: [{
|
|
788
|
+
type: Input
|
|
835
789
|
}] } });
|
|
836
790
|
|
|
837
|
-
class
|
|
791
|
+
class LayoutModule {
|
|
792
|
+
}
|
|
793
|
+
LayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
794
|
+
LayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, declarations: [CollapsibleComponent], imports: [CommonModule,
|
|
795
|
+
IoModule], exports: [CollapsibleComponent] });
|
|
796
|
+
LayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, imports: [CommonModule,
|
|
797
|
+
IoModule] });
|
|
798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LayoutModule, decorators: [{
|
|
799
|
+
type: NgModule,
|
|
800
|
+
args: [{
|
|
801
|
+
declarations: [
|
|
802
|
+
CollapsibleComponent
|
|
803
|
+
],
|
|
804
|
+
exports: [
|
|
805
|
+
CollapsibleComponent
|
|
806
|
+
],
|
|
807
|
+
imports: [
|
|
808
|
+
CommonModule,
|
|
809
|
+
IoModule
|
|
810
|
+
]
|
|
811
|
+
}]
|
|
812
|
+
}] });
|
|
813
|
+
|
|
814
|
+
class ListComponent {
|
|
838
815
|
constructor() {
|
|
816
|
+
this.actionSelected = new EventEmitter();
|
|
839
817
|
this.iconNameField = 'iconName';
|
|
840
818
|
this.labelField = 'label';
|
|
841
|
-
this.
|
|
842
|
-
this.
|
|
819
|
+
this.selectable = null;
|
|
820
|
+
this.selection = [];
|
|
843
821
|
this.class = '';
|
|
822
|
+
this.actionSelected.subscribe((action) => {
|
|
823
|
+
switch (this.selectable) {
|
|
824
|
+
case 'single':
|
|
825
|
+
this.selection = [action];
|
|
826
|
+
break;
|
|
827
|
+
case 'multiple':
|
|
828
|
+
this.selection.push(action);
|
|
829
|
+
break;
|
|
830
|
+
}
|
|
831
|
+
});
|
|
844
832
|
}
|
|
845
833
|
get hostClasses() {
|
|
846
834
|
return [
|
|
847
|
-
'ft-
|
|
848
|
-
this.class
|
|
849
|
-
this.position
|
|
835
|
+
'ft-list',
|
|
836
|
+
this.class
|
|
850
837
|
].join(' ');
|
|
851
838
|
}
|
|
852
839
|
;
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
if (!
|
|
856
|
-
|
|
840
|
+
updateAction(action) {
|
|
841
|
+
action.metadata = action.metadata || {};
|
|
842
|
+
if (!action.id) {
|
|
843
|
+
action.id = Math.floor(Math.random() * 1000000).toString();
|
|
844
|
+
}
|
|
845
|
+
if (!action.url) {
|
|
846
|
+
action.metadata.componentType = 'button';
|
|
857
847
|
}
|
|
858
848
|
else {
|
|
859
|
-
|
|
849
|
+
action.metadata.componentType = 'link';
|
|
850
|
+
const urlParts = action.url.split('?');
|
|
851
|
+
if (urlParts.length > 1) {
|
|
852
|
+
const queryString = urlParts.at(-1);
|
|
853
|
+
const searchParams = new URLSearchParams(queryString);
|
|
854
|
+
action.url = urlParts[0];
|
|
855
|
+
action.metadata.queryParams = Object.fromEntries(searchParams.entries());
|
|
856
|
+
}
|
|
860
857
|
}
|
|
861
|
-
return
|
|
858
|
+
return action;
|
|
862
859
|
}
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
}
|
|
860
|
+
handleClick(action) {
|
|
861
|
+
this.actionSelected.emit(action);
|
|
862
|
+
if (action.url && action.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
|
|
863
|
+
window.location.href = action.url;
|
|
868
864
|
}
|
|
869
|
-
else if (
|
|
870
|
-
|
|
865
|
+
else if (typeof action.click === 'function') {
|
|
866
|
+
action.click();
|
|
871
867
|
}
|
|
872
868
|
}
|
|
873
869
|
toggleCollapsible(action) {
|
|
874
|
-
action.metadata
|
|
870
|
+
action.metadata = action.metadata || {};
|
|
871
|
+
action.metadata.show = !action.metadata?.show;
|
|
872
|
+
this.actionSelected.emit(action);
|
|
875
873
|
}
|
|
876
|
-
|
|
877
|
-
return
|
|
874
|
+
trackById(index, action) {
|
|
875
|
+
return action.id || index;
|
|
878
876
|
}
|
|
879
877
|
}
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type:
|
|
878
|
+
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
879
|
+
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"] }] });
|
|
880
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ListComponent, decorators: [{
|
|
883
881
|
type: Component,
|
|
884
|
-
args: [{ selector: 'ft-
|
|
885
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
882
|
+
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>" }]
|
|
883
|
+
}], ctorParameters: function () { return []; }, propDecorators: { actionSelected: [{
|
|
884
|
+
type: Output
|
|
885
|
+
}], iconCollection: [{
|
|
886
886
|
type: Input
|
|
887
887
|
}], iconNameField: [{
|
|
888
888
|
type: Input
|
|
889
|
-
}],
|
|
889
|
+
}], iconPath: [{
|
|
890
890
|
type: Input
|
|
891
|
-
}],
|
|
891
|
+
}], labelField: [{
|
|
892
892
|
type: Input
|
|
893
893
|
}], items: [{
|
|
894
894
|
type: Input
|
|
895
|
-
}],
|
|
895
|
+
}], selectable: [{
|
|
896
896
|
type: Input
|
|
897
|
-
}],
|
|
897
|
+
}], selection: [{
|
|
898
898
|
type: Input
|
|
899
|
-
}],
|
|
900
|
-
type: HostBinding,
|
|
901
|
-
args: ['class']
|
|
902
|
-
}] } });
|
|
903
|
-
|
|
904
|
-
class SearchboxComponent {
|
|
905
|
-
constructor() {
|
|
906
|
-
this.execute = new EventEmitter();
|
|
907
|
-
this.showChange = new EventEmitter();
|
|
908
|
-
this.class = '';
|
|
909
|
-
this.onChange = (_) => { };
|
|
910
|
-
this.onTouched = (_) => { };
|
|
911
|
-
}
|
|
912
|
-
get hostClasses() {
|
|
913
|
-
return [
|
|
914
|
-
'ft-searchbox',
|
|
915
|
-
this.class,
|
|
916
|
-
this.shown ? 'show' : ''
|
|
917
|
-
].join(' ');
|
|
918
|
-
}
|
|
919
|
-
;
|
|
920
|
-
set show(value) {
|
|
921
|
-
this.shown = value;
|
|
922
|
-
if (value) {
|
|
923
|
-
setTimeout(() => {
|
|
924
|
-
this.getNativeElement().focus();
|
|
925
|
-
}, 300);
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
set value(value) {
|
|
929
|
-
this._value = value || '';
|
|
930
|
-
this.getNativeElement().value = this._value;
|
|
931
|
-
this.onChange(this._value);
|
|
932
|
-
this.onTouched(this._value);
|
|
933
|
-
}
|
|
934
|
-
get value() {
|
|
935
|
-
return this._value;
|
|
936
|
-
}
|
|
937
|
-
ngOnInit() {
|
|
938
|
-
}
|
|
939
|
-
closeSearch() {
|
|
940
|
-
this.showChange.emit(false);
|
|
941
|
-
}
|
|
942
|
-
getNativeElement() {
|
|
943
|
-
const input = this.placeholder ? this.inputPlaceholder : this.input;
|
|
944
|
-
return input.nativeElement;
|
|
945
|
-
}
|
|
946
|
-
registerOnChange(fn) {
|
|
947
|
-
this.onChange = fn;
|
|
948
|
-
}
|
|
949
|
-
registerOnTouched(fn) {
|
|
950
|
-
this.onTouched = fn;
|
|
951
|
-
}
|
|
952
|
-
setDisabledState(isDisabled) {
|
|
953
|
-
this.disabled = isDisabled;
|
|
954
|
-
}
|
|
955
|
-
onSearch(event) {
|
|
956
|
-
event.preventDefault();
|
|
957
|
-
this.getNativeElement().value = '';
|
|
958
|
-
this.execute.emit(this._value);
|
|
959
|
-
}
|
|
960
|
-
updateValue(event) {
|
|
961
|
-
this.value = event.target.value;
|
|
962
|
-
}
|
|
963
|
-
writeValue(value) {
|
|
964
|
-
this.value = value;
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
SearchboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SearchboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
968
|
-
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"] }] });
|
|
969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SearchboxComponent, decorators: [{
|
|
970
|
-
type: Component,
|
|
971
|
-
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>" }]
|
|
972
|
-
}], ctorParameters: function () { return []; }, propDecorators: { input: [{
|
|
973
|
-
type: ViewChild,
|
|
974
|
-
args: ['input', { static: false }]
|
|
975
|
-
}], inputPlaceholder: [{
|
|
976
|
-
type: ViewChild,
|
|
977
|
-
args: ['inputPlaceholder', { static: false }]
|
|
978
|
-
}], placeholder: [{
|
|
899
|
+
}], itemTemplate: [{
|
|
979
900
|
type: Input
|
|
980
|
-
}], execute: [{
|
|
981
|
-
type: Output
|
|
982
|
-
}], showChange: [{
|
|
983
|
-
type: Output
|
|
984
901
|
}], class: [{
|
|
985
902
|
type: Input
|
|
986
903
|
}], hostClasses: [{
|
|
987
904
|
type: HostBinding,
|
|
988
905
|
args: ['class']
|
|
989
|
-
}], show: [{
|
|
990
|
-
type: Input
|
|
991
|
-
}], value: [{
|
|
992
|
-
type: Input
|
|
993
906
|
}] } });
|
|
994
907
|
|
|
995
908
|
class ToolbarComponent {
|
|
@@ -1019,7 +932,7 @@ class ToolbarComponent {
|
|
|
1019
932
|
}
|
|
1020
933
|
}
|
|
1021
934
|
ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1022
|
-
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", "
|
|
935
|
+
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"] }] });
|
|
1023
936
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
1024
937
|
type: Component,
|
|
1025
938
|
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>" }]
|
|
@@ -1042,18 +955,16 @@ class NavigationModule {
|
|
|
1042
955
|
}
|
|
1043
956
|
NavigationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1044
957
|
NavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: NavigationModule, declarations: [ListComponent,
|
|
1045
|
-
|
|
1046
|
-
ToolbarComponent,
|
|
1047
|
-
SearchboxComponent], imports: [CommonModule,
|
|
958
|
+
ToolbarComponent], imports: [CommonModule,
|
|
1048
959
|
IoModule,
|
|
960
|
+
LayoutModule,
|
|
1049
961
|
RouterModule,
|
|
1050
962
|
MatButtonModule,
|
|
1051
963
|
MatMenuModule], exports: [ListComponent,
|
|
1052
|
-
|
|
1053
|
-
ToolbarComponent,
|
|
1054
|
-
SearchboxComponent] });
|
|
964
|
+
ToolbarComponent] });
|
|
1055
965
|
NavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NavigationModule, imports: [CommonModule,
|
|
1056
966
|
IoModule,
|
|
967
|
+
LayoutModule,
|
|
1057
968
|
RouterModule,
|
|
1058
969
|
MatButtonModule,
|
|
1059
970
|
MatMenuModule] });
|
|
@@ -1062,19 +973,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1062
973
|
args: [{
|
|
1063
974
|
declarations: [
|
|
1064
975
|
ListComponent,
|
|
1065
|
-
|
|
1066
|
-
ToolbarComponent,
|
|
1067
|
-
SearchboxComponent
|
|
976
|
+
ToolbarComponent
|
|
1068
977
|
],
|
|
1069
978
|
exports: [
|
|
1070
979
|
ListComponent,
|
|
1071
|
-
|
|
1072
|
-
ToolbarComponent,
|
|
1073
|
-
SearchboxComponent
|
|
980
|
+
ToolbarComponent
|
|
1074
981
|
],
|
|
1075
982
|
imports: [
|
|
1076
983
|
CommonModule,
|
|
1077
984
|
IoModule,
|
|
985
|
+
LayoutModule,
|
|
1078
986
|
RouterModule,
|
|
1079
987
|
MatButtonModule,
|
|
1080
988
|
MatMenuModule
|
|
@@ -1095,11 +1003,15 @@ class UiModule {
|
|
|
1095
1003
|
UiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1096
1004
|
UiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: UiModule, imports: [CommonModule,
|
|
1097
1005
|
IoModule,
|
|
1006
|
+
LayoutModule,
|
|
1098
1007
|
NavigationModule], exports: [IoModule,
|
|
1008
|
+
LayoutModule,
|
|
1099
1009
|
NavigationModule] });
|
|
1100
1010
|
UiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: UiModule, imports: [CommonModule,
|
|
1101
1011
|
IoModule,
|
|
1012
|
+
LayoutModule,
|
|
1102
1013
|
NavigationModule, IoModule,
|
|
1014
|
+
LayoutModule,
|
|
1103
1015
|
NavigationModule] });
|
|
1104
1016
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: UiModule, decorators: [{
|
|
1105
1017
|
type: NgModule,
|
|
@@ -1108,10 +1020,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1108
1020
|
imports: [
|
|
1109
1021
|
CommonModule,
|
|
1110
1022
|
IoModule,
|
|
1023
|
+
LayoutModule,
|
|
1111
1024
|
NavigationModule
|
|
1112
1025
|
],
|
|
1113
1026
|
exports: [
|
|
1114
1027
|
IoModule,
|
|
1028
|
+
LayoutModule,
|
|
1115
1029
|
NavigationModule
|
|
1116
1030
|
]
|
|
1117
1031
|
}]
|
|
@@ -1125,6 +1039,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1125
1039
|
* Generated bundle index. Do not edit.
|
|
1126
1040
|
*/
|
|
1127
1041
|
|
|
1128
|
-
export { AvatarComponent, ExpressionBuilderComponent, IconComponent, ImageComponent, IoModule,
|
|
1042
|
+
export { AvatarComponent, CollapsibleComponent, ExpressionBuilderComponent, IconComponent, ImageComponent, IoModule, LayoutModule, ListComponent, MessageComponent, MessageContentComponent, MessageService, NavigationModule, ObserveIntersectingDirective, ProgressComponent, ProgressService, RatingComponent, TimelineComponent, ToolbarComponent, UiModule };
|
|
1129
1043
|
//# sourceMappingURL=factor_ec-ui.mjs.map
|
|
1130
1044
|
//# sourceMappingURL=factor_ec-ui.mjs.map
|