@wemake4u/form-player-se 1.0.5 → 1.0.7

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 (34) hide show
  1. package/esm2022/lib/controls/factory.mjs +5 -1
  2. package/esm2022/lib/directives/accordionpanel.directive.mjs +27 -0
  3. package/esm2022/lib/directives/collapse.directive.mjs +143 -0
  4. package/esm2022/lib/directives/date.directive.mjs +2 -2
  5. package/esm2022/lib/directives/disableform.directive.mjs +42 -0
  6. package/esm2022/lib/directives/framesecurity.directive.mjs +66 -0
  7. package/esm2022/lib/directives/repeat.directive.mjs +3 -11
  8. package/esm2022/lib/directives/tabcontrol.directive.mjs +46 -0
  9. package/esm2022/lib/directives/text.directive.mjs +100 -0
  10. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +33 -16
  11. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +119 -41
  12. package/esm2022/lib/locale/locale-it.mjs +4 -2
  13. package/esm2022/lib/services/feel.service.mjs +1 -1
  14. package/esm2022/lib/services/metadata.service.mjs +29 -0
  15. package/esm2022/lib/services/programmability.service.mjs +2 -1
  16. package/esm2022/lib/utils/groupByRow.mjs +2 -1
  17. package/fesm2022/wemake4u-form-player-se.mjs +537 -119
  18. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  19. package/lib/directives/accordionpanel.directive.d.ts +7 -0
  20. package/lib/directives/collapse.directive.d.ts +31 -0
  21. package/lib/directives/repeat.directive.d.ts +0 -1
  22. package/lib/directives/tabcontrol.directive.d.ts +14 -0
  23. package/lib/directives/text.directive.d.ts +20 -0
  24. package/lib/dynamic-fields/dynamic-fields.component.d.ts +7 -1
  25. package/lib/dynamic-form/dynamic-form.component.d.ts +12 -1
  26. package/lib/locale/locale-it.d.ts +2 -0
  27. package/lib/services/metadata.service.d.ts +13 -0
  28. package/lib/utils/gridCells.d.ts +4 -0
  29. package/lib/utils/groupByRow.d.ts +2 -0
  30. package/package.json +2 -2
  31. package/esm2022/lib/directives/disable-form.directive.mjs +0 -42
  32. package/esm2022/lib/directives/frame-security.directive.mjs +0 -66
  33. /package/lib/directives/{disable-form.directive.d.ts → disableform.directive.d.ts} +0 -0
  34. /package/lib/directives/{frame-security.directive.d.ts → framesecurity.directive.d.ts} +0 -0
@@ -0,0 +1,100 @@
1
+ import { Directive, Host, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ngx-sirio-lib";
4
+ export class TextDirective {
5
+ sirioInput;
6
+ renderer;
7
+ textcase = '';
8
+ maxlength = null;
9
+ constructor(sirioInput, renderer) {
10
+ this.sirioInput = sirioInput;
11
+ this.renderer = renderer;
12
+ const registerOnChange = this.sirioInput.registerOnChange.bind(this.sirioInput);
13
+ const coerceValue = this.coerceValue.bind(this);
14
+ this.sirioInput.registerOnChange = function (fn) {
15
+ registerOnChange(function (value) {
16
+ fn(coerceValue(value));
17
+ });
18
+ };
19
+ }
20
+ ngAfterViewInit() {
21
+ this.configureTextCase();
22
+ this.configureMaxLength();
23
+ }
24
+ ngOnChanges(changes) {
25
+ if (changes["maxlength"]) {
26
+ this.configureMaxLength();
27
+ }
28
+ }
29
+ coerceValue(value) {
30
+ return this.applyMaxLength(this.applyCase(value));
31
+ }
32
+ applyCase(value) {
33
+ if (this.textcase === "uppercase") {
34
+ return value.toUpperCase();
35
+ }
36
+ else if (this.textcase === "lowercase") {
37
+ return value.toLowerCase();
38
+ }
39
+ else {
40
+ return value;
41
+ }
42
+ }
43
+ applyMaxLength(value) {
44
+ if (this.maxlength != null && value.length > this.maxlength) {
45
+ return value.slice(0, Math.max(0, this.maxlength));
46
+ }
47
+ else {
48
+ return value;
49
+ }
50
+ }
51
+ configureTextCase() {
52
+ const inputElement = this.sirioInput.sirioInput?.nativeElement;
53
+ if (inputElement && (this.textcase === 'uppercase' || this.textcase === 'lowercase')) {
54
+ this.renderer.setStyle(inputElement, 'text-transform', this.textcase);
55
+ inputElement.oninput = (event) => {
56
+ const input = event.target;
57
+ const value = input.value;
58
+ var newValue = this.coerceValue(value);
59
+ if (newValue != value) {
60
+ this.replaceInputValue(input, newValue);
61
+ }
62
+ };
63
+ }
64
+ }
65
+ configureMaxLength() {
66
+ const inputElement = this.sirioInput.sirioInput?.nativeElement;
67
+ if (inputElement) {
68
+ if (this.maxlength == null) {
69
+ inputElement.removeAttribute('maxlength');
70
+ }
71
+ else {
72
+ inputElement.maxLength = this.maxlength;
73
+ }
74
+ }
75
+ }
76
+ replaceInputValue(input, value) {
77
+ const start = input.selectionStart || 0;
78
+ const end = input.selectionEnd || 0;
79
+ input.value = value;
80
+ setTimeout(() => {
81
+ input.setSelectionRange(start, end);
82
+ }, 0);
83
+ }
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextDirective, deps: [{ token: i1.SirioInputComponent, host: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
85
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TextDirective, isStandalone: true, selector: "[textcase], [maxlength]", inputs: { textcase: "textcase", maxlength: "maxlength" }, usesOnChanges: true, ngImport: i0 });
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextDirective, decorators: [{
88
+ type: Directive,
89
+ args: [{
90
+ selector: '[textcase], [maxlength]',
91
+ standalone: true
92
+ }]
93
+ }], ctorParameters: () => [{ type: i1.SirioInputComponent, decorators: [{
94
+ type: Host
95
+ }] }, { type: i0.Renderer2 }], propDecorators: { textcase: [{
96
+ type: Input
97
+ }], maxlength: [{
98
+ type: Input
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL3RleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFhLEtBQUssRUFBMkMsTUFBTSxlQUFlLENBQUM7OztBQU8zRyxNQUFNLE9BQU8sYUFBYTtJQUlJO0lBQ2hCO0lBSkgsUUFBUSxHQUFtQyxFQUFFLENBQUM7SUFDOUMsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFFekMsWUFBNEIsVUFBK0IsRUFDL0MsUUFBbUI7UUFESCxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRTdCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxFQUFvQjtZQUMvRCxnQkFBZ0IsQ0FBQyxVQUFVLEtBQVU7Z0JBQ25DLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFD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Qzt3R0EvRlUsYUFBYTs0RkFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUp6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBS2MsSUFBSTtpRUFIUixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIFJlbmRlcmVyMiwgSW5wdXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaXJpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0ZXh0Y2FzZV0sIFttYXhsZW5ndGhdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0ZXh0Y2FzZTogJycgfCAndXBwZXJjYXNlJyB8ICdsb3dlcmNhc2UnID0gJyc7XHJcbiAgQElucHV0KCkgbWF4bGVuZ3RoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIHNpcmlvSW5wdXQ6IFNpcmlvSW5wdXRDb21wb25lbnRcclxuICAgICwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcblxyXG4gICAgY29uc3QgcmVnaXN0ZXJPbkNoYW5nZSA9IHRoaXMuc2lyaW9JbnB1dC5yZWdpc3Rlck9uQ2hhbmdlLmJpbmQodGhpcy5zaXJpb0lucHV0KTtcclxuXHJcbiAgICBjb25zdCBjb2VyY2VWYWx1ZSA9IHRoaXMuY29lcmNlVmFsdWUuYmluZCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLnNpcmlvSW5wdXQucmVnaXN0ZXJPbkNoYW5nZSA9IGZ1bmN0aW9uIChmbjogKF86IGFueSkgPT4gdm9pZCkge1xyXG4gICAgICByZWdpc3Rlck9uQ2hhbmdlKGZ1bmN0aW9uICh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgZm4oY29lcmNlVmFsdWUodmFsdWUpKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWd1cmVUZXh0Q2FzZSgpO1xyXG4gICAgdGhpcy5jb25maWd1cmVNYXhMZW5ndGgoKTsgICAgXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcIm1heGxlbmd0aFwiXSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ3VyZU1heExlbmd0aCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb2VyY2VWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nXHJcbiAge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBwbHlNYXhMZW5ndGgoXHJcbiAgICAgIHRoaXMuYXBwbHlDYXNlKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5Q2FzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnRleHRjYXNlID09PSBcInVwcGVyY2FzZVwiKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy50ZXh0Y2FzZSA9PT0gXCJsb3dlcmNhc2VcIikge1xyXG4gICAgICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5TWF4TGVuZ3RoKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMubWF4bGVuZ3RoICE9IG51bGwgJiYgdmFsdWUubGVuZ3RoID4gdGhpcy5tYXhsZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLnNsaWNlKDAsIE1hdGgubWF4KDAsIHRoaXMubWF4bGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWd1cmVUZXh0Q2FzZSgpIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuc2lyaW9JbnB1dC5zaXJpb0lucHV0Py5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKGlucHV0RWxlbWVudCAmJiAodGhpcy50ZXh0Y2FzZSA9PT0gJ3VwcGVyY2FzZScgfHwgdGhpcy50ZXh0Y2FzZSA9PT0gJ2xvd2VyY2FzZScpKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaW5wdXRFbGVtZW50LCAndGV4dC10cmFuc2Zvcm0nLCB0aGlzLnRleHRjYXNlKTtcclxuXHJcbiAgICAgIGlucHV0RWxlbWVudC5vbmlucHV0ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWx1ZTtcclxuXHJcbiAgICAgICAgdmFyIG5ld1ZhbHVlID0gdGhpcy5jb2VyY2VWYWx1ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPSB2YWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSW5wdXRWYWx1ZShpbnB1dCwgbmV3VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWd1cmVNYXhMZW5ndGgoKSB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLnNpcmlvSW5wdXQuc2lyaW9JbnB1dD8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpZiAoaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIGlmICh0aGlzLm1heGxlbmd0aCA9PSBudWxsKSB7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbWF4bGVuZ3RoJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50Lm1heExlbmd0aCA9IHRoaXMubWF4bGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXBsYWNlSW5wdXRWYWx1ZShpbnB1dDogSFRNTElucHV0RWxlbWVudCwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwO1xyXG4gICAgY29uc3QgZW5kID0gaW5wdXQuc2VsZWN0aW9uRW5kIHx8IDA7XHJcblxyXG4gICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==