@valtimo/components 4.18.0 → 4.21.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.
Files changed (123) hide show
  1. package/assets/css/ng-multiselect-dropdown.theme.scss +2 -4
  2. package/bundles/valtimo-components.umd.js +127 -30
  3. package/bundles/valtimo-components.umd.js.map +1 -1
  4. package/bundles/valtimo-components.umd.min.js +2 -2
  5. package/bundles/valtimo-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/components/alert/alert.component.js +1 -1
  7. package/esm2015/lib/components/alert/alert.module.js +1 -1
  8. package/esm2015/lib/components/alert/alert.service.js +1 -1
  9. package/esm2015/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.js +1 -1
  10. package/esm2015/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.js +1 -1
  11. package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.js +1 -1
  12. package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.js +1 -1
  13. package/esm2015/lib/components/camunda/form/camunda-form.components.js +1 -1
  14. package/esm2015/lib/components/camunda/form/camunda-form.module.js +1 -1
  15. package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.component.js +1 -1
  16. package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.module.js +1 -1
  17. package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.component.js +1 -1
  18. package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.module.js +1 -1
  19. package/esm2015/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +1 -1
  20. package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +1 -1
  21. package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield.service.js +1 -1
  22. package/esm2015/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +1 -1
  23. package/esm2015/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +1 -1
  24. package/esm2015/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +1 -1
  25. package/esm2015/lib/components/camunda/form/generated/formfield/formfield.model.js +1 -1
  26. package/esm2015/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.js +1 -1
  27. package/esm2015/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.js +1 -1
  28. package/esm2015/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +1 -1
  29. package/esm2015/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +1 -1
  30. package/esm2015/lib/components/camunda/form/generated/formfield/validation/date.validators.js +1 -1
  31. package/esm2015/lib/components/card/card.component.js +1 -1
  32. package/esm2015/lib/components/card/card.module.js +1 -1
  33. package/esm2015/lib/components/components.module.js +1 -1
  34. package/esm2015/lib/components/data-list/data-list.component.js +1 -1
  35. package/esm2015/lib/components/data-list/data-list.module.js +1 -1
  36. package/esm2015/lib/components/dropzone/dropzone.component.js +1 -1
  37. package/esm2015/lib/components/dropzone/dropzone.module.js +1 -1
  38. package/esm2015/lib/components/field-auto-focus/field-auto-focus.directive.js +1 -1
  39. package/esm2015/lib/components/field-auto-focus/field-auto-focus.module.js +1 -1
  40. package/esm2015/lib/components/file-size/file-size.module.js +1 -1
  41. package/esm2015/lib/components/file-size/file-size.pipe.js +1 -1
  42. package/esm2015/lib/components/filter-sidebar/filter-sidebar.component.js +1 -1
  43. package/esm2015/lib/components/filter-sidebar/filter-sidebar.module.js +1 -1
  44. package/esm2015/lib/components/form-io/form-io-builder.component.js +1 -1
  45. package/esm2015/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.js +63 -0
  46. package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.js +1 -1
  47. package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.component.js +1 -1
  48. package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.formio.js +1 -1
  49. package/esm2015/lib/components/form-io/form-io.component.js +14 -10
  50. package/esm2015/lib/components/form-io/form-io.module.js +2 -7
  51. package/esm2015/lib/components/form-io/formio-config.js +1 -1
  52. package/esm2015/lib/components/form-io/services/form-io-dom.service.js +1 -1
  53. package/esm2015/lib/components/form-io/services/form-io-state.service.js +13 -2
  54. package/esm2015/lib/components/left-sidebar/left-sidebar.component.js +1 -1
  55. package/esm2015/lib/components/left-sidebar/left-sidebar.module.js +1 -1
  56. package/esm2015/lib/components/list/ListFilterPipe.directive.js +1 -1
  57. package/esm2015/lib/components/list/list.component.js +4 -3
  58. package/esm2015/lib/components/list/list.module.js +1 -1
  59. package/esm2015/lib/components/menu/menu-item-text.component.js +1 -1
  60. package/esm2015/lib/components/menu/menu-routing.module.js +1 -1
  61. package/esm2015/lib/components/menu/menu.component.js +5 -3
  62. package/esm2015/lib/components/menu/menu.init.js +1 -1
  63. package/esm2015/lib/components/menu/menu.module.js +1 -1
  64. package/esm2015/lib/components/menu/menu.service.js +12 -4
  65. package/esm2015/lib/components/menu/submenu-item-text.component.js +1 -1
  66. package/esm2015/lib/components/modal/modal.component.js +1 -1
  67. package/esm2015/lib/components/modal/modal.module.js +1 -1
  68. package/esm2015/lib/components/multiselect-dropdown/multiselect-dropdown.component.js +1 -1
  69. package/esm2015/lib/components/multiselect-dropdown/multiselect-dropdown.module.js +1 -1
  70. package/esm2015/lib/components/page-header/page-header.component.js +1 -1
  71. package/esm2015/lib/components/page-header/page-header.module.js +1 -1
  72. package/esm2015/lib/components/page-title/page-title.component.js +1 -1
  73. package/esm2015/lib/components/page-title/page-title.module.js +1 -1
  74. package/esm2015/lib/components/progress-bar/progress-bar.component.js +1 -1
  75. package/esm2015/lib/components/progress-bar/progress-bar.module.js +1 -1
  76. package/esm2015/lib/components/right-sidebar/right-sidebar.component.js +1 -1
  77. package/esm2015/lib/components/right-sidebar/right-sidebar.module.js +1 -1
  78. package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.component.js +1 -1
  79. package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.module.js +1 -1
  80. package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.js +1 -1
  81. package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.js +1 -1
  82. package/esm2015/lib/components/spinner/spinner.component.js +1 -1
  83. package/esm2015/lib/components/spinner/spinner.module.js +1 -1
  84. package/esm2015/lib/components/timeline/timeline.component.js +1 -1
  85. package/esm2015/lib/components/timeline/timeline.module.js +1 -1
  86. package/esm2015/lib/components/topbar/topbar.component.js +1 -1
  87. package/esm2015/lib/components/topbar/topbar.module.js +1 -1
  88. package/esm2015/lib/components/uploader/uploader-drag-drop.directive.js +1 -1
  89. package/esm2015/lib/components/uploader/uploader.component.js +1 -1
  90. package/esm2015/lib/components/uploader/uploader.module.js +1 -1
  91. package/esm2015/lib/components/version/version.service.js +1 -1
  92. package/esm2015/lib/components/view-content/type-converters/booleanTypeConverter.js +1 -1
  93. package/esm2015/lib/components/view-content/type-converters/dateTypeConverter.js +1 -1
  94. package/esm2015/lib/components/view-content/type-converters/enumTypeConverter.js +1 -1
  95. package/esm2015/lib/components/view-content/type-converters/relatedFilesTypeConverter.js +1 -1
  96. package/esm2015/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +1 -1
  97. package/esm2015/lib/components/view-content/type-converters/stringTypeConverter.js +1 -1
  98. package/esm2015/lib/components/view-content/type-converters/type-converters.model.js +1 -1
  99. package/esm2015/lib/components/view-content/view-content.service.js +1 -1
  100. package/esm2015/lib/components/webcam/webcam.component.js +1 -1
  101. package/esm2015/lib/components/webcam/webcam.module.js +1 -1
  102. package/esm2015/lib/components/widget/widget.component.js +1 -1
  103. package/esm2015/lib/components/widget/widget.module.js +1 -1
  104. package/esm2015/lib/models/alert.model.js +1 -1
  105. package/esm2015/lib/models/form-io.model.js +1 -1
  106. package/esm2015/lib/models/index.js +1 -1
  107. package/esm2015/lib/models/pagination.model.js +1 -1
  108. package/esm2015/lib/models/searchable-dropdown.model.js +1 -1
  109. package/esm2015/lib/models/timeline.model.js +1 -1
  110. package/esm2015/lib/models/version.model.js +1 -1
  111. package/esm2015/public_api.js +3 -1
  112. package/esm2015/valtimo-components.js +4 -5
  113. package/fesm2015/valtimo-components.js +104 -25
  114. package/fesm2015/valtimo-components.js.map +1 -1
  115. package/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.d.ts +2 -0
  116. package/lib/components/form-io/services/form-io-state.service.d.ts +3 -0
  117. package/lib/components/menu/menu.component.d.ts +4 -0
  118. package/lib/components/menu/menu.service.d.ts +10 -6
  119. package/lib/models/form-io.model.d.ts +4 -0
  120. package/package.json +1 -1
  121. package/public_api.d.ts +2 -0
  122. package/valtimo-components.d.ts +3 -4
  123. package/valtimo-components.metadata.json +1 -1
@@ -168,9 +168,7 @@ $disable-background-color: #eceeef;
168
168
  background-color: inherit;
169
169
  }
170
170
 
171
- .multiselect-item-checkbox
172
- input[type='checkbox']:disabled:checked
173
- + div:before {
171
+ .multiselect-item-checkbox input[type='checkbox']:disabled:checked + div:before {
174
172
  background-color: #cccccc;
175
173
  }
176
174
 
@@ -207,4 +205,4 @@ $disable-background-color: #eceeef;
207
205
  50% {
208
206
  box-shadow: 0 0 0 2px $base-color;
209
207
  }
210
- }
208
+ }
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('moment'), require('@valtimo/choicefield'), require('@angular/router'), require('ngx-logger'), require('@valtimo/config'), require('rxjs'), require('@valtimo/document'), require('@valtimo/security'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-translate/core'), require('@angular/common/http'), require('@valtimo/context'), require('rxjs/operators'), require('@angular/platform-browser'), require('bpmn-js/dist/bpmn-navigated-viewer.production.min.js'), require('heatmap.js-fixed/build/heatmap.js'), require('@valtimo/resource'), require('angular-formio'), require('jwt-decode'), require('dropzone'), require('ngx-spinner'), require('ng-multiselect-dropdown')) :
3
- typeof define === 'function' && define.amd ? define('@valtimo/components', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'moment', '@valtimo/choicefield', '@angular/router', 'ngx-logger', '@valtimo/config', 'rxjs', '@valtimo/document', '@valtimo/security', '@ng-bootstrap/ng-bootstrap', '@ngx-translate/core', '@angular/common/http', '@valtimo/context', 'rxjs/operators', '@angular/platform-browser', 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js', 'heatmap.js-fixed/build/heatmap.js', '@valtimo/resource', 'angular-formio', 'jwt-decode', 'dropzone', 'ngx-spinner', 'ng-multiselect-dropdown'], factory) :
4
- (global = global || self, factory((global.valtimo = global.valtimo || {}, global.valtimo.components = {}), global.ng.core, global.ng.common, global.ng.forms, global.moment, global.choicefield, global.ng.router, global.ngxLogger, global.config, global.rxjs, global.document, global.security, global.ngBootstrap, global.core$1, global.ng.common.http, global.context, global.rxjs.operators, global.ng.platformBrowser, global.BpmnJS, global.heatmap, global.resource, global.angularFormio, global.jwt_decode, global.Dropzone, global.ngxSpinner, global.ngMultiselectDropdown));
5
- }(this, (function (exports, i0, common, forms, momentImported, choicefield, i1, i4, i1$1, rxjs, i2, i3, ngBootstrap, core, i1$2, context, operators, platformBrowser, BpmnJS, heatmap, resource, angularFormio, jwt_decode, Dropzone, ngxSpinner, ngMultiselectDropdown) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('moment'), require('@valtimo/choicefield'), require('@angular/router'), require('@valtimo/config'), require('ngx-logger'), require('rxjs'), require('@valtimo/document'), require('@valtimo/security'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-translate/core'), require('@angular/common/http'), require('@valtimo/context'), require('rxjs/operators'), require('@angular/platform-browser'), require('bpmn-js/dist/bpmn-navigated-viewer.production.min.js'), require('heatmap.js-fixed/build/heatmap.js'), require('@valtimo/resource'), require('angular-formio'), require('jwt-decode'), require('dropzone'), require('ngx-spinner'), require('ng-multiselect-dropdown')) :
3
+ typeof define === 'function' && define.amd ? define('@valtimo/components', ['exports', '@angular/core', '@angular/common', '@angular/forms', 'moment', '@valtimo/choicefield', '@angular/router', '@valtimo/config', 'ngx-logger', 'rxjs', '@valtimo/document', '@valtimo/security', '@ng-bootstrap/ng-bootstrap', '@ngx-translate/core', '@angular/common/http', '@valtimo/context', 'rxjs/operators', '@angular/platform-browser', 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js', 'heatmap.js-fixed/build/heatmap.js', '@valtimo/resource', 'angular-formio', 'jwt-decode', 'dropzone', 'ngx-spinner', 'ng-multiselect-dropdown'], factory) :
4
+ (global = global || self, factory((global.valtimo = global.valtimo || {}, global.valtimo.components = {}), global.ng.core, global.ng.common, global.ng.forms, global.moment, global.choicefield, global.ng.router, global.config, global.ngxLogger, global.rxjs, global.document, global.security, global.ngBootstrap, global.core$1, global.ng.common.http, global.context, global.rxjs.operators, global.ng.platformBrowser, global.BpmnJS, global.heatmap, global.resource, global.angularFormio, global.jwt_decode, global.Dropzone, global.ngxSpinner, global.ngMultiselectDropdown));
5
+ }(this, (function (exports, i0, common, forms, momentImported, choicefield, i1, i1$1, i4, rxjs, i2, i3, ngBootstrap, core, i1$2, context, operators, platformBrowser, BpmnJS, heatmap, resource, angularFormio, jwt_decode, Dropzone, ngxSpinner, ngMultiselectDropdown) { 'use strict';
6
6
 
7
7
  jwt_decode = jwt_decode && Object.prototype.hasOwnProperty.call(jwt_decode, 'default') ? jwt_decode['default'] : jwt_decode;
8
8
 
@@ -958,11 +958,13 @@
958
958
  * limitations under the License.
959
959
  */
960
960
  var MenuService = /** @class */ (function () {
961
- function MenuService(configService, documentService, userProviderService, logger) {
961
+ function MenuService(configService, documentService, userProviderService, logger, menuIncludeService) {
962
962
  this.configService = configService;
963
963
  this.documentService = documentService;
964
964
  this.userProviderService = userProviderService;
965
965
  this.logger = logger;
966
+ this.menuIncludeService = menuIncludeService;
967
+ this.includeFunctionObservables = {};
966
968
  this._menuItems$ = new rxjs.BehaviorSubject(undefined);
967
969
  this.menuConfig = configService.config.menu;
968
970
  }
@@ -984,6 +986,10 @@
984
986
  var _this = this;
985
987
  var menuItems = [];
986
988
  this.menuConfig.menuItems.forEach(function (menuItem) {
989
+ if (menuItem.includeFunction !== undefined) {
990
+ _this.includeFunctionObservables[menuItem.title] =
991
+ _this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);
992
+ }
987
993
  menuItem.show = true;
988
994
  menuItems.push(menuItem);
989
995
  });
@@ -1055,7 +1061,7 @@
1055
1061
  };
1056
1062
  return MenuService;
1057
1063
  }());
1058
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(i0.ɵɵinject(i1$1.ConfigService), i0.ɵɵinject(i2.DocumentService), i0.ɵɵinject(i3.UserProviderService), i0.ɵɵinject(i4.NGXLogger)); }, token: MenuService, providedIn: "root" });
1064
+ MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(i0.ɵɵinject(i1$1.ConfigService), i0.ɵɵinject(i2.DocumentService), i0.ɵɵinject(i3.UserProviderService), i0.ɵɵinject(i4.NGXLogger), i0.ɵɵinject(i1$1.MenuIncludeService)); }, token: MenuService, providedIn: "root" });
1059
1065
  MenuService.decorators = [
1060
1066
  { type: i0.Injectable, args: [{
1061
1067
  providedIn: 'root',
@@ -1065,7 +1071,8 @@
1065
1071
  { type: i1$1.ConfigService },
1066
1072
  { type: i2.DocumentService },
1067
1073
  { type: i3.UserProviderService },
1068
- { type: i4.NGXLogger }
1074
+ { type: i4.NGXLogger },
1075
+ { type: i1$1.MenuIncludeService }
1069
1076
  ]; };
1070
1077
 
1071
1078
  /*
@@ -1117,6 +1124,8 @@
1117
1124
  this.elRef = elRef;
1118
1125
  this.renderer = renderer;
1119
1126
  this.router = router;
1127
+ this.includeFunctionObservables = {};
1128
+ this.includeFunctionObservables = this.menuService.includeFunctionObservables;
1120
1129
  }
1121
1130
  MenuComponent.prototype.ngOnInit = function () {
1122
1131
  var _this = this;
@@ -1150,8 +1159,8 @@
1150
1159
  MenuComponent.decorators = [
1151
1160
  { type: i0.Component, args: [{
1152
1161
  selector: 'valtimo-menu',
1153
- 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",
1154
- styles: [".c-default{cursor:default}.sub-item{cursor:pointer}"]
1162
+ 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",
1163
+ styles: [".c-default{cursor:default}.sub-item{cursor:pointer}.menu-item--hidden{display:none}.menu-item--visible{display:block}"]
1155
1164
  },] }
1156
1165
  ];
1157
1166
  MenuComponent.ctorParameters = function () { return [
@@ -2362,6 +2371,7 @@
2362
2371
  item.listItemFields = _this.fields.map(function (field) { return ({
2363
2372
  key: field.key,
2364
2373
  label: field.label,
2374
+ type: field.type || '',
2365
2375
  value: _this.resolveObject(field, item),
2366
2376
  }); });
2367
2377
  });
@@ -2426,8 +2436,8 @@
2426
2436
  ListComponent.decorators = [
2427
2437
  { type: i0.Component, args: [{
2428
2438
  selector: 'valtimo-list',
2429
- 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 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",
2430
- 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}.action-icon{font-size:16px}"]
2439
+ 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",
2440
+ 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}"]
2431
2441
  },] }
2432
2442
  ];
2433
2443
  ListComponent.ctorParameters = function () { return [
@@ -3795,6 +3805,7 @@
3795
3805
  var FormIoStateService = /** @class */ (function () {
3796
3806
  function FormIoStateService() {
3797
3807
  this._documentDefinitionName$ = new rxjs.BehaviorSubject(undefined);
3808
+ this._documentId$ = new rxjs.BehaviorSubject(undefined);
3798
3809
  this._currentForm$ = new rxjs.BehaviorSubject(undefined);
3799
3810
  }
3800
3811
  Object.defineProperty(FormIoStateService.prototype, "documentDefinitionName$", {
@@ -3807,6 +3818,16 @@
3807
3818
  FormIoStateService.prototype.setDocumentDefinitionName = function (documentDefinitionName) {
3808
3819
  this._documentDefinitionName$.next(documentDefinitionName);
3809
3820
  };
3821
+ Object.defineProperty(FormIoStateService.prototype, "documentId$", {
3822
+ get: function () {
3823
+ return this._documentId$.asObservable();
3824
+ },
3825
+ enumerable: false,
3826
+ configurable: true
3827
+ });
3828
+ FormIoStateService.prototype.setDocumentId = function (documentId) {
3829
+ this._documentId$.next(documentId);
3830
+ };
3810
3831
  Object.defineProperty(FormIoStateService.prototype, "currentForm$", {
3811
3832
  get: function () {
3812
3833
  return this._currentForm$.asObservable();
@@ -3823,8 +3844,11 @@
3823
3844
  });
3824
3845
  return FormIoStateService;
3825
3846
  }());
3847
+ FormIoStateService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormIoStateService_Factory() { return new FormIoStateService(); }, token: FormIoStateService, providedIn: "root" });
3826
3848
  FormIoStateService.decorators = [
3827
- { type: i0.Injectable }
3849
+ { type: i0.Injectable, args: [{
3850
+ providedIn: 'root',
3851
+ },] }
3828
3852
  ];
3829
3853
 
3830
3854
  /*
@@ -3858,15 +3882,17 @@
3858
3882
  }
3859
3883
  FormioComponent.prototype.ngOnInit = function () {
3860
3884
  var documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');
3885
+ var documentId = this.route.snapshot.paramMap.get('documentId');
3861
3886
  var formDefinition = this.form;
3862
3887
  this.formDefinition = formDefinition;
3863
3888
  this.errors = [];
3864
- if (this.formHasLegacyUpload(formDefinition)) {
3865
- this.setInitialToken();
3866
- }
3889
+ this.setInitialToken();
3867
3890
  if (documentDefinitionName) {
3868
3891
  this.stateService.setDocumentDefinitionName(documentDefinitionName);
3869
3892
  }
3893
+ if (documentId) {
3894
+ this.stateService.setDocumentId(documentId);
3895
+ }
3870
3896
  this.subscribeFormRefresh();
3871
3897
  this.openLanguageSubscription();
3872
3898
  };
@@ -3874,9 +3900,7 @@
3874
3900
  var currentForm = changes.form.currentValue;
3875
3901
  this.formDefinition = currentForm;
3876
3902
  this.reloadForm();
3877
- if (this.formHasLegacyUpload(currentForm)) {
3878
- this.setInitialToken();
3879
- }
3903
+ this.setInitialToken();
3880
3904
  if (changes.formDefinitionRefresh$) {
3881
3905
  this.unsubscribeFormRefresh();
3882
3906
  this.subscribeFormRefresh();
@@ -3920,6 +3944,7 @@
3920
3944
  };
3921
3945
  FormioComponent.prototype.setToken = function (token) {
3922
3946
  angularFormio.Formio.setToken(token);
3947
+ localStorage.setItem('formioToken', token);
3923
3948
  this.setTimerForTokenRefresh(token);
3924
3949
  this.logger.debug('New token set for form.io.');
3925
3950
  };
@@ -3927,9 +3952,12 @@
3927
3952
  var _this = this;
3928
3953
  var tokenExp = jwt_decode(token).exp * 1000;
3929
3954
  var expiryTime = tokenExp - Date.now() - 1000;
3930
- this.tokenRefreshTimerSubscription = rxjs.timer(expiryTime).subscribe(function () {
3931
- _this.refreshToken();
3932
- });
3955
+ if (!this.tokenRefreshTimerSubscription) {
3956
+ this.tokenRefreshTimerSubscription = rxjs.timer(expiryTime).subscribe(function () {
3957
+ _this.refreshToken();
3958
+ });
3959
+ }
3960
+ ;
3933
3961
  this.logger.debug("Timer for form.io token refresh set for: " + expiryTime + "ms.");
3934
3962
  };
3935
3963
  FormioComponent.prototype.refreshToken = function () {
@@ -4520,11 +4548,7 @@
4520
4548
  ],
4521
4549
  declarations: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
4522
4550
  exports: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
4523
- providers: [
4524
- FormIoStateService,
4525
- FormIoDomService,
4526
- { provide: angularFormio.FormioAppConfig, useValue: ɵ0$1 },
4527
- ],
4551
+ providers: [FormIoDomService, { provide: angularFormio.FormioAppConfig, useValue: ɵ0$1 }],
4528
4552
  },] }
4529
4553
  ];
4530
4554
 
@@ -4996,6 +5020,78 @@
4996
5020
  angularFormio.registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, FormIoUploaderComponent, UploaderComponent, injector);
4997
5021
  }
4998
5022
 
5023
+ var SelectComponent = angularFormio.Components.components.select;
5024
+ function registerFormioFileSelectorComponent(injector) {
5025
+ var documentService = injector.get(i2.DocumentService);
5026
+ var stateService = injector.get(FormIoStateService);
5027
+ var unavailableMessage = {
5028
+ label: 'could not retrieve documents',
5029
+ value: null,
5030
+ };
5031
+ function getDocumentResources(documentId) {
5032
+ if (!documentId) {
5033
+ return new Promise(function (resolve) {
5034
+ resolve([unavailableMessage]);
5035
+ });
5036
+ }
5037
+ return documentService
5038
+ .getDocument(documentId)
5039
+ .toPromise()
5040
+ .then(function (document) { return document.relatedFiles.map(function (relatedFile) {
5041
+ return {
5042
+ label: relatedFile.fileName,
5043
+ value: relatedFile.fileId,
5044
+ };
5045
+ }); })
5046
+ .catch(function () {
5047
+ return new Promise(function (resolve) {
5048
+ resolve([unavailableMessage]);
5049
+ });
5050
+ });
5051
+ }
5052
+ var ResourceSelectorComponent = /** @class */ (function (_super) {
5053
+ __extends(ResourceSelectorComponent, _super);
5054
+ function ResourceSelectorComponent() {
5055
+ return _super !== null && _super.apply(this, arguments) || this;
5056
+ }
5057
+ ResourceSelectorComponent.schema = function () {
5058
+ var extend = [];
5059
+ for (var _i = 0; _i < arguments.length; _i++) {
5060
+ extend[_i] = arguments[_i];
5061
+ }
5062
+ return SelectComponent.schema(Object.assign({ type: 'resource-selector', label: 'Resource selector', key: 'resource-selector', dataSrc: 'custom', dataType: 'string', valueProperty: 'value', asyncValues: true, data: {
5063
+ custom: 'values = instance.getResources()',
5064
+ } }, extend));
5065
+ };
5066
+ ResourceSelectorComponent.prototype.getResources = function () {
5067
+ return stateService.documentId$
5068
+ .pipe(operators.take(1))
5069
+ .toPromise()
5070
+ .then(function (documentId) { return getDocumentResources(documentId); });
5071
+ };
5072
+ Object.defineProperty(ResourceSelectorComponent, "builderInfo", {
5073
+ get: function () {
5074
+ return {
5075
+ title: 'Document picker',
5076
+ icon: 'th-list',
5077
+ group: 'basic',
5078
+ documentation: '/userguide/#textfield',
5079
+ weight: 0,
5080
+ schema: ResourceSelectorComponent.schema(),
5081
+ };
5082
+ },
5083
+ enumerable: false,
5084
+ configurable: true
5085
+ });
5086
+ return ResourceSelectorComponent;
5087
+ }(SelectComponent));
5088
+ angularFormio.Formio.use({
5089
+ components: {
5090
+ 'resource-selector': ResourceSelectorComponent,
5091
+ },
5092
+ });
5093
+ }
5094
+
4999
5095
  /*
5000
5096
  * Copyright 2015-2020 Ritense BV, the Netherlands.
5001
5097
  *
@@ -5196,6 +5292,7 @@
5196
5292
  exports.FilterSidebarComponent = FilterSidebarComponent;
5197
5293
  exports.FilterSidebarModule = FilterSidebarModule;
5198
5294
  exports.FormIoModule = FormIoModule;
5295
+ exports.FormIoStateService = FormIoStateService;
5199
5296
  exports.FormIoUploaderComponent = FormIoUploaderComponent;
5200
5297
  exports.FormioBuilderComponent = FormioBuilderComponent;
5201
5298
  exports.FormioComponent = FormioComponent;
@@ -5240,6 +5337,7 @@
5240
5337
  exports.WidgetModule = WidgetModule;
5241
5338
  exports.customUploaderType = customUploaderType;
5242
5339
  exports.menuInitializer = menuInitializer;
5340
+ exports.registerFormioFileSelectorComponent = registerFormioFileSelectorComponent;
5243
5341
  exports.registerFormioUploadComponent = registerFormioUploadComponent;
5244
5342
  exports.ɵ0 = ɵ0;
5245
5343
  exports.ɵa = CamundaGeneratedFormModule;
@@ -5260,10 +5358,9 @@
5260
5358
  exports.ɵp = MenuItemTextComponent;
5261
5359
  exports.ɵq = SubmenuItemTextComponent;
5262
5360
  exports.ɵr = VersionService;
5263
- exports.ɵs = FormIoStateService;
5264
- exports.ɵt = FormIoDomService;
5265
- exports.ɵu = AppConfig;
5266
- exports.ɵv = SpinnerComponent;
5361
+ exports.ɵs = FormIoDomService;
5362
+ exports.ɵt = AppConfig;
5363
+ exports.ɵu = SpinnerComponent;
5267
5364
 
5268
5365
  Object.defineProperty(exports, '__esModule', { value: true });
5269
5366