@valtimo/components 4.16.0 → 4.19.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 -32
- 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 -3
- 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 -27
- 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 +4 -3
- 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
|
];
|
|
@@ -3742,7 +3767,6 @@ class DropzoneComponent {
|
|
|
3742
3767
|
this.dropzone.on('error', (file, message) => {
|
|
3743
3768
|
this.clearFile();
|
|
3744
3769
|
this.error$.next(message.toString());
|
|
3745
|
-
this.fileSelected.emit();
|
|
3746
3770
|
});
|
|
3747
3771
|
}
|
|
3748
3772
|
clearFile() {
|
|
@@ -3760,7 +3784,7 @@ class DropzoneComponent {
|
|
|
3760
3784
|
DropzoneComponent.decorators = [
|
|
3761
3785
|
{ type: Component, args: [{
|
|
3762
3786
|
selector: 'valtimo-dropzone',
|
|
3763
|
-
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",
|
|
3764
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}"]
|
|
3765
3789
|
},] }
|
|
3766
3790
|
];
|
|
@@ -3925,8 +3949,8 @@ class WebcamComponent {
|
|
|
3925
3949
|
WebcamComponent.decorators = [
|
|
3926
3950
|
{ type: Component, args: [{
|
|
3927
3951
|
selector: 'valtimo-webcam',
|
|
3928
|
-
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=\"
|
|
3929
|
-
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}"]
|
|
3930
3954
|
},] }
|
|
3931
3955
|
];
|
|
3932
3956
|
WebcamComponent.propDecorators = {
|
|
@@ -4015,11 +4039,7 @@ FormIoModule.decorators = [
|
|
|
4015
4039
|
],
|
|
4016
4040
|
declarations: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
|
|
4017
4041
|
exports: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
|
|
4018
|
-
providers: [
|
|
4019
|
-
FormIoStateService,
|
|
4020
|
-
FormIoDomService,
|
|
4021
|
-
{ provide: FormioAppConfig, useValue: ɵ0$1 },
|
|
4022
|
-
],
|
|
4042
|
+
providers: [FormIoDomService, { provide: FormioAppConfig, useValue: ɵ0$1 }],
|
|
4023
4043
|
},] }
|
|
4024
4044
|
];
|
|
4025
4045
|
|
|
@@ -4485,6 +4505,65 @@ function registerFormioUploadComponent(injector) {
|
|
|
4485
4505
|
registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, FormIoUploaderComponent, UploaderComponent, injector);
|
|
4486
4506
|
}
|
|
4487
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
|
+
|
|
4488
4567
|
/*
|
|
4489
4568
|
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
4490
4569
|
*
|
|
@@ -4516,8 +4595,8 @@ class SearchableDropdownSelectComponent {
|
|
|
4516
4595
|
SearchableDropdownSelectComponent.decorators = [
|
|
4517
4596
|
{ type: Component, args: [{
|
|
4518
4597
|
selector: 'valtimo-searchable-dropdown-select',
|
|
4519
|
-
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
|
|
4520
|
-
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}"]
|
|
4521
4600
|
},] }
|
|
4522
4601
|
];
|
|
4523
4602
|
SearchableDropdownSelectComponent.propDecorators = {
|
|
@@ -4562,7 +4641,78 @@ SearchableDropdownSelectModule.decorators = [
|
|
|
4562
4641
|
];
|
|
4563
4642
|
|
|
4564
4643
|
/*
|
|
4565
|
-
* 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.
|
|
4566
4716
|
*
|
|
4567
4717
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
4568
4718
|
* you may not use this file except in compliance with the License.
|
|
@@ -4581,5 +4731,5 @@ SearchableDropdownSelectModule.decorators = [
|
|
|
4581
4731
|
* Generated bundle index. Do not edit.
|
|
4582
4732
|
*/
|
|
4583
4733
|
|
|
4584
|
-
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 };
|
|
4585
4735
|
//# sourceMappingURL=valtimo-components.js.map
|