@valtimo/components 4.17.0 → 4.20.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/assets/css/ng-multiselect-dropdown.theme.scss +208 -0
- package/bundles/valtimo-components.umd.js +205 -31
- package/bundles/valtimo-components.umd.js.map +1 -1
- package/bundles/valtimo-components.umd.min.js +2 -2
- package/bundles/valtimo-components.umd.min.js.map +1 -1
- package/esm2015/lib/components/alert/alert.component.js +1 -1
- package/esm2015/lib/components/alert/alert.module.js +1 -1
- package/esm2015/lib/components/alert/alert.service.js +1 -1
- package/esm2015/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.js +1 -1
- package/esm2015/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.js +1 -1
- package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.js +1 -1
- package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.js +1 -1
- package/esm2015/lib/components/camunda/form/camunda-form.components.js +1 -1
- package/esm2015/lib/components/camunda/form/camunda-form.module.js +1 -1
- package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.component.js +1 -1
- package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.module.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.module.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield.service.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/formfield.model.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +1 -1
- package/esm2015/lib/components/camunda/form/generated/formfield/validation/date.validators.js +1 -1
- package/esm2015/lib/components/card/card.component.js +1 -1
- package/esm2015/lib/components/card/card.module.js +1 -1
- package/esm2015/lib/components/components.module.js +1 -1
- package/esm2015/lib/components/data-list/data-list.component.js +1 -1
- package/esm2015/lib/components/data-list/data-list.module.js +1 -1
- package/esm2015/lib/components/dropzone/dropzone.component.js +2 -2
- package/esm2015/lib/components/dropzone/dropzone.module.js +1 -1
- package/esm2015/lib/components/field-auto-focus/field-auto-focus.directive.js +1 -1
- package/esm2015/lib/components/field-auto-focus/field-auto-focus.module.js +1 -1
- package/esm2015/lib/components/file-size/file-size.module.js +1 -1
- package/esm2015/lib/components/file-size/file-size.pipe.js +1 -1
- package/esm2015/lib/components/filter-sidebar/filter-sidebar.component.js +1 -1
- package/esm2015/lib/components/filter-sidebar/filter-sidebar.module.js +1 -1
- package/esm2015/lib/components/form-io/form-io-builder.component.js +1 -1
- package/esm2015/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.js +63 -0
- package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.js +1 -1
- package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.component.js +2 -2
- package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.formio.js +1 -1
- package/esm2015/lib/components/form-io/form-io.component.js +5 -1
- package/esm2015/lib/components/form-io/form-io.module.js +2 -7
- package/esm2015/lib/components/form-io/formio-config.js +1 -1
- package/esm2015/lib/components/form-io/services/form-io-dom.service.js +1 -1
- package/esm2015/lib/components/form-io/services/form-io-state.service.js +13 -2
- package/esm2015/lib/components/left-sidebar/left-sidebar.component.js +1 -1
- package/esm2015/lib/components/left-sidebar/left-sidebar.module.js +1 -1
- package/esm2015/lib/components/list/ListFilterPipe.directive.js +1 -1
- package/esm2015/lib/components/list/list.component.js +4 -3
- package/esm2015/lib/components/list/list.module.js +1 -1
- package/esm2015/lib/components/menu/menu-item-text.component.js +1 -1
- package/esm2015/lib/components/menu/menu-routing.module.js +1 -1
- package/esm2015/lib/components/menu/menu.component.js +5 -3
- package/esm2015/lib/components/menu/menu.init.js +1 -1
- package/esm2015/lib/components/menu/menu.module.js +1 -1
- package/esm2015/lib/components/menu/menu.service.js +12 -4
- package/esm2015/lib/components/menu/submenu-item-text.component.js +1 -1
- package/esm2015/lib/components/modal/modal.component.js +1 -1
- package/esm2015/lib/components/modal/modal.module.js +1 -1
- package/esm2015/lib/components/multiselect-dropdown/multiselect-dropdown.component.js +47 -0
- package/esm2015/lib/components/multiselect-dropdown/multiselect-dropdown.module.js +30 -0
- package/esm2015/lib/components/page-header/page-header.component.js +1 -1
- package/esm2015/lib/components/page-header/page-header.module.js +1 -1
- package/esm2015/lib/components/page-title/page-title.component.js +1 -1
- package/esm2015/lib/components/page-title/page-title.module.js +1 -1
- package/esm2015/lib/components/progress-bar/progress-bar.component.js +1 -1
- package/esm2015/lib/components/progress-bar/progress-bar.module.js +1 -1
- package/esm2015/lib/components/right-sidebar/right-sidebar.component.js +1 -1
- package/esm2015/lib/components/right-sidebar/right-sidebar.module.js +1 -1
- package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.component.js +1 -1
- package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.module.js +1 -1
- package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.js +3 -3
- package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.js +1 -1
- package/esm2015/lib/components/spinner/spinner.component.js +1 -1
- package/esm2015/lib/components/spinner/spinner.module.js +1 -1
- package/esm2015/lib/components/timeline/timeline.component.js +1 -1
- package/esm2015/lib/components/timeline/timeline.module.js +1 -1
- package/esm2015/lib/components/topbar/topbar.component.js +3 -3
- package/esm2015/lib/components/topbar/topbar.module.js +1 -1
- package/esm2015/lib/components/uploader/uploader-drag-drop.directive.js +1 -1
- package/esm2015/lib/components/uploader/uploader.component.js +2 -2
- package/esm2015/lib/components/uploader/uploader.module.js +1 -1
- package/esm2015/lib/components/version/version.service.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/booleanTypeConverter.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/dateTypeConverter.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/enumTypeConverter.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/relatedFilesTypeConverter.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/stringTypeConverter.js +1 -1
- package/esm2015/lib/components/view-content/type-converters/type-converters.model.js +1 -1
- package/esm2015/lib/components/view-content/view-content.service.js +1 -1
- package/esm2015/lib/components/webcam/webcam.component.js +3 -3
- package/esm2015/lib/components/webcam/webcam.module.js +1 -1
- package/esm2015/lib/components/widget/widget.component.js +1 -1
- package/esm2015/lib/components/widget/widget.module.js +1 -1
- package/esm2015/lib/models/alert.model.js +1 -1
- package/esm2015/lib/models/form-io.model.js +1 -1
- package/esm2015/lib/models/index.js +1 -1
- package/esm2015/lib/models/pagination.model.js +1 -1
- package/esm2015/lib/models/searchable-dropdown.model.js +1 -1
- package/esm2015/lib/models/timeline.model.js +1 -1
- package/esm2015/lib/models/version.model.js +1 -1
- package/esm2015/public_api.js +6 -2
- package/esm2015/valtimo-components.js +4 -5
- package/fesm2015/valtimo-components.js +177 -26
- package/fesm2015/valtimo-components.js.map +1 -1
- package/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.d.ts +2 -0
- package/lib/components/form-io/services/form-io-state.service.d.ts +3 -0
- package/lib/components/menu/menu.component.d.ts +4 -0
- package/lib/components/menu/menu.service.d.ts +10 -6
- package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts +15 -0
- package/lib/components/multiselect-dropdown/multiselect-dropdown.module.d.ts +2 -0
- package/lib/models/form-io.model.d.ts +4 -0
- package/package.json +3 -2
- package/public_api.d.ts +4 -0
- package/valtimo-components.d.ts +3 -4
- package/valtimo-components.metadata.json +1 -1
|
@@ -4,8 +4,8 @@ import { Validators, FormControl, FormBuilder, ReactiveFormsModule, FormsModule
|
|
|
4
4
|
import * as momentImported from 'moment';
|
|
5
5
|
import { ChoicefieldService } from '@valtimo/choicefield';
|
|
6
6
|
import { RouterModule, NavigationEnd, Router, ActivatedRoute, PRIMARY_OUTLET, NavigationStart } from '@angular/router';
|
|
7
|
+
import { ConfigService, MenuIncludeService, HttpLoaderFactory } from '@valtimo/config';
|
|
7
8
|
import { NGXLogger } from 'ngx-logger';
|
|
8
|
-
import { ConfigService, HttpLoaderFactory } from '@valtimo/config';
|
|
9
9
|
import { BehaviorSubject, Observable, combineLatest, fromEvent, Subscription, Subject, timer, from } from 'rxjs';
|
|
10
10
|
import { DocumentService, DocumentModule } from '@valtimo/document';
|
|
11
11
|
import { UserProviderService } from '@valtimo/security';
|
|
@@ -18,10 +18,11 @@ import { Title } from '@angular/platform-browser';
|
|
|
18
18
|
import * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
|
|
19
19
|
import { create } from 'heatmap.js-fixed/build/heatmap.js';
|
|
20
20
|
import { S3Resource, S3Service, UploadProviderService, DownloadService, ResourceModule } from '@valtimo/resource';
|
|
21
|
-
import { Formio, FormioModule, FormioAppConfig, createCustomFormioComponent, registerCustomFormioComponentWithClass } from 'angular-formio';
|
|
21
|
+
import { Formio, FormioModule, FormioAppConfig, createCustomFormioComponent, registerCustomFormioComponentWithClass, Components } from 'angular-formio';
|
|
22
22
|
import jwt_decode from 'jwt-decode';
|
|
23
23
|
import * as Dropzone from 'dropzone';
|
|
24
24
|
import { NgxSpinnerModule } from 'ngx-spinner';
|
|
25
|
+
import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';
|
|
25
26
|
|
|
26
27
|
/*
|
|
27
28
|
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
@@ -862,8 +863,8 @@ class TopbarComponent {
|
|
|
862
863
|
TopbarComponent.decorators = [
|
|
863
864
|
{ type: Component, args: [{
|
|
864
865
|
selector: 'valtimo-topbar',
|
|
865
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<nav class=\"navbar navbar-expand fixed-top be-top-header\">\n <div class=\"container-fluid\">\n <div class=\"be-navbar-header\">\n <a class=\"navbar-brand\" [routerLink]=\"['/']\"></a>\n </div>\n <div class=\"be-right-navbar\">\n <!-- important empty div: in order to made float-right element works on mobile -->\n <div></div>\n <ul class=\"nav navbar-nav be-user-nav float-right be-icons-nav\">\n <li class=\"nav-item dropdown special\">\n <a class=\"nav-link be-toggle-right-sidebar\" href=\"#\" role=\"button\" aria-expanded=\"false\">\n <i class=\"
|
|
866
|
-
styles: [".user-icon{font-size:30px
|
|
866
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<nav class=\"navbar navbar-expand fixed-top be-top-header\">\n <div class=\"container-fluid\">\n <div class=\"be-navbar-header\">\n <a class=\"navbar-brand\" [routerLink]=\"['/']\"></a>\n </div>\n <div class=\"be-right-navbar\">\n <!-- important empty div: in order to made float-right element works on mobile -->\n <div></div>\n <ul class=\"nav navbar-nav be-user-nav float-right be-icons-nav\">\n <li class=\"nav-item dropdown special\">\n <a class=\"nav-link be-toggle-right-sidebar\" href=\"#\" role=\"button\" aria-expanded=\"false\">\n <i class=\"mdi mdi-account-circle user-icon\"></i>\n </a>\n </li>\n </ul>\n </div>\n </div>\n</nav>\n",
|
|
867
|
+
styles: [".user-icon{font-size:30px}.be-toggle-right-sidebar{display:flex}"]
|
|
867
868
|
},] }
|
|
868
869
|
];
|
|
869
870
|
TopbarComponent.ctorParameters = () => [];
|
|
@@ -909,11 +910,13 @@ TopbarModule.decorators = [
|
|
|
909
910
|
* limitations under the License.
|
|
910
911
|
*/
|
|
911
912
|
class MenuService {
|
|
912
|
-
constructor(configService, documentService, userProviderService, logger) {
|
|
913
|
+
constructor(configService, documentService, userProviderService, logger, menuIncludeService) {
|
|
913
914
|
this.configService = configService;
|
|
914
915
|
this.documentService = documentService;
|
|
915
916
|
this.userProviderService = userProviderService;
|
|
916
917
|
this.logger = logger;
|
|
918
|
+
this.menuIncludeService = menuIncludeService;
|
|
919
|
+
this.includeFunctionObservables = {};
|
|
917
920
|
this._menuItems$ = new BehaviorSubject(undefined);
|
|
918
921
|
this.menuConfig = configService.config.menu;
|
|
919
922
|
}
|
|
@@ -930,6 +933,10 @@ class MenuService {
|
|
|
930
933
|
loadMenuItems() {
|
|
931
934
|
let menuItems = [];
|
|
932
935
|
this.menuConfig.menuItems.forEach((menuItem) => {
|
|
936
|
+
if (menuItem.includeFunction !== undefined) {
|
|
937
|
+
this.includeFunctionObservables[menuItem.title] =
|
|
938
|
+
this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);
|
|
939
|
+
}
|
|
933
940
|
menuItem.show = true;
|
|
934
941
|
menuItems.push(menuItem);
|
|
935
942
|
});
|
|
@@ -995,7 +1002,7 @@ class MenuService {
|
|
|
995
1002
|
}
|
|
996
1003
|
}
|
|
997
1004
|
}
|
|
998
|
-
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(ɵɵinject(ConfigService), ɵɵinject(DocumentService), ɵɵinject(UserProviderService), ɵɵinject(NGXLogger)); }, token: MenuService, providedIn: "root" });
|
|
1005
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(ɵɵinject(ConfigService), ɵɵinject(DocumentService), ɵɵinject(UserProviderService), ɵɵinject(NGXLogger), ɵɵinject(MenuIncludeService)); }, token: MenuService, providedIn: "root" });
|
|
999
1006
|
MenuService.decorators = [
|
|
1000
1007
|
{ type: Injectable, args: [{
|
|
1001
1008
|
providedIn: 'root',
|
|
@@ -1005,7 +1012,8 @@ MenuService.ctorParameters = () => [
|
|
|
1005
1012
|
{ type: ConfigService },
|
|
1006
1013
|
{ type: DocumentService },
|
|
1007
1014
|
{ type: UserProviderService },
|
|
1008
|
-
{ type: NGXLogger }
|
|
1015
|
+
{ type: NGXLogger },
|
|
1016
|
+
{ type: MenuIncludeService }
|
|
1009
1017
|
];
|
|
1010
1018
|
|
|
1011
1019
|
/*
|
|
@@ -1054,6 +1062,8 @@ class MenuComponent {
|
|
|
1054
1062
|
this.elRef = elRef;
|
|
1055
1063
|
this.renderer = renderer;
|
|
1056
1064
|
this.router = router;
|
|
1065
|
+
this.includeFunctionObservables = {};
|
|
1066
|
+
this.includeFunctionObservables = this.menuService.includeFunctionObservables;
|
|
1057
1067
|
}
|
|
1058
1068
|
ngOnInit() {
|
|
1059
1069
|
this.openRouterSubscription();
|
|
@@ -1084,8 +1094,8 @@ class MenuComponent {
|
|
|
1084
1094
|
MenuComponent.decorators = [
|
|
1085
1095
|
{ type: Component, args: [{
|
|
1086
1096
|
selector: 'valtimo-menu',
|
|
1087
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ul class=\"sidebar-elements\">\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <li\n [class.parent]=\"menuItem.children\"\n [hidden]=\"!menuItem.show\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n >\n <a *ngIf=\"menuItem.link\" [routerLink]=\"menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <a *ngIf=\"!menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <ng-container *ngIf=\"menuItem.children\">\n <ul class=\"sub-menu\">\n <li class=\"title\">{{ menuItem.title | translate }}</li>\n <li\n *ngFor=\"let subMenuItem of menuItem.children\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n >\n <a *ngIf=\"subMenuItem.link\" [routerLink]=\"subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n <a *ngIf=\"!subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n </li>\n </ul>\n </ng-container>\n </li>\n </ng-container>\n</ul>\n",
|
|
1088
|
-
styles: [".c-default{cursor:default}.sub-item{cursor:pointer}"]
|
|
1097
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ul class=\"sidebar-elements\">\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <li\n [class.parent]=\"menuItem.children\"\n [hidden]=\"!menuItem.show\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async)\n }\"\n >\n <a *ngIf=\"menuItem.link\" [routerLink]=\"menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <a *ngIf=\"!menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <ng-container *ngIf=\"menuItem.children\">\n <ul class=\"sub-menu\">\n <li class=\"title\">{{ menuItem.title | translate }}</li>\n <li\n *ngFor=\"let subMenuItem of menuItem.children\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n >\n <a *ngIf=\"subMenuItem.link\" [routerLink]=\"subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n <a *ngIf=\"!subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n </li>\n </ul>\n </ng-container>\n </li>\n </ng-container>\n</ul>\n",
|
|
1098
|
+
styles: [".c-default{cursor:default}.sub-item{cursor:pointer}.menu-item--hidden{display:none}.menu-item--visible{display:block}"]
|
|
1089
1099
|
},] }
|
|
1090
1100
|
];
|
|
1091
1101
|
MenuComponent.ctorParameters = () => [
|
|
@@ -1970,6 +1980,7 @@ class ListComponent {
|
|
|
1970
1980
|
item.listItemFields = this.fields.map(field => ({
|
|
1971
1981
|
key: field.key,
|
|
1972
1982
|
label: field.label,
|
|
1983
|
+
type: field.type || '',
|
|
1973
1984
|
value: this.resolveObject(field, item),
|
|
1974
1985
|
}));
|
|
1975
1986
|
});
|
|
@@ -2032,8 +2043,8 @@ ListComponent.PAGINATION_SIZE = 'PaginationSize';
|
|
|
2032
2043
|
ListComponent.decorators = [
|
|
2033
2044
|
{ type: Component, args: [{
|
|
2034
2045
|
selector: 'valtimo-list',
|
|
2035
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div>\n <div *ngIf=\"(items?.length > 0 && fields?.length > 0) || header\">\n <div\n class=\"d-flex align-items-center search-holder bg-light\"\n [ngClass]=\"{'pb-4 pt-4': !header}\"\n *ngIf=\"isSearchable || viewMode || header\"\n >\n <div class=\"align-self-start\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"ml-auto row\">\n <input\n *ngIf=\"isSearchable\"\n class=\"form-control col-sm-8\"\n type=\"text\"\n placeholder=\"Search...\"\n #searchBox\n />\n\n <div\n class=\"switch-view-holder btn-group col-sm-4 mt-1 mt-sm-0\"\n role=\"group\"\n *ngIf=\"viewMode\"\n >\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'table' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('table')\"\n >\n <i class=\"mdi mdi-view-headline\"></i>\n </button>\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'tile' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('tile')\"\n >\n <i class=\"mdi mdi-view-module\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <div *ngIf=\"items?.length > 0 && fields?.length > 0\">\n <div class=\"table-responsive noSwipe\" *ngIf=\"!viewMode || viewListAs === 'table'\">\n <table class=\"table table-striped table-hover m-0\" *ngIf=\"sort$ | async as sort\">\n <thead>\n <tr>\n <th\n *ngFor=\"let field of fields\"\n (click)=\"handleFieldClick(field.key, field.sortable)\"\n [ngClass]=\"{\n sortable: field.sortable,\n 'is-being-sorted': field.key === sort.state.name && sort.isSorting,\n ascending: sort.state.direction === 'ASC'\n }\"\n >\n {{ field.label }}\n </th>\n <th *ngFor=\"let action of actions\">\n {{ action.columnName }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n [ngClass]=\"{'click-able': this.rowClicked.observers.length > 0}\"\n *ngFor=\"let item of items | listFilter: searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <td class=\"align-top\" *ngFor=\"let listItemField of item.listItemFields\">\n {{ listItemField.value || '-' }}\n </td>\n <td class=\"align-top\" *ngFor=\"let action of actions\">\n <i\n style=\"cursor: pointer\"\n [ngClass]=\"action.iconClass\"\n (click)=\"action.callback(item)\"\n ></i>\n </td>\n </tr>\n <tr>\n <td *ngIf=\"(items | listFilter: searchModel).length === 0\" [colSpan]=\"fields.length\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"container-fluid\" *ngIf=\"viewMode && viewListAs === 'tile'\">\n <div class=\"row p-2\">\n <div\n class=\"col-12 col-sm-6 col-xl-4 p-2\"\n *ngFor=\"let item of items | listFilter: searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <div class=\"click-able tile-holder p-4\">\n <dl class=\"row mb-0\" *ngFor=\"let listItemField of item.listItemFields\">\n <dt class=\"col-12 col-md-5 text-xl-right\">{{ listItemField.label }}</dt>\n <dd class=\"col-12 col-md-7\">{{ listItemField.value || '-' }}</dd>\n </dl>\n </div>\n </div>\n <div class=\"col-12\" *ngIf=\"(items | listFilter: searchModel).length === 0\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"pagination-holder bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && items?.length > 0 && fields?.length > 0\"\n >\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.page, total: getTotalPageCount()}\n }}</strong>\n <br />\n {{\n pagination.collectionSize === 1\n ? ('list.showingResult' | translate: {number: (items | listFilter: searchModel).length})\n : ('list.showingResults'\n | translate\n : {\n number: (items | listFilter: searchModel).length,\n total: pagination.collectionSize\n })\n }}\n </div>\n <div class=\"col-4 text-center\">\n {{ 'list.show' | translate }}\n <select [(ngModel)]=\"pagination.size\" (ngModelChange)=\"setPaginationSize($event)\">\n <option [ngValue]=\"10\">10</option>\n <option [ngValue]=\"25\">25</option>\n <option [ngValue]=\"50\">50</option>\n <option [ngValue]=\"100\">100</option>\n </select>\n {{ 'list.entries' | translate }}\n </div>\n <div class=\"col-4\">\n <ngb-pagination\n *ngIf=\"pagination.collectionSize > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.collectionSize\"\n [(page)]=\"pagination.page\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.maxPaginationItemSize\"\n [rotate]=\"true\"\n (pageChange)=\"onClickPagination(pagination.page)\"\n ></ngb-pagination>\n </div>\n </div>\n\n <div id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">\n {{ 'list.noResults' | translate }}\n </div>\n\n <div id=\"no-field-definitions\" class=\"p-5\" *ngIf=\"items?.length > 0 && fields?.length === 0\">\n {{ 'list.noFieldDefinitions' | translate }}\n </div>\n</div>\n",
|
|
2036
|
-
styles: ["@charset \"UTF-8\";\n/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.table{table-layout:fixed}.click-able{cursor:pointer}.pagination-holder{border-top:1px solid #dee2e6}.search-holder{border-bottom:1px solid #dee2e6;height:80px;padding-left:18px;padding-right:18px}.switch-view-holder i{font-size:1.8rem;line-height:1.2rem;margin-top:9px}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}.page-count{margin-bottom:1rem}td:first-child,th:first-child{padding-left:25px}th.sortable{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;user-select:none}th.sortable:after{content:\" \uF0DD\";font-family:Font Awesome\\ 5 Free;margin:auto 0 auto 5px;opacity:0;position:absolute;transition:all .15s ease}th.sortable.is-being-sorted.ascending:after{transform:rotate(-180deg)}th.sortable:hover:after{opacity:.5}th.sortable.is-being-sorted:after{opacity:1}"]
|
|
2046
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div>\n <div *ngIf=\"(items?.length > 0 && fields?.length > 0) || header\">\n <div\n class=\"d-flex align-items-center search-holder bg-light\"\n [ngClass]=\"{'pb-4 pt-4': !header}\"\n *ngIf=\"isSearchable || viewMode || header\"\n >\n <div class=\"align-self-start\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"ml-auto row\">\n <input\n *ngIf=\"isSearchable\"\n class=\"form-control col-sm-8\"\n type=\"text\"\n placeholder=\"Search...\"\n #searchBox\n />\n\n <div\n class=\"switch-view-holder btn-group col-sm-4 mt-1 mt-sm-0\"\n role=\"group\"\n *ngIf=\"viewMode\"\n >\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'table' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('table')\"\n >\n <i class=\"mdi mdi-view-headline\"></i>\n </button>\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'tile' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('tile')\"\n >\n <i class=\"mdi mdi-view-module\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <div *ngIf=\"items?.length > 0 && fields?.length > 0\">\n <div class=\"table-responsive noSwipe\" *ngIf=\"!viewMode || viewListAs === 'table'\">\n <table class=\"table table-striped table-hover m-0\" *ngIf=\"sort$ | async as sort\">\n <thead>\n <tr>\n <th\n *ngFor=\"let field of fields\"\n (click)=\"handleFieldClick(field.key, field.sortable)\"\n [ngClass]=\"{\n sortable: field.sortable,\n 'is-being-sorted': field.key === sort.state.name && sort.isSorting,\n ascending: sort.state.direction === 'ASC'\n }\"\n >\n {{ field.label }}\n </th>\n <th *ngFor=\"let action of actions\">\n {{ action.columnName }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n [ngClass]=\"{'click-able': this.rowClicked.observers.length > 0}\"\n *ngFor=\"let item of items | listFilter: searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <td class=\"align-top\" *ngFor=\"let listItemField of item.listItemFields\">\n <ng-container *ngIf=\"listItemField.type === ''\">\n {{ listItemField.value || '-' }}\n </ng-container>\n\n <ng-container\n *ngIf=\"listItemField.type === 'dropdownActions'\"\n [ngTemplateOutlet]=\"dropdownActions\"\n [ngTemplateOutletContext]=\"{listItemField: listItemField, item: item}\"\n ></ng-container>\n </td>\n <td class=\"align-top\" *ngFor=\"let action of actions\">\n <i\n class=\"action-icon\"\n style=\"cursor: pointer\"\n [ngClass]=\"action.iconClass\"\n (click)=\"action.callback(item)\"\n ></i>\n </td>\n </tr>\n <tr>\n <td *ngIf=\"(items | listFilter: searchModel).length === 0\" [colSpan]=\"fields.length\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"container-fluid\" *ngIf=\"viewMode && viewListAs === 'tile'\">\n <div class=\"row p-2\">\n <div\n class=\"col-12 col-sm-6 col-xl-4 p-2\"\n *ngFor=\"let item of items | listFilter: searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <div class=\"click-able tile-holder p-4\">\n <dl class=\"row mb-0\" *ngFor=\"let listItemField of item.listItemFields\">\n <dt class=\"col-12 col-md-5 text-xl-right\">{{ listItemField.label }}</dt>\n <dd class=\"col-12 col-md-7\">{{ listItemField.value || '-' }}</dd>\n </dl>\n </div>\n </div>\n <div class=\"col-12\" *ngIf=\"(items | listFilter: searchModel).length === 0\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"pagination-holder bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && items?.length > 0 && fields?.length > 0\"\n >\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.page, total: getTotalPageCount()}\n }}</strong>\n <br />\n {{\n pagination.collectionSize === 1\n ? ('list.showingResult' | translate: {number: (items | listFilter: searchModel).length})\n : ('list.showingResults'\n | translate\n : {\n number: (items | listFilter: searchModel).length,\n total: pagination.collectionSize\n })\n }}\n </div>\n <div class=\"col-4 text-center\">\n {{ 'list.show' | translate }}\n <select [(ngModel)]=\"pagination.size\" (ngModelChange)=\"setPaginationSize($event)\">\n <option [ngValue]=\"10\">10</option>\n <option [ngValue]=\"25\">25</option>\n <option [ngValue]=\"50\">50</option>\n <option [ngValue]=\"100\">100</option>\n </select>\n {{ 'list.entries' | translate }}\n </div>\n <div class=\"col-4\">\n <ngb-pagination\n *ngIf=\"pagination.collectionSize > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.collectionSize\"\n [(page)]=\"pagination.page\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.maxPaginationItemSize\"\n [rotate]=\"true\"\n (pageChange)=\"onClickPagination(pagination.page)\"\n ></ngb-pagination>\n </div>\n </div>\n\n <div id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">\n {{ 'list.noResults' | translate }}\n </div>\n\n <div id=\"no-field-definitions\" class=\"p-5\" *ngIf=\"items?.length > 0 && fields?.length === 0\">\n {{ 'list.noFieldDefinitions' | translate }}\n </div>\n</div>\n\n<ng-template #dropdownActions let-listItemField=\"listItemField\" let-item=\"item\">\n <div class=\"dropdown\" *ngIf=\"listItemField?.value.length > 0\">\n <a\n style=\"cursor: pointer\"\n class=\"dropdown-toggle d-block\"\n id=\"dropdownMenu\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <i class=\"action-icon icon mdi mdi-more-vert\"></i>\n </a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenu\">\n <a\n (click)=\"action.callback(item)\"\n class=\"dropdown-item p-2\"\n *ngFor=\"let action of listItemField.value\"\n >\n <ng-container *ngIf=\"action.iconClass != null\">\n <i [ngClass]=\"action.iconClass\"></i>\n </ng-container>\n {{ action?.label || '-' }}\n </a>\n </div>\n </div>\n</ng-template>\n",
|
|
2047
|
+
styles: ["@charset \"UTF-8\";\n/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.table{table-layout:fixed}.table-responsive{overflow-x:visible}.click-able{cursor:pointer}.pagination-holder{border-top:1px solid #dee2e6}.search-holder{border-bottom:1px solid #dee2e6;height:80px;padding-left:18px;padding-right:18px}.switch-view-holder i{font-size:1.8rem;line-height:1.2rem;margin-top:9px}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}.page-count{margin-bottom:1rem}td:first-child,th:first-child{padding-left:25px}th.sortable{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;user-select:none}th.sortable:after{content:\" \uF0DD\";font-family:Font Awesome\\ 5 Free;margin:auto 0 auto 5px;opacity:0;position:absolute;transition:all .15s ease}th.sortable.is-being-sorted.ascending:after{transform:rotate(-180deg)}th.sortable:hover:after{opacity:.5}th.sortable.is-being-sorted:after{opacity:1}.action-icon{font-size:16px}"]
|
|
2037
2048
|
},] }
|
|
2038
2049
|
];
|
|
2039
2050
|
ListComponent.ctorParameters = () => [
|
|
@@ -2882,7 +2893,7 @@ class UploaderComponent {
|
|
|
2882
2893
|
UploaderComponent.decorators = [
|
|
2883
2894
|
{ type: Component, args: [{
|
|
2884
2895
|
selector: 'valtimo-uploader',
|
|
2885
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"upload-file-container p-5\"\n (click)=\"fileInput.click()\"\n valtimoUploaderDragDrop\n (fileDropped)=\"onFileFieldChange($event)\"\n>\n <span class=\"align-middle\"><i class=\"
|
|
2896
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"upload-file-container p-5\"\n (click)=\"fileInput.click()\"\n valtimoUploaderDragDrop\n (fileDropped)=\"onFileFieldChange($event)\"\n>\n <span class=\"align-middle\"><i class=\"mdi mdi-cloud-upload\"></i></span>\n <input hidden type=\"file\" #fileInput (change)=\"onFileFieldChange($event.target.files)\" multiple />\n</div>\n<div *ngIf=\"showFileList\">\n <div class=\"files-list px-3 py-2\" *ngFor=\"let resource of resources\">\n <p class=\"m-0\">\n <strong>{{ resource.name }}</strong\n ><br />\n {{ resource.sizeInBytes | filesize }}\n </p>\n <button class=\"delete-file\" (click)=\"deleteResource(resource)\">\n <i class=\"icon mdi mdi-delete text-danger\"></i>\n </button>\n </div>\n</div>\n",
|
|
2886
2897
|
styles: [".upload-file-container{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:100px;border:2px dashed #d5d8de;color:#d5d8de;margin:0 0 1rem;text-align:center}.upload-file-container i.mdi-cloud-upload{font-size:5em}.upload-file-container:hover{cursor:pointer;opacity:.8}.files-list{background:#fff;border:1px solid #bdc0c7;display:flex;font-size:1em;justify-content:space-between;margin:1rem auto;padding:5px}.files-list .delete-file{background:transparent;border:none;cursor:pointer}.files-list .delete-file i{font-size:1.5em}"]
|
|
2887
2898
|
},] }
|
|
2888
2899
|
];
|
|
@@ -3327,6 +3338,7 @@ DataListModule.decorators = [
|
|
|
3327
3338
|
class FormIoStateService {
|
|
3328
3339
|
constructor() {
|
|
3329
3340
|
this._documentDefinitionName$ = new BehaviorSubject(undefined);
|
|
3341
|
+
this._documentId$ = new BehaviorSubject(undefined);
|
|
3330
3342
|
this._currentForm$ = new BehaviorSubject(undefined);
|
|
3331
3343
|
}
|
|
3332
3344
|
get documentDefinitionName$() {
|
|
@@ -3335,6 +3347,12 @@ class FormIoStateService {
|
|
|
3335
3347
|
setDocumentDefinitionName(documentDefinitionName) {
|
|
3336
3348
|
this._documentDefinitionName$.next(documentDefinitionName);
|
|
3337
3349
|
}
|
|
3350
|
+
get documentId$() {
|
|
3351
|
+
return this._documentId$.asObservable();
|
|
3352
|
+
}
|
|
3353
|
+
setDocumentId(documentId) {
|
|
3354
|
+
this._documentId$.next(documentId);
|
|
3355
|
+
}
|
|
3338
3356
|
get currentForm$() {
|
|
3339
3357
|
return this._currentForm$.asObservable();
|
|
3340
3358
|
}
|
|
@@ -3342,8 +3360,11 @@ class FormIoStateService {
|
|
|
3342
3360
|
this._currentForm$.next(form);
|
|
3343
3361
|
}
|
|
3344
3362
|
}
|
|
3363
|
+
FormIoStateService.ɵprov = ɵɵdefineInjectable({ factory: function FormIoStateService_Factory() { return new FormIoStateService(); }, token: FormIoStateService, providedIn: "root" });
|
|
3345
3364
|
FormIoStateService.decorators = [
|
|
3346
|
-
{ type: Injectable
|
|
3365
|
+
{ type: Injectable, args: [{
|
|
3366
|
+
providedIn: 'root',
|
|
3367
|
+
},] }
|
|
3347
3368
|
];
|
|
3348
3369
|
|
|
3349
3370
|
/*
|
|
@@ -3377,6 +3398,7 @@ class FormioComponent {
|
|
|
3377
3398
|
}
|
|
3378
3399
|
ngOnInit() {
|
|
3379
3400
|
const documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');
|
|
3401
|
+
const documentId = this.route.snapshot.paramMap.get('documentId');
|
|
3380
3402
|
const formDefinition = this.form;
|
|
3381
3403
|
this.formDefinition = formDefinition;
|
|
3382
3404
|
this.errors = [];
|
|
@@ -3386,6 +3408,9 @@ class FormioComponent {
|
|
|
3386
3408
|
if (documentDefinitionName) {
|
|
3387
3409
|
this.stateService.setDocumentDefinitionName(documentDefinitionName);
|
|
3388
3410
|
}
|
|
3411
|
+
if (documentId) {
|
|
3412
|
+
this.stateService.setDocumentId(documentId);
|
|
3413
|
+
}
|
|
3389
3414
|
this.subscribeFormRefresh();
|
|
3390
3415
|
this.openLanguageSubscription();
|
|
3391
3416
|
}
|
|
@@ -3624,7 +3649,7 @@ class FormIoUploaderComponent {
|
|
|
3624
3649
|
FormIoUploaderComponent.decorators = [
|
|
3625
3650
|
{ type: Component, args: [{
|
|
3626
3651
|
selector: 'valtimo-formio-uploader',
|
|
3627
|
-
template: "<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{ resource.originalName }}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.size | filesize }}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon
|
|
3652
|
+
template: "<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{ resource.originalName }}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.size | filesize }}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n",
|
|
3628
3653
|
styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .btn-secondary,::ng-deep .formio-component-valtimo-file .formio-button-add-another{display:none}::ng-deep .formio-component-valtimo-file td{border:none;padding:0!important}::ng-deep .formio-component-valtimo-file .table{border:none;border-collapse:collapse;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{border:1px solid #dee2e6;display:flex;margin-top:-1px}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;cursor:pointer;font-size:1.3846rem;line-height:18px}.file-preview .icon:hover{color:grey}"]
|
|
3629
3654
|
},] }
|
|
3630
3655
|
];
|
|
@@ -3759,7 +3784,7 @@ class DropzoneComponent {
|
|
|
3759
3784
|
DropzoneComponent.decorators = [
|
|
3760
3785
|
{ type: Component, args: [{
|
|
3761
3786
|
selector: 'valtimo-dropzone',
|
|
3762
|
-
template: "<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"
|
|
3787
|
+
template: "<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n",
|
|
3763
3788
|
styles: ["form.dropzone{padding:30px 20px}form.dropzone h2{font-size:2rem;text-align:center}form.dropzone.disabled{cursor:default;opacity:.7;pointer-events:none}form.dropzone.preview{border:none;padding:15px 20px}.dz-message{align-items:center;display:flex;flex-direction:column}.dropzone-mobile-trigger{cursor:pointer}.alert-light{align-items:center;display:flex}form.dropzone .mdi{background-color:transparent;border-radius:0;display:inline-block;height:auto;margin-bottom:0;padding:0;width:auto}form.dropzone .message{padding:1.385rem 2.1542rem}.file{align-items:center;display:flex;flex-direction:row;font-size:1.5rem}.small-font{color:#959595;font-size:1rem}.file-size{margin-left:5px}.progress-bar-container{bottom:0;height:auto;position:absolute;width:100%}.webcam-button{position:absolute;right:10px;top:10px}"]
|
|
3764
3789
|
},] }
|
|
3765
3790
|
];
|
|
@@ -3924,8 +3949,8 @@ class WebcamComponent {
|
|
|
3924
3949
|
WebcamComponent.decorators = [
|
|
3925
3950
|
{ type: Component, args: [{
|
|
3926
3951
|
selector: 'valtimo-webcam',
|
|
3927
|
-
template: "<div\n (click)=\"close(false)\"\n *ngIf=\"{picture: picture$ | async, stream: stream$ | async} as obs\"\n [ngClass]=\"{showing: showing$ | async}\"\n class=\"webcam-overlay\"\n>\n <div (click)=\"(false); $event.stopPropagation()\" class=\"inner-container\">\n <div class=\"webcam-container modal-content\">\n <div class=\"video-container\">\n <video autoplay=\"true\" id=\"videoElement\"></video>\n <canvas id=\"canvas\"></canvas>\n <img *ngIf=\"obs.picture?.uri\" [src]=\"obs.picture?.uri\" />\n </div>\n <div class=\"button-container\">\n <div class=\"picture-btn\">\n <button\n (click)=\"captureImage()\"\n [disabled]=\"obs.picture?.file || !obs.stream\"\n class=\"btn btn-primary btn-lg\"\n >\n <i class=\"
|
|
3928
|
-
styles: [".webcam-overlay{align-items:center;background-color:rgba(0,0,0,.65);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:fixed;top:0;transition:opacity .15s linear;width:100%;z-index:9999}.showing{opacity:1}.webcam-container{padding:20px}.button-container{align-items:center;display:flex;height:30px;justify-content:space-evenly;margin-bottom:10px;margin-top:20px}.button-container i{margin-right:5px}.new-btn,.picture-btn,.save-btn{display:flex;justify-content:center;position:absolute}.new-btn,.save-btn{width:calc(50% - 65px)}.picture-btn{left:0;width:100%}.new-btn{left:0}.save-btn{right:0}.modal-header{color:grey;margin-top:35px;padding:0;position:absolute;right:-18px;top:0}.close{color:grey}.inner-container{position:relative}.video-container{height:495px;overflow:hidden}.video-container img,.video-container video{height:495px;position:absolute;width:660px}.video-container img{-o-object-fit:cover;object-fit:cover}#canvas{display:none}"]
|
|
3952
|
+
template: "<div\n (click)=\"close(false)\"\n *ngIf=\"{picture: picture$ | async, stream: stream$ | async} as obs\"\n [ngClass]=\"{showing: showing$ | async}\"\n class=\"webcam-overlay\"\n>\n <div (click)=\"(false); $event.stopPropagation()\" class=\"inner-container\">\n <div class=\"webcam-container modal-content\">\n <div class=\"video-container\">\n <video autoplay=\"true\" id=\"videoElement\"></video>\n <canvas id=\"canvas\"></canvas>\n <img *ngIf=\"obs.picture?.uri\" [src]=\"obs.picture?.uri\" />\n </div>\n <div class=\"button-container\">\n <div class=\"picture-btn\">\n <button\n (click)=\"captureImage()\"\n [disabled]=\"obs.picture?.file || !obs.stream\"\n class=\"btn btn-primary btn-lg\"\n >\n <i class=\"icon mdi mdi-camera mr-1\"></i>{{ 'webcam.takePicture' | translate }}\n </button>\n </div>\n <div class=\"new-btn\">\n <button (click)=\"clearImage()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-redo mr-1\"></i>{{ 'webcam.redo' | translate }}\n </button>\n </div>\n <div class=\"save-btn\">\n <button (click)=\"close()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-save mr-1\"></i>{{ 'webcam.save' | translate }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"modal-header\">\n <button (click)=\"close(false)\" aria-label=\"Close\" class=\"close\"><span>\u00D7</span></button>\n </div>\n </div>\n</div>\n",
|
|
3953
|
+
styles: [".webcam-overlay{align-items:center;background-color:rgba(0,0,0,.65);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:fixed;top:0;transition:opacity .15s linear;width:100%;z-index:9999}.showing{opacity:1}.webcam-container{padding:20px}.button-container{align-items:center;display:flex;height:30px;justify-content:space-evenly;margin-bottom:10px;margin-top:20px}.button-container i{margin-right:5px}.new-btn,.picture-btn,.save-btn{display:flex;justify-content:center;position:absolute}.new-btn .icon,.picture-btn .icon,.save-btn .icon{background-color:unset;border-radius:unset;display:inline-block;height:unset;margin-bottom:0;padding:0;width:unset}.new-btn,.save-btn{width:calc(50% - 65px)}.picture-btn{left:0;width:100%}.new-btn{left:0}.save-btn{right:0}.modal-header{color:grey;margin-top:35px;padding:0;position:absolute;right:-18px;top:0}.close{color:grey}.inner-container{position:relative}.video-container{height:495px;overflow:hidden}.video-container img,.video-container video{height:495px;position:absolute;width:660px}.video-container img{-o-object-fit:cover;object-fit:cover}#canvas{display:none}"]
|
|
3929
3954
|
},] }
|
|
3930
3955
|
];
|
|
3931
3956
|
WebcamComponent.propDecorators = {
|
|
@@ -4014,11 +4039,7 @@ FormIoModule.decorators = [
|
|
|
4014
4039
|
],
|
|
4015
4040
|
declarations: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
|
|
4016
4041
|
exports: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
|
|
4017
|
-
providers: [
|
|
4018
|
-
FormIoStateService,
|
|
4019
|
-
FormIoDomService,
|
|
4020
|
-
{ provide: FormioAppConfig, useValue: ɵ0$1 },
|
|
4021
|
-
],
|
|
4042
|
+
providers: [FormIoDomService, { provide: FormioAppConfig, useValue: ɵ0$1 }],
|
|
4022
4043
|
},] }
|
|
4023
4044
|
];
|
|
4024
4045
|
|
|
@@ -4484,6 +4505,65 @@ function registerFormioUploadComponent(injector) {
|
|
|
4484
4505
|
registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, FormIoUploaderComponent, UploaderComponent, injector);
|
|
4485
4506
|
}
|
|
4486
4507
|
|
|
4508
|
+
const SelectComponent = Components.components.select;
|
|
4509
|
+
function registerFormioFileSelectorComponent(injector) {
|
|
4510
|
+
const documentService = injector.get(DocumentService);
|
|
4511
|
+
const stateService = injector.get(FormIoStateService);
|
|
4512
|
+
const unavailableMessage = {
|
|
4513
|
+
label: 'could not retrieve documents',
|
|
4514
|
+
value: null,
|
|
4515
|
+
};
|
|
4516
|
+
function getDocumentResources(documentId) {
|
|
4517
|
+
if (!documentId) {
|
|
4518
|
+
return new Promise(resolve => {
|
|
4519
|
+
resolve([unavailableMessage]);
|
|
4520
|
+
});
|
|
4521
|
+
}
|
|
4522
|
+
return documentService
|
|
4523
|
+
.getDocument(documentId)
|
|
4524
|
+
.toPromise()
|
|
4525
|
+
.then(document => document.relatedFiles.map(relatedFile => {
|
|
4526
|
+
return {
|
|
4527
|
+
label: relatedFile.fileName,
|
|
4528
|
+
value: relatedFile.fileId,
|
|
4529
|
+
};
|
|
4530
|
+
}))
|
|
4531
|
+
.catch(() => {
|
|
4532
|
+
return new Promise(resolve => {
|
|
4533
|
+
resolve([unavailableMessage]);
|
|
4534
|
+
});
|
|
4535
|
+
});
|
|
4536
|
+
}
|
|
4537
|
+
class ResourceSelectorComponent extends SelectComponent {
|
|
4538
|
+
static schema(...extend) {
|
|
4539
|
+
return SelectComponent.schema(Object.assign({ type: 'resource-selector', label: 'Resource selector', key: 'resource-selector', dataSrc: 'custom', dataType: 'string', valueProperty: 'value', asyncValues: true, data: {
|
|
4540
|
+
custom: 'values = instance.getResources()',
|
|
4541
|
+
} }, extend));
|
|
4542
|
+
}
|
|
4543
|
+
getResources() {
|
|
4544
|
+
return stateService.documentId$
|
|
4545
|
+
.pipe(take(1))
|
|
4546
|
+
.toPromise()
|
|
4547
|
+
.then(documentId => getDocumentResources(documentId));
|
|
4548
|
+
}
|
|
4549
|
+
static get builderInfo() {
|
|
4550
|
+
return {
|
|
4551
|
+
title: 'Document picker',
|
|
4552
|
+
icon: 'th-list',
|
|
4553
|
+
group: 'basic',
|
|
4554
|
+
documentation: '/userguide/#textfield',
|
|
4555
|
+
weight: 0,
|
|
4556
|
+
schema: ResourceSelectorComponent.schema(),
|
|
4557
|
+
};
|
|
4558
|
+
}
|
|
4559
|
+
}
|
|
4560
|
+
Formio.use({
|
|
4561
|
+
components: {
|
|
4562
|
+
'resource-selector': ResourceSelectorComponent,
|
|
4563
|
+
},
|
|
4564
|
+
});
|
|
4565
|
+
}
|
|
4566
|
+
|
|
4487
4567
|
/*
|
|
4488
4568
|
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
4489
4569
|
*
|
|
@@ -4515,8 +4595,8 @@ class SearchableDropdownSelectComponent {
|
|
|
4515
4595
|
SearchableDropdownSelectComponent.decorators = [
|
|
4516
4596
|
{ type: Component, args: [{
|
|
4517
4597
|
selector: 'valtimo-searchable-dropdown-select',
|
|
4518
|
-
template: "<valtimo-searchable-dropdown\n *ngIf=\"!hasSelection; else selection\"\n [style]=\"style\"\n [items]=\"items\"\n [buttonText]=\"buttonText\"\n [searchText]=\"searchText\"\n [noResultsText]=\"noResultsText\"\n [disabled]=\"disabled\"\n [width]=\"width\"\n (itemSelected)=\"onSelect($event)\"\n>\n</valtimo-searchable-dropdown>\n\n<ng-template #selection>\n <div\n class=\"d-flex flex-row align-items-center\"\n [style.height.px]=\"style === 'button' ? 34 : null\"\n >\n <h5 class=\"selected-text\">\n {{ selectedText }} <b>{{ selectedTextValue }}</b>\n </h5>\n <button\n type=\"button\"\n class=\"close p-0 m-0 ml-2 d-flex text-danger\"\n aria-label=\"Close\"\n (click)=\"onClearSelection()\"\n [title]=\"clearSelectionButtonTitle\"\n >\n <i class=\"clear-icon
|
|
4519
|
-
styles: [".selected-text{margin:0}.clear-icon{font-size:
|
|
4598
|
+
template: "<valtimo-searchable-dropdown\n *ngIf=\"!hasSelection; else selection\"\n [style]=\"style\"\n [items]=\"items\"\n [buttonText]=\"buttonText\"\n [searchText]=\"searchText\"\n [noResultsText]=\"noResultsText\"\n [disabled]=\"disabled\"\n [width]=\"width\"\n (itemSelected)=\"onSelect($event)\"\n>\n</valtimo-searchable-dropdown>\n\n<ng-template #selection>\n <div\n class=\"d-flex flex-row align-items-center\"\n [style.height.px]=\"style === 'button' ? 34 : null\"\n >\n <h5 class=\"selected-text\">\n {{ selectedText }} <b>{{ selectedTextValue }}</b>\n </h5>\n <button\n type=\"button\"\n class=\"close p-0 m-0 ml-2 d-flex text-danger\"\n aria-label=\"Close\"\n (click)=\"onClearSelection()\"\n [title]=\"clearSelectionButtonTitle\"\n >\n <i class=\"clear-icon mdi mdi-close text-danger\"></i>\n </button>\n </div>\n</ng-template>\n",
|
|
4599
|
+
styles: [".selected-text{margin:0}.clear-icon{font-size:16px}"]
|
|
4520
4600
|
},] }
|
|
4521
4601
|
];
|
|
4522
4602
|
SearchableDropdownSelectComponent.propDecorators = {
|
|
@@ -4561,7 +4641,78 @@ SearchableDropdownSelectModule.decorators = [
|
|
|
4561
4641
|
];
|
|
4562
4642
|
|
|
4563
4643
|
/*
|
|
4564
|
-
* Copyright 2015-
|
|
4644
|
+
* Copyright 2015-2022 Ritense BV, the Netherlands.
|
|
4645
|
+
*
|
|
4646
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
4647
|
+
* you may not use this file except in compliance with the License.
|
|
4648
|
+
* You may obtain a copy of the License at
|
|
4649
|
+
*
|
|
4650
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
4651
|
+
*
|
|
4652
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
4653
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
4654
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4655
|
+
* See the License for the specific language governing permissions and
|
|
4656
|
+
* limitations under the License.
|
|
4657
|
+
*/
|
|
4658
|
+
class MultiselectDropdownComponent {
|
|
4659
|
+
constructor() {
|
|
4660
|
+
this.items = [];
|
|
4661
|
+
this.dropdownSettings = {
|
|
4662
|
+
singleSelection: false,
|
|
4663
|
+
selectAllText: 'Select All',
|
|
4664
|
+
unSelectAllText: 'UnSelect All',
|
|
4665
|
+
itemsShowLimit: 3,
|
|
4666
|
+
allowSearchFilter: true,
|
|
4667
|
+
};
|
|
4668
|
+
this.itemsSelected = new EventEmitter();
|
|
4669
|
+
}
|
|
4670
|
+
onItemsSelected() {
|
|
4671
|
+
this.itemsSelected.emit(this.selectedItems);
|
|
4672
|
+
}
|
|
4673
|
+
}
|
|
4674
|
+
MultiselectDropdownComponent.decorators = [
|
|
4675
|
+
{ type: Component, args: [{
|
|
4676
|
+
selector: 'valtimo-multiselect-dropdown',
|
|
4677
|
+
template: "<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-multiselect-dropdown\n [placeholder]=\"placeHolder\"\n [data]=\"items\"\n [(ngModel)]=\"selectedItems\"\n [settings]=\"dropdownSettings\"\n (onDropDownClose)=\"onItemsSelected()\"\n></ng-multiselect-dropdown>\n",
|
|
4678
|
+
styles: [""]
|
|
4679
|
+
},] }
|
|
4680
|
+
];
|
|
4681
|
+
MultiselectDropdownComponent.propDecorators = {
|
|
4682
|
+
selectedItems: [{ type: Input }],
|
|
4683
|
+
items: [{ type: Input }],
|
|
4684
|
+
placeHolder: [{ type: Input }],
|
|
4685
|
+
dropdownSettings: [{ type: Input }],
|
|
4686
|
+
itemsSelected: [{ type: Output }]
|
|
4687
|
+
};
|
|
4688
|
+
|
|
4689
|
+
/*
|
|
4690
|
+
* Copyright 2015-2022 Ritense BV, the Netherlands.
|
|
4691
|
+
*
|
|
4692
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
4693
|
+
* you may not use this file except in compliance with the License.
|
|
4694
|
+
* You may obtain a copy of the License at
|
|
4695
|
+
*
|
|
4696
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
4697
|
+
*
|
|
4698
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
4699
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
4700
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4701
|
+
* See the License for the specific language governing permissions and
|
|
4702
|
+
* limitations under the License.
|
|
4703
|
+
*/
|
|
4704
|
+
class MultiselectDropdownModule {
|
|
4705
|
+
}
|
|
4706
|
+
MultiselectDropdownModule.decorators = [
|
|
4707
|
+
{ type: NgModule, args: [{
|
|
4708
|
+
declarations: [MultiselectDropdownComponent],
|
|
4709
|
+
imports: [CommonModule, ReactiveFormsModule, NgMultiSelectDropDownModule, FormsModule],
|
|
4710
|
+
exports: [MultiselectDropdownComponent],
|
|
4711
|
+
},] }
|
|
4712
|
+
];
|
|
4713
|
+
|
|
4714
|
+
/*
|
|
4715
|
+
* Copyright 2015-2022 Ritense BV, the Netherlands.
|
|
4565
4716
|
*
|
|
4566
4717
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
4567
4718
|
* you may not use this file except in compliance with the License.
|
|
@@ -4580,5 +4731,5 @@ SearchableDropdownSelectModule.decorators = [
|
|
|
4580
4731
|
* Generated bundle index. Do not edit.
|
|
4581
4732
|
*/
|
|
4582
4733
|
|
|
4583
|
-
export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, CamundaFormComponent, CamundaFormModule, CardComponent, CardModule, ComponentsModule, DataListComponent, DataListModule, DropzoneComponent, DropzoneModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FormIoModule, FormIoUploaderComponent, FormioBuilderComponent, FormioComponent, FormioOptionsImpl, LeftSidebarComponent, LeftSidebarModule, ListComponent, ListFilterPipe, ListModule, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, PageHeaderComponent, PageHeaderModule, PageTitleComponent, PageTitleModule, ProgressBarComponent, ProgressBarModule, RightSidebarComponent, RightSidebarModule, SearchableDropdownComponent, SearchableDropdownModule, SearchableDropdownSelectComponent, SearchableDropdownSelectModule, SpinnerModule, TimelineComponent, TimelineItemImpl, TimelineModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, ViewContentService, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, customUploaderType, menuInitializer, registerFormioUploadComponent, ɵ0, CamundaGeneratedFormModule as ɵa, CamundaStringFormfieldComponent as ɵb, CamundaBooleanFormfieldComponent as ɵc, CamundaDateFormfieldComponent as ɵd, CamundaFormfieldService as ɵe, CamundaFormfieldGeneratorDirective as ɵf, CamundaLongFormfieldComponent as ɵg, CamundaEnumFormfieldComponent as ɵh, CamundaTextareaFormfieldComponent as ɵi, CamundaChoicefieldFormfieldComponent as ɵj, CamundaFormfieldValidationComponent as ɵk, CamundaGeneratedFormComponent as ɵl, CamundaCustomFormModule as ɵm, CamundaCustomFormComponent as ɵn, MenuComponent as ɵo, MenuItemTextComponent as ɵp, SubmenuItemTextComponent as ɵq, VersionService as ɵr,
|
|
4734
|
+
export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, CamundaFormComponent, CamundaFormModule, CardComponent, CardModule, ComponentsModule, DataListComponent, DataListModule, DropzoneComponent, DropzoneModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FormIoModule, FormIoStateService, FormIoUploaderComponent, FormioBuilderComponent, FormioComponent, FormioOptionsImpl, LeftSidebarComponent, LeftSidebarModule, ListComponent, ListFilterPipe, ListModule, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, MultiselectDropdownComponent, MultiselectDropdownModule, PageHeaderComponent, PageHeaderModule, PageTitleComponent, PageTitleModule, ProgressBarComponent, ProgressBarModule, RightSidebarComponent, RightSidebarModule, SearchableDropdownComponent, SearchableDropdownModule, SearchableDropdownSelectComponent, SearchableDropdownSelectModule, SpinnerModule, TimelineComponent, TimelineItemImpl, TimelineModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, ViewContentService, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, customUploaderType, menuInitializer, registerFormioFileSelectorComponent, registerFormioUploadComponent, ɵ0, CamundaGeneratedFormModule as ɵa, CamundaStringFormfieldComponent as ɵb, CamundaBooleanFormfieldComponent as ɵc, CamundaDateFormfieldComponent as ɵd, CamundaFormfieldService as ɵe, CamundaFormfieldGeneratorDirective as ɵf, CamundaLongFormfieldComponent as ɵg, CamundaEnumFormfieldComponent as ɵh, CamundaTextareaFormfieldComponent as ɵi, CamundaChoicefieldFormfieldComponent as ɵj, CamundaFormfieldValidationComponent as ɵk, CamundaGeneratedFormComponent as ɵl, CamundaCustomFormModule as ɵm, CamundaCustomFormComponent as ɵn, MenuComponent as ɵo, MenuItemTextComponent as ɵp, SubmenuItemTextComponent as ɵq, VersionService as ɵr, FormIoDomService as ɵs, AppConfig as ɵt, SpinnerComponent as ɵu };
|
|
4584
4735
|
//# sourceMappingURL=valtimo-components.js.map
|