@ajf/material 18.4.1 → 18.5.1

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 (76) hide show
  1. package/README.md +167 -2
  2. package/audio/src/audio-module.d.ts +7 -6
  3. package/esm2022/audio/src/audio-module.mjs +22 -4
  4. package/esm2022/audio/src/audio.mjs +6 -6
  5. package/esm2022/barcode/barcode.mjs +3 -3
  6. package/esm2022/calendar/calendar.mjs +2 -2
  7. package/esm2022/checkbox-group/checkbox-group-item.mjs +3 -3
  8. package/esm2022/form-builder/form-builder-service.mjs +121 -32
  9. package/esm2022/form-builder/form-builder-utils.mjs +25 -1
  10. package/esm2022/form-builder/node-entry.mjs +18 -4
  11. package/esm2022/form-builder/node-properties.mjs +11 -17
  12. package/esm2022/forms/boolean-field.mjs +6 -5
  13. package/esm2022/forms/current-slide.mjs +92 -0
  14. package/esm2022/forms/date-input-field.mjs +7 -9
  15. package/esm2022/forms/display-field.mjs +2 -2
  16. package/esm2022/forms/empty-field.mjs +3 -3
  17. package/esm2022/forms/field-row.mjs +117 -0
  18. package/esm2022/forms/field.mjs +2 -2
  19. package/esm2022/forms/form.mjs +107 -13
  20. package/esm2022/forms/forms-module.mjs +26 -3
  21. package/esm2022/forms/input-field.mjs +6 -8
  22. package/esm2022/forms/multiple-choice-field.mjs +45 -10
  23. package/esm2022/forms/public_api.mjs +6 -1
  24. package/esm2022/forms/range-field.mjs +5 -6
  25. package/esm2022/forms/rep-strip.mjs +61 -0
  26. package/esm2022/forms/single-choice-field.mjs +26 -11
  27. package/esm2022/forms/slide-header.mjs +68 -0
  28. package/esm2022/forms/slide-stats.mjs +148 -0
  29. package/esm2022/forms/table-field.mjs +2 -2
  30. package/esm2022/forms/text-field.mjs +2 -2
  31. package/esm2022/forms/video-url-field.mjs +6 -8
  32. package/esm2022/geolocation/geolocation.mjs +4 -6
  33. package/esm2022/node-icon/node-icon.mjs +4 -1
  34. package/esm2022/page-slider/page-slider.mjs +3 -3
  35. package/esm2022/signature/signature.mjs +5 -6
  36. package/esm2022/time/time-module.mjs +22 -4
  37. package/esm2022/time/time.mjs +4 -4
  38. package/fesm2022/ajf-material-audio.mjs +27 -9
  39. package/fesm2022/ajf-material-audio.mjs.map +1 -1
  40. package/fesm2022/ajf-material-barcode.mjs +2 -2
  41. package/fesm2022/ajf-material-barcode.mjs.map +1 -1
  42. package/fesm2022/ajf-material-calendar.mjs +2 -2
  43. package/fesm2022/ajf-material-calendar.mjs.map +1 -1
  44. package/fesm2022/ajf-material-checkbox-group.mjs +2 -2
  45. package/fesm2022/ajf-material-checkbox-group.mjs.map +1 -1
  46. package/fesm2022/ajf-material-form-builder.mjs +168 -49
  47. package/fesm2022/ajf-material-form-builder.mjs.map +1 -1
  48. package/fesm2022/ajf-material-forms.mjs +712 -99
  49. package/fesm2022/ajf-material-forms.mjs.map +1 -1
  50. package/fesm2022/ajf-material-geolocation.mjs +5 -7
  51. package/fesm2022/ajf-material-geolocation.mjs.map +1 -1
  52. package/fesm2022/ajf-material-node-icon.mjs +3 -0
  53. package/fesm2022/ajf-material-node-icon.mjs.map +1 -1
  54. package/fesm2022/ajf-material-page-slider.mjs +2 -2
  55. package/fesm2022/ajf-material-page-slider.mjs.map +1 -1
  56. package/fesm2022/ajf-material-signature.mjs +7 -8
  57. package/fesm2022/ajf-material-signature.mjs.map +1 -1
  58. package/fesm2022/ajf-material-time.mjs +24 -6
  59. package/fesm2022/ajf-material-time.mjs.map +1 -1
  60. package/form-builder/form-builder-service.d.ts +23 -0
  61. package/form-builder/form-builder-utils.d.ts +8 -0
  62. package/form-builder/node-entry.d.ts +10 -0
  63. package/form-builder/node-properties.d.ts +5 -1
  64. package/forms/_theming.scss +142 -0
  65. package/forms/current-slide.d.ts +61 -0
  66. package/forms/field-row.d.ts +63 -0
  67. package/forms/form.d.ts +40 -3
  68. package/forms/forms-module.d.ts +57 -51
  69. package/forms/multiple-choice-field.d.ts +15 -1
  70. package/forms/public_api.d.ts +5 -0
  71. package/forms/rep-strip.d.ts +52 -0
  72. package/forms/single-choice-field.d.ts +7 -0
  73. package/forms/slide-header.d.ts +61 -0
  74. package/forms/slide-stats.d.ts +76 -0
  75. package/package.json +2 -2
  76. package/time/time-module.d.ts +4 -3
@@ -5,13 +5,11 @@ import * as i1 from '@angular/forms';
5
5
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
6
  import * as i2 from '@angular/material/icon';
7
7
  import { MatIconModule } from '@angular/material/icon';
8
- import * as i3 from '@angular/material/input';
9
- import { MatInputModule } from '@angular/material/input';
10
- import * as i4 from '@angular/material/form-field';
11
- import { MatFormFieldModule } from '@angular/material/form-field';
12
- import * as i5 from '@ngneat/transloco';
8
+ import * as i3 from '@ngneat/transloco';
13
9
  import { AjfTranslocoModule } from '@ajf/core/transloco';
14
10
  import { CommonModule } from '@angular/common';
11
+ import { MatFormFieldModule } from '@angular/material/form-field';
12
+ import { MatInputModule } from '@angular/material/input';
15
13
 
16
14
  /**
17
15
  * @license
@@ -47,11 +45,11 @@ class AjfGeolocationComponent extends AjfGeolocation {
47
45
  super(cdr);
48
46
  }
49
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfGeolocationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfGeolocationComponent, selector: "ajf-geolocation", providers: [GEOLOCATION_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<div class=\"flex-container\">\n <div class=\"flex-child\">\n <p>{{'Latitude'|transloco}}:</p>\n <mat-form-field>\n <input\n matInput\n (focus)=\"focusHandler()\"\n [(ngModel)]=\"latitude\">\n </mat-form-field>\n </div>\n <div class=\"flex-child\">\n <p>{{'Longitude'|transloco}}:</p>\n <mat-form-field>\n <input\n matInput\n (focus)=\"focusHandler()\"\n [(ngModel)]=\"longitude\">\n </mat-form-field>\n <button mat-raised-button (click)=\"getLocation()\">\n <mat-icon>location_on</mat-icon>\n </button>\n </div>\n</div>", styles: ["ajf-geolocation{display:block}ajf-geolocation button{background:none}ajf-geolocation .flex-container{display:flex;flex-wrap:wrap}ajf-geolocation .flex-child{white-space:nowrap}ajf-geolocation .flex-child p{display:inline-block;min-width:80px}ajf-geolocation .flex-child:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "pipe", type: i5.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfGeolocationComponent, selector: "ajf-geolocation", providers: [GEOLOCATION_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<div class=\"ajf-geo\">\n <span class=\"ajf-geo-coord\">\n <label class=\"ajf-geo-coord-label\">{{ 'Lat' | transloco }}</label>\n <input\n [(ngModel)]=\"latitude\"\n (focus)=\"focusHandler()\"\n [attr.aria-label]=\"'Latitude' | transloco\"\n />\n </span>\n <span class=\"ajf-geo-coord\">\n <label class=\"ajf-geo-coord-label\">{{ 'Lng' | transloco }}</label>\n <input\n [(ngModel)]=\"longitude\"\n (focus)=\"focusHandler()\"\n [attr.aria-label]=\"'Longitude' | transloco\"\n />\n </span>\n <button type=\"button\" class=\"ajf-geo-locate\" (click)=\"getLocation()\">\n <mat-icon>my_location</mat-icon>\n <span>{{ 'Locate' | transloco }}</span>\n </button>\n</div>\n", styles: ["ajf-geolocation{display:block}ajf-geolocation .ajf-geo{display:flex;flex-wrap:wrap;align-items:center;gap:8px}ajf-geolocation .ajf-geo-coord{display:inline-flex;align-items:center;overflow:hidden;box-sizing:border-box;min-height:var(--ajf-control-h, 44px);border:1px solid var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:var(--ajf-surface, #fff)}ajf-geolocation .ajf-geo-coord:focus-within{border-color:var(--ajf-accent, #0f4c5c)}ajf-geolocation .ajf-geo-coord-label{align-self:stretch;padding:0 8px;border-right:1px solid var(--ajf-border, #e6e2dc);background:var(--ajf-band, #faf8f5);color:var(--ajf-text-muted, #7a736a);font-family:var(--ajf-font-mono, monospace);font-size:11px;line-height:calc(var(--ajf-control-h, 44px) - 2px);text-transform:uppercase}ajf-geolocation .ajf-geo-coord input{width:110px;height:calc(var(--ajf-control-h, 44px) - 2px);padding:0 10px;border:0;background:none;color:var(--ajf-text, #1c1a17);font-family:var(--ajf-font-mono, monospace);font-size:13px;outline:none}ajf-geolocation .ajf-geo-locate{display:inline-flex;align-items:center;gap:8px;min-height:var(--ajf-control-h, 44px);padding:0 14px;border:1px solid var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:var(--ajf-surface, #fff);color:var(--ajf-text, #1c1a17);font-family:inherit;font-size:14px;cursor:pointer}ajf-geolocation .ajf-geo-locate:hover{border-color:var(--ajf-accent, #0f4c5c)}ajf-geolocation .ajf-geo-locate .mat-icon{width:18px;height:18px;font-size:18px}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
51
49
  }
52
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfGeolocationComponent, decorators: [{
53
51
  type: Component,
54
- args: [{ selector: 'ajf-geolocation', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [GEOLOCATION_CONTROL_VALUE_ACCESSOR], template: "<div class=\"flex-container\">\n <div class=\"flex-child\">\n <p>{{'Latitude'|transloco}}:</p>\n <mat-form-field>\n <input\n matInput\n (focus)=\"focusHandler()\"\n [(ngModel)]=\"latitude\">\n </mat-form-field>\n </div>\n <div class=\"flex-child\">\n <p>{{'Longitude'|transloco}}:</p>\n <mat-form-field>\n <input\n matInput\n (focus)=\"focusHandler()\"\n [(ngModel)]=\"longitude\">\n </mat-form-field>\n <button mat-raised-button (click)=\"getLocation()\">\n <mat-icon>location_on</mat-icon>\n </button>\n </div>\n</div>", styles: ["ajf-geolocation{display:block}ajf-geolocation button{background:none}ajf-geolocation .flex-container{display:flex;flex-wrap:wrap}ajf-geolocation .flex-child{white-space:nowrap}ajf-geolocation .flex-child p{display:inline-block;min-width:80px}ajf-geolocation .flex-child:first-child{margin-right:5px}\n"] }]
52
+ args: [{ selector: 'ajf-geolocation', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [GEOLOCATION_CONTROL_VALUE_ACCESSOR], template: "<div class=\"ajf-geo\">\n <span class=\"ajf-geo-coord\">\n <label class=\"ajf-geo-coord-label\">{{ 'Lat' | transloco }}</label>\n <input\n [(ngModel)]=\"latitude\"\n (focus)=\"focusHandler()\"\n [attr.aria-label]=\"'Latitude' | transloco\"\n />\n </span>\n <span class=\"ajf-geo-coord\">\n <label class=\"ajf-geo-coord-label\">{{ 'Lng' | transloco }}</label>\n <input\n [(ngModel)]=\"longitude\"\n (focus)=\"focusHandler()\"\n [attr.aria-label]=\"'Longitude' | transloco\"\n />\n </span>\n <button type=\"button\" class=\"ajf-geo-locate\" (click)=\"getLocation()\">\n <mat-icon>my_location</mat-icon>\n <span>{{ 'Locate' | transloco }}</span>\n </button>\n</div>\n", styles: ["ajf-geolocation{display:block}ajf-geolocation .ajf-geo{display:flex;flex-wrap:wrap;align-items:center;gap:8px}ajf-geolocation .ajf-geo-coord{display:inline-flex;align-items:center;overflow:hidden;box-sizing:border-box;min-height:var(--ajf-control-h, 44px);border:1px solid var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:var(--ajf-surface, #fff)}ajf-geolocation .ajf-geo-coord:focus-within{border-color:var(--ajf-accent, #0f4c5c)}ajf-geolocation .ajf-geo-coord-label{align-self:stretch;padding:0 8px;border-right:1px solid var(--ajf-border, #e6e2dc);background:var(--ajf-band, #faf8f5);color:var(--ajf-text-muted, #7a736a);font-family:var(--ajf-font-mono, monospace);font-size:11px;line-height:calc(var(--ajf-control-h, 44px) - 2px);text-transform:uppercase}ajf-geolocation .ajf-geo-coord input{width:110px;height:calc(var(--ajf-control-h, 44px) - 2px);padding:0 10px;border:0;background:none;color:var(--ajf-text, #1c1a17);font-family:var(--ajf-font-mono, monospace);font-size:13px;outline:none}ajf-geolocation .ajf-geo-locate{display:inline-flex;align-items:center;gap:8px;min-height:var(--ajf-control-h, 44px);padding:0 14px;border:1px solid var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:var(--ajf-surface, #fff);color:var(--ajf-text, #1c1a17);font-family:inherit;font-size:14px;cursor:pointer}ajf-geolocation .ajf-geo-locate:hover{border-color:var(--ajf-accent, #0f4c5c)}ajf-geolocation .ajf-geo-locate .mat-icon{width:18px;height:18px;font-size:18px}\n"] }]
55
53
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
56
54
 
57
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ajf-material-geolocation.mjs","sources":["../../../projects/material/geolocation/src/geolocation.ts","../../../projects/material/geolocation/src/geolocation.html","../../../projects/material/geolocation/src/geolocation-module.ts","../../../projects/material/geolocation/src/public_api.ts","../../../projects/material/geolocation/src/ajf-material-geolocation.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfGeolocation} from '@ajf/core/geolocation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nexport const GEOLOCATION_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfGeolocationComponent),\n multi: true,\n};\n\n/**\n * Ajf geolocation component.\n */\n@Component({\n selector: 'ajf-geolocation',\n templateUrl: 'geolocation.html',\n styleUrls: ['geolocation.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [GEOLOCATION_CONTROL_VALUE_ACCESSOR],\n})\nexport class AjfGeolocationComponent extends AjfGeolocation implements OnDestroy {\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n}\n","<div class=\"flex-container\">\n <div class=\"flex-child\">\n <p>{{'Latitude'|transloco}}:</p>\n <mat-form-field>\n <input\n matInput\n (focus)=\"focusHandler()\"\n [(ngModel)]=\"latitude\">\n </mat-form-field>\n </div>\n <div class=\"flex-child\">\n <p>{{'Longitude'|transloco}}:</p>\n <mat-form-field>\n <input\n matInput\n (focus)=\"focusHandler()\"\n [(ngModel)]=\"longitude\">\n </mat-form-field>\n <button mat-raised-button (click)=\"getLocation()\">\n <mat-icon>location_on</mat-icon>\n </button>\n </div>\n</div>","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {CommonModule} from '@angular/common';\n\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {AjfGeolocationComponent} from './geolocation';\n\n@NgModule({\n imports: [\n AjfTranslocoModule,\n CommonModule,\n FormsModule,\n MatIconModule,\n MatInputModule,\n MatFormFieldModule,\n ],\n declarations: [AjfGeolocationComponent],\n exports: [AjfGeolocationComponent],\n})\nexport class AjfGeolocationModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './geolocation';\nexport * from './geolocation-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ajf-material-geolocation.mjs","sources":["../../../projects/material/geolocation/src/geolocation.ts","../../../projects/material/geolocation/src/geolocation.html","../../../projects/material/geolocation/src/geolocation-module.ts","../../../projects/material/geolocation/src/public_api.ts","../../../projects/material/geolocation/src/ajf-material-geolocation.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfGeolocation} from '@ajf/core/geolocation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nexport const GEOLOCATION_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfGeolocationComponent),\n multi: true,\n};\n\n/**\n * Ajf geolocation component.\n */\n@Component({\n selector: 'ajf-geolocation',\n templateUrl: 'geolocation.html',\n styleUrls: ['geolocation.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [GEOLOCATION_CONTROL_VALUE_ACCESSOR],\n})\nexport class AjfGeolocationComponent extends AjfGeolocation implements OnDestroy {\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n}\n","<div class=\"ajf-geo\">\n <span class=\"ajf-geo-coord\">\n <label class=\"ajf-geo-coord-label\">{{ 'Lat' | transloco }}</label>\n <input\n [(ngModel)]=\"latitude\"\n (focus)=\"focusHandler()\"\n [attr.aria-label]=\"'Latitude' | transloco\"\n />\n </span>\n <span class=\"ajf-geo-coord\">\n <label class=\"ajf-geo-coord-label\">{{ 'Lng' | transloco }}</label>\n <input\n [(ngModel)]=\"longitude\"\n (focus)=\"focusHandler()\"\n [attr.aria-label]=\"'Longitude' | transloco\"\n />\n </span>\n <button type=\"button\" class=\"ajf-geo-locate\" (click)=\"getLocation()\">\n <mat-icon>my_location</mat-icon>\n <span>{{ 'Locate' | transloco }}</span>\n </button>\n</div>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {CommonModule} from '@angular/common';\n\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {AjfGeolocationComponent} from './geolocation';\n\n@NgModule({\n imports: [\n AjfTranslocoModule,\n CommonModule,\n FormsModule,\n MatIconModule,\n MatInputModule,\n MatFormFieldModule,\n ],\n declarations: [AjfGeolocationComponent],\n exports: [AjfGeolocationComponent],\n})\nexport class AjfGeolocationModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './geolocation';\nexport * from './geolocation-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -36,6 +36,9 @@ class AjfNodeIcon extends AjfNodeIcon$1 {
36
36
  if (node.nodeType === AjfNodeType.AjfRepeatingSlide) {
37
37
  return 'create_new_folder';
38
38
  }
39
+ if (node.nodeType === AjfNodeType.AjfNodeGroup) {
40
+ return 'view_agenda';
41
+ }
39
42
  if (node.nodeType !== AjfNodeType.AjfField) {
40
43
  return 'broken_image';
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ajf-material-node-icon.mjs","sources":["../../../projects/material/node-icon/src/node-icon.ts","../../../projects/material/node-icon/src/node-icon.html","../../../projects/material/node-icon/src/node-icon-module.ts","../../../projects/material/node-icon/src/public_api.ts","../../../projects/material/node-icon/src/ajf-material-node-icon.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfField, AjfFieldType, AjfNode, AjfNodeType} from '@ajf/core/forms';\nimport {AjfNodeIcon as CoreNodeIcon} from '@ajf/core/node-icon';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'ajf-node-icon',\n templateUrl: 'node-icon.html',\n styleUrls: ['node-icon.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfNodeIcon extends CoreNodeIcon {\n matIcon(node: AjfNode): string {\n if (node.nodeType === AjfNodeType.AjfSlide) {\n return 'folder';\n }\n if (node.nodeType === AjfNodeType.AjfRepeatingSlide) {\n return 'create_new_folder';\n }\n if (node.nodeType !== AjfNodeType.AjfField) {\n return 'broken_image';\n }\n switch ((node as AjfField).fieldType as AjfFieldType) {\n case AjfFieldType.String:\n case AjfFieldType.Text:\n return 'abc';\n case AjfFieldType.Number:\n case AjfFieldType.Range:\n return 'pin';\n case AjfFieldType.Boolean:\n return 'toggle_off';\n case AjfFieldType.SingleChoice:\n return 'format_list_bulleted';\n case AjfFieldType.MultipleChoice:\n return 'format_list_numbered';\n case AjfFieldType.Formula:\n return 'code';\n case AjfFieldType.Empty:\n return 'html';\n case AjfFieldType.DateRange:\n case AjfFieldType.DateInput:\n return 'calendar_month';\n case AjfFieldType.Time:\n return 'access_time';\n case AjfFieldType.Table:\n return 'grid_on';\n case AjfFieldType.Geolocation:\n return 'location_on';\n case AjfFieldType.Barcode:\n return 'qr_code_2';\n case AjfFieldType.File:\n return 'attach_file';\n case AjfFieldType.Image:\n return 'image';\n case AjfFieldType.VideoUrl:\n return 'videocam';\n case AjfFieldType.Signature:\n return 'draw';\n default:\n return 'broken_image';\n }\n }\n}\n","<ng-template [ngIf]=\"node\">\n <mat-icon>{{matIcon(node)}}</mat-icon>\n</ng-template>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {AjfNodeIcon} from './node-icon';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [AjfNodeIcon],\n exports: [AjfNodeIcon],\n})\nexport class AjfNodeIconModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './node-icon-module';\nexport * from './node-icon';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CoreNodeIcon"],"mappings":"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"}
1
+ {"version":3,"file":"ajf-material-node-icon.mjs","sources":["../../../projects/material/node-icon/src/node-icon.ts","../../../projects/material/node-icon/src/node-icon.html","../../../projects/material/node-icon/src/node-icon-module.ts","../../../projects/material/node-icon/src/public_api.ts","../../../projects/material/node-icon/src/ajf-material-node-icon.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfField, AjfFieldType, AjfNode, AjfNodeType} from '@ajf/core/forms';\nimport {AjfNodeIcon as CoreNodeIcon} from '@ajf/core/node-icon';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'ajf-node-icon',\n templateUrl: 'node-icon.html',\n styleUrls: ['node-icon.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfNodeIcon extends CoreNodeIcon {\n matIcon(node: AjfNode): string {\n if (node.nodeType === AjfNodeType.AjfSlide) {\n return 'folder';\n }\n if (node.nodeType === AjfNodeType.AjfRepeatingSlide) {\n return 'create_new_folder';\n }\n if (node.nodeType === AjfNodeType.AjfNodeGroup) {\n return 'view_agenda';\n }\n if (node.nodeType !== AjfNodeType.AjfField) {\n return 'broken_image';\n }\n switch ((node as AjfField).fieldType as AjfFieldType) {\n case AjfFieldType.String:\n case AjfFieldType.Text:\n return 'abc';\n case AjfFieldType.Number:\n case AjfFieldType.Range:\n return 'pin';\n case AjfFieldType.Boolean:\n return 'toggle_off';\n case AjfFieldType.SingleChoice:\n return 'format_list_bulleted';\n case AjfFieldType.MultipleChoice:\n return 'format_list_numbered';\n case AjfFieldType.Formula:\n return 'code';\n case AjfFieldType.Empty:\n return 'html';\n case AjfFieldType.DateRange:\n case AjfFieldType.DateInput:\n return 'calendar_month';\n case AjfFieldType.Time:\n return 'access_time';\n case AjfFieldType.Table:\n return 'grid_on';\n case AjfFieldType.Geolocation:\n return 'location_on';\n case AjfFieldType.Barcode:\n return 'qr_code_2';\n case AjfFieldType.File:\n return 'attach_file';\n case AjfFieldType.Image:\n return 'image';\n case AjfFieldType.VideoUrl:\n return 'videocam';\n case AjfFieldType.Signature:\n return 'draw';\n default:\n return 'broken_image';\n }\n }\n}\n","<ng-template [ngIf]=\"node\">\n <mat-icon>{{matIcon(node)}}</mat-icon>\n</ng-template>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {AjfNodeIcon} from './node-icon';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [AjfNodeIcon],\n exports: [AjfNodeIcon],\n})\nexport class AjfNodeIconModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './node-icon-module';\nexport * from './node-icon';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CoreNodeIcon"],"mappings":"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"}
@@ -37,11 +37,11 @@ class AjfPageSlider extends AjfPageSlider$1 {
37
37
  super(animationBuilder, cdr, renderer);
38
38
  }
39
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfPageSlider, deps: [{ token: i1.AnimationBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfPageSlider, selector: "ajf-page-slider", usesInheritance: true, ngImport: i0, template: "<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (wheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation === 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_downward</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n", styles: ["ajf-page-slider{display:flex;flex-direction:column;align-items:stretch}ajf-page-slider>.ajf-page-slider-content{flex:1;display:block;overflow:hidden;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body{display:flex;align-items:stretch}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-vertical{flex-direction:column;width:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-horizontal{flex-direction:row;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body>ajf-page-slider-item{flex:1 0 auto}ajf-page-slider .ajf-spacer{flex:1 0 auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfPageSlider, selector: "ajf-page-slider", usesInheritance: true, ngImport: i0, template: "<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (wheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n <!-- Says that the page on screen carries more than fits, and pages down when\n clicked. Sits outside the page, since the page is the element that\n scrolls and a hint inside it would scroll away with the content it is\n reporting on -- and after it, because the body carries the transform that\n pages the slider, which makes it paint over anything declared earlier. -->\n <div class=\"ajf-scroll-hint\" [class.ajf-visible]=\"showScrollHint\">\n <button type=\"button\" aria-label=\"Scroll down\" (click)=\"scrollHintDown()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation === 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <!-- A single page has nowhere to page to, so it gets no paging buttons. -->\n <ng-container *ngIf=\"pages && pages.length > 1\">\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_downward</mat-icon>\n </button>\n </ng-container>\n </div>\n</mat-toolbar>\n", styles: ["ajf-page-slider{display:flex;flex-direction:column;align-items:stretch}ajf-page-slider>.ajf-page-slider-content{flex:1;display:block;overflow:hidden;height:100%;position:relative}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body{display:flex;align-items:stretch}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-vertical{flex-direction:column;width:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-horizontal{flex-direction:row;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body>ajf-page-slider-item{flex:1 0 0}ajf-page-slider .ajf-spacer{flex:1 0 auto}ajf-page-slider .ajf-scroll-hint{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;z-index:1;height:56px;padding-bottom:4px;background:linear-gradient(to top,var(--ajf-surface, #ffffff) 15%,color-mix(in srgb,var(--ajf-surface, #ffffff) 0%,transparent));pointer-events:none;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s linear .25s}ajf-page-slider .ajf-scroll-hint.ajf-visible{visibility:visible;opacity:1;transition:opacity .25s ease,visibility 0s}ajf-page-slider .ajf-scroll-hint button{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;color:var(--ajf-accent, #0f4c5c);cursor:pointer;pointer-events:auto}ajf-page-slider .ajf-scroll-hint button .mat-icon{width:32px;height:32px;font-size:32px;line-height:32px;animation:ajf-scroll-hint-bounce 1.6s ease-in-out infinite}@keyframes ajf-scroll-hint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (prefers-reduced-motion: reduce){ajf-page-slider .ajf-scroll-hint button .mat-icon{animation:none}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
41
41
  }
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfPageSlider, decorators: [{
43
43
  type: Component,
44
- args: [{ selector: 'ajf-page-slider', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (wheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation === 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_downward</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n", styles: ["ajf-page-slider{display:flex;flex-direction:column;align-items:stretch}ajf-page-slider>.ajf-page-slider-content{flex:1;display:block;overflow:hidden;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body{display:flex;align-items:stretch}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-vertical{flex-direction:column;width:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-horizontal{flex-direction:row;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body>ajf-page-slider-item{flex:1 0 auto}ajf-page-slider .ajf-spacer{flex:1 0 auto}\n"] }]
44
+ args: [{ selector: 'ajf-page-slider', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (wheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n <!-- Says that the page on screen carries more than fits, and pages down when\n clicked. Sits outside the page, since the page is the element that\n scrolls and a hint inside it would scroll away with the content it is\n reporting on -- and after it, because the body carries the transform that\n pages the slider, which makes it paint over anything declared earlier. -->\n <div class=\"ajf-scroll-hint\" [class.ajf-visible]=\"showScrollHint\">\n <button type=\"button\" aria-label=\"Scroll down\" (click)=\"scrollHintDown()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation === 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <!-- A single page has nowhere to page to, so it gets no paging buttons. -->\n <ng-container *ngIf=\"pages && pages.length > 1\">\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_downward</mat-icon>\n </button>\n </ng-container>\n </div>\n</mat-toolbar>\n", styles: ["ajf-page-slider{display:flex;flex-direction:column;align-items:stretch}ajf-page-slider>.ajf-page-slider-content{flex:1;display:block;overflow:hidden;height:100%;position:relative}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body{display:flex;align-items:stretch}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-vertical{flex-direction:column;width:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-horizontal{flex-direction:row;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body>ajf-page-slider-item{flex:1 0 0}ajf-page-slider .ajf-spacer{flex:1 0 auto}ajf-page-slider .ajf-scroll-hint{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;z-index:1;height:56px;padding-bottom:4px;background:linear-gradient(to top,var(--ajf-surface, #ffffff) 15%,color-mix(in srgb,var(--ajf-surface, #ffffff) 0%,transparent));pointer-events:none;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s linear .25s}ajf-page-slider .ajf-scroll-hint.ajf-visible{visibility:visible;opacity:1;transition:opacity .25s ease,visibility 0s}ajf-page-slider .ajf-scroll-hint button{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;color:var(--ajf-accent, #0f4c5c);cursor:pointer;pointer-events:auto}ajf-page-slider .ajf-scroll-hint button .mat-icon{width:32px;height:32px;font-size:32px;line-height:32px;animation:ajf-scroll-hint-bounce 1.6s ease-in-out infinite}@keyframes ajf-scroll-hint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (prefers-reduced-motion: reduce){ajf-page-slider .ajf-scroll-hint button .mat-icon{animation:none}}\n"] }]
45
45
  }], ctorParameters: () => [{ type: i1.AnimationBuilder }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }] });
46
46
 
47
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ajf-material-page-slider.mjs","sources":["../../../projects/material/page-slider/src/page-slider.ts","../../../projects/material/page-slider/src/page-slider.html","../../../projects/material/page-slider/src/page-slider-module.ts","../../../projects/material/page-slider/src/public_api.ts","../../../projects/material/page-slider/src/ajf-material-page-slider.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfPageSlider as CorePageSlider} from '@ajf/core/page-slider';\nimport {AnimationBuilder} from '@angular/animations';\nimport {BooleanInput} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ajf-page-slider',\n templateUrl: 'page-slider.html',\n styleUrls: ['page-slider.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfPageSlider extends CorePageSlider {\n constructor(animationBuilder: AnimationBuilder, cdr: ChangeDetectorRef, renderer: Renderer2) {\n super(animationBuilder, cdr, renderer);\n }\n\n static ngAcceptInputType_hideNavigationButtons: BooleanInput;\n static ngAcceptInputType_fixedOrientation: BooleanInput;\n}\n","<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (wheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation === 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_downward</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfPageSliderModule as CorePageSliderModule} from '@ajf/core/page-slider';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatToolbarModule} from '@angular/material/toolbar';\n\nimport {AjfPageSlider} from './page-slider';\n\n@NgModule({\n imports: [CommonModule, CorePageSliderModule, MatButtonModule, MatIconModule, MatToolbarModule],\n declarations: [AjfPageSlider],\n exports: [CorePageSliderModule, AjfPageSlider],\n})\nexport class AjfPageSliderModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './page-slider';\nexport * from './page-slider-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CorePageSlider","CorePageSliderModule"],"mappings":"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"}
1
+ {"version":3,"file":"ajf-material-page-slider.mjs","sources":["../../../projects/material/page-slider/src/page-slider.ts","../../../projects/material/page-slider/src/page-slider.html","../../../projects/material/page-slider/src/page-slider-module.ts","../../../projects/material/page-slider/src/public_api.ts","../../../projects/material/page-slider/src/ajf-material-page-slider.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfPageSlider as CorePageSlider} from '@ajf/core/page-slider';\nimport {AnimationBuilder} from '@angular/animations';\nimport {BooleanInput} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ajf-page-slider',\n templateUrl: 'page-slider.html',\n styleUrls: ['page-slider.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfPageSlider extends CorePageSlider {\n constructor(animationBuilder: AnimationBuilder, cdr: ChangeDetectorRef, renderer: Renderer2) {\n super(animationBuilder, cdr, renderer);\n }\n\n static ngAcceptInputType_hideNavigationButtons: BooleanInput;\n static ngAcceptInputType_fixedOrientation: BooleanInput;\n}\n","<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (wheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n <!-- Says that the page on screen carries more than fits, and pages down when\n clicked. Sits outside the page, since the page is the element that\n scrolls and a hint inside it would scroll away with the content it is\n reporting on -- and after it, because the body carries the transform that\n pages the slider, which makes it paint over anything declared earlier. -->\n <div class=\"ajf-scroll-hint\" [class.ajf-visible]=\"showScrollHint\">\n <button type=\"button\" aria-label=\"Scroll down\" (click)=\"scrollHintDown()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation === 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <!-- A single page has nowhere to page to, so it gets no paging buttons. -->\n <ng-container *ngIf=\"pages && pages.length > 1\">\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation === 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation === 'vertical'\">arrow_downward</mat-icon>\n </button>\n </ng-container>\n </div>\n</mat-toolbar>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfPageSliderModule as CorePageSliderModule} from '@ajf/core/page-slider';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatToolbarModule} from '@angular/material/toolbar';\n\nimport {AjfPageSlider} from './page-slider';\n\n@NgModule({\n imports: [CommonModule, CorePageSliderModule, MatButtonModule, MatIconModule, MatToolbarModule],\n declarations: [AjfPageSlider],\n exports: [CorePageSliderModule, AjfPageSlider],\n})\nexport class AjfPageSliderModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './page-slider';\nexport * from './page-slider-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CorePageSlider","CorePageSliderModule"],"mappings":"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"}
@@ -3,14 +3,13 @@ import * as i0 from '@angular/core';
3
3
  import { forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
4
4
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
5
  import * as i1 from '@angular/platform-browser';
6
- import * as i2 from '@angular/material/button';
7
- import { MatButtonModule } from '@angular/material/button';
8
- import * as i3 from '@angular/material/icon';
9
- import { MatIconModule } from '@angular/material/icon';
10
- import * as i4 from '@ngneat/transloco';
6
+ import * as i2 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i3 from '@ngneat/transloco';
11
9
  import { AjfCommonModule } from '@ajf/core/common';
12
10
  import { AjfTranslocoModule } from '@ajf/core/transloco';
13
- import { CommonModule } from '@angular/common';
11
+ import { MatButtonModule } from '@angular/material/button';
12
+ import { MatIconModule } from '@angular/material/icon';
14
13
 
15
14
  /**
16
15
  * @license
@@ -107,11 +106,11 @@ class AjfSignatureComponent extends AjfSignature {
107
106
  return;
108
107
  }
109
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfSignatureComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfSignatureComponent, selector: "ajf-signature", providers: [SIGNATURE_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<div class=\"ajf-signature-container\">\n <p class=\"ajf-signature-text\">{{'Please sign here'|transloco}}</p>\n <canvas\n class=\"ajf-signature-canvas\"\n #sigPad\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (touchstart)=\"onMouseDown($event)\"\n (touchmove)=\"onMouseMove($event)\"\n ></canvas>\n <div class=\"ajf-signature-actions\">\n <button mat-fab (click)=\"clear()\" class=\"ajf-signature-action-clear\">\n <mat-icon>close</mat-icon>\n </button>\n <button mat-fab (click)=\"accept()\" color=\"primary\" [disabled]=\"!isDrawn\" class=\"ajf-signature-action-accept\">\n <mat-icon>check</mat-icon>\n </button>\n </div>\n\n <img class=\"ajf-signature-preview\" [src]=\"safeImageSrc\" />\n</div>\n", styles: ["ajf-signature{display:block}ajf-signature .ajf-signature-container{width:100%;display:flex;flex-flow:column wrap;justify-content:center;align-items:center}ajf-signature .ajf-signature-container .ajf-signature-preview{max-width:200px;max-height:100px;margin:auto;padding:5px}ajf-signature .ajf-signature-container .ajf-signature-canvas{margin:auto;border-radius:10px;border:2px solid rgba(0,0,0,.4)}ajf-signature .ajf-signature-container .ajf-signature-actions{flex:1 0 auto;display:flex;flex-flow:row wrap;justify-content:space-around}ajf-signature .ajf-signature-container .ajf-signature-actions .mdc-fab{margin:10px}ajf-signature .ajf-signature-container .ajf-signature-actions .mdc-fab .mat-icon{margin-left:0!important}ajf-signature .ajf-signature-container .ajf-signature-actions .ajf-signature-action-clear{background-color:#f53d3d99}ajf-signature .ajf-signature-container .ajf-signature-actions .ajf-signature-action-accept{background-color:#32db6499}ajf-signature .ajf-signature-container .ajf-signature-actions .ajf-signature-action-accept[disabled=true]{background-color:#0000001f;color:#00000061}\n"], dependencies: [{ kind: "component", type: i2.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfSignatureComponent, selector: "ajf-signature", providers: [SIGNATURE_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<div class=\"ajf-signature-container\">\n <div class=\"ajf-signature-pad\">\n <canvas\n class=\"ajf-signature-canvas\"\n #sigPad\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (touchstart)=\"onMouseDown($event)\"\n (touchmove)=\"onMouseMove($event)\"\n ></canvas>\n <span class=\"ajf-signature-text\" *ngIf=\"!isDrawn && !safeImageSrc\">{{\n 'Sign here to continue' | transloco\n }}</span>\n </div>\n\n <div class=\"ajf-signature-actions\">\n <button\n type=\"button\"\n class=\"ajf-signature-accept\"\n (click)=\"accept()\"\n [disabled]=\"!isDrawn\"\n >\n {{ 'Approve signature' | transloco }}\n <span class=\"ajf-signature-kbd\" aria-hidden=\"true\">&#8984;&crarr;</span>\n </button>\n <button type=\"button\" class=\"ajf-signature-clear\" (click)=\"clear()\">\n {{ 'Clear' | transloco }}\n </button>\n </div>\n\n <img class=\"ajf-signature-preview\" *ngIf=\"safeImageSrc\" [src]=\"safeImageSrc\" alt=\"\" />\n</div>\n", styles: ["ajf-signature{display:block}ajf-signature .ajf-signature-container{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%}ajf-signature .ajf-signature-pad{position:relative;display:flex;align-items:center;justify-content:center;border:1px dashed var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:#fff}ajf-signature .ajf-signature-canvas{display:block;touch-action:none}ajf-signature .ajf-signature-text{position:absolute;color:var(--ajf-text-faint, #a49c92);font-family:var(--ajf-font-mono, monospace);font-size:13px;pointer-events:none}ajf-signature .ajf-signature-actions{display:flex;align-items:center;gap:12px}ajf-signature .ajf-signature-accept{display:inline-flex;align-items:center;gap:8px;min-height:var(--ajf-control-h, 44px);padding:0 16px;border:1px solid var(--ajf-accent, #0f4c5c);border-radius:var(--ajf-radius, 4px);background:var(--ajf-accent, #0f4c5c);color:var(--ajf-accent-fg, #fff);font-family:inherit;font-size:14px;cursor:pointer}ajf-signature .ajf-signature-accept:disabled{border-color:var(--ajf-border-strong, #d5cfc6);background:var(--ajf-band, #faf8f5);color:var(--ajf-text-faint, #a49c92);cursor:default}ajf-signature .ajf-signature-kbd{padding:1px 5px;border-radius:3px;background:var(--ajf-kbd-bg, rgba(255, 255, 255, .22));font-family:var(--ajf-font-mono, monospace);font-size:10px}ajf-signature .ajf-signature-clear{padding:0 4px;border:0;background:none;color:var(--ajf-text-muted, #7a736a);font-family:inherit;font-size:14px;cursor:pointer}ajf-signature .ajf-signature-clear:hover{text-decoration:underline}ajf-signature .ajf-signature-preview{background:#fff;max-width:200px;max-height:100px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
111
110
  }
112
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfSignatureComponent, decorators: [{
113
112
  type: Component,
114
- args: [{ selector: 'ajf-signature', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [SIGNATURE_CONTROL_VALUE_ACCESSOR], template: "<div class=\"ajf-signature-container\">\n <p class=\"ajf-signature-text\">{{'Please sign here'|transloco}}</p>\n <canvas\n class=\"ajf-signature-canvas\"\n #sigPad\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (touchstart)=\"onMouseDown($event)\"\n (touchmove)=\"onMouseMove($event)\"\n ></canvas>\n <div class=\"ajf-signature-actions\">\n <button mat-fab (click)=\"clear()\" class=\"ajf-signature-action-clear\">\n <mat-icon>close</mat-icon>\n </button>\n <button mat-fab (click)=\"accept()\" color=\"primary\" [disabled]=\"!isDrawn\" class=\"ajf-signature-action-accept\">\n <mat-icon>check</mat-icon>\n </button>\n </div>\n\n <img class=\"ajf-signature-preview\" [src]=\"safeImageSrc\" />\n</div>\n", styles: ["ajf-signature{display:block}ajf-signature .ajf-signature-container{width:100%;display:flex;flex-flow:column wrap;justify-content:center;align-items:center}ajf-signature .ajf-signature-container .ajf-signature-preview{max-width:200px;max-height:100px;margin:auto;padding:5px}ajf-signature .ajf-signature-container .ajf-signature-canvas{margin:auto;border-radius:10px;border:2px solid rgba(0,0,0,.4)}ajf-signature .ajf-signature-container .ajf-signature-actions{flex:1 0 auto;display:flex;flex-flow:row wrap;justify-content:space-around}ajf-signature .ajf-signature-container .ajf-signature-actions .mdc-fab{margin:10px}ajf-signature .ajf-signature-container .ajf-signature-actions .mdc-fab .mat-icon{margin-left:0!important}ajf-signature .ajf-signature-container .ajf-signature-actions .ajf-signature-action-clear{background-color:#f53d3d99}ajf-signature .ajf-signature-container .ajf-signature-actions .ajf-signature-action-accept{background-color:#32db6499}ajf-signature .ajf-signature-container .ajf-signature-actions .ajf-signature-action-accept[disabled=true]{background-color:#0000001f;color:#00000061}\n"] }]
113
+ args: [{ selector: 'ajf-signature', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [SIGNATURE_CONTROL_VALUE_ACCESSOR], template: "<div class=\"ajf-signature-container\">\n <div class=\"ajf-signature-pad\">\n <canvas\n class=\"ajf-signature-canvas\"\n #sigPad\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (touchstart)=\"onMouseDown($event)\"\n (touchmove)=\"onMouseMove($event)\"\n ></canvas>\n <span class=\"ajf-signature-text\" *ngIf=\"!isDrawn && !safeImageSrc\">{{\n 'Sign here to continue' | transloco\n }}</span>\n </div>\n\n <div class=\"ajf-signature-actions\">\n <button\n type=\"button\"\n class=\"ajf-signature-accept\"\n (click)=\"accept()\"\n [disabled]=\"!isDrawn\"\n >\n {{ 'Approve signature' | transloco }}\n <span class=\"ajf-signature-kbd\" aria-hidden=\"true\">&#8984;&crarr;</span>\n </button>\n <button type=\"button\" class=\"ajf-signature-clear\" (click)=\"clear()\">\n {{ 'Clear' | transloco }}\n </button>\n </div>\n\n <img class=\"ajf-signature-preview\" *ngIf=\"safeImageSrc\" [src]=\"safeImageSrc\" alt=\"\" />\n</div>\n", styles: ["ajf-signature{display:block}ajf-signature .ajf-signature-container{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%}ajf-signature .ajf-signature-pad{position:relative;display:flex;align-items:center;justify-content:center;border:1px dashed var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:#fff}ajf-signature .ajf-signature-canvas{display:block;touch-action:none}ajf-signature .ajf-signature-text{position:absolute;color:var(--ajf-text-faint, #a49c92);font-family:var(--ajf-font-mono, monospace);font-size:13px;pointer-events:none}ajf-signature .ajf-signature-actions{display:flex;align-items:center;gap:12px}ajf-signature .ajf-signature-accept{display:inline-flex;align-items:center;gap:8px;min-height:var(--ajf-control-h, 44px);padding:0 16px;border:1px solid var(--ajf-accent, #0f4c5c);border-radius:var(--ajf-radius, 4px);background:var(--ajf-accent, #0f4c5c);color:var(--ajf-accent-fg, #fff);font-family:inherit;font-size:14px;cursor:pointer}ajf-signature .ajf-signature-accept:disabled{border-color:var(--ajf-border-strong, #d5cfc6);background:var(--ajf-band, #faf8f5);color:var(--ajf-text-faint, #a49c92);cursor:default}ajf-signature .ajf-signature-kbd{padding:1px 5px;border-radius:3px;background:var(--ajf-kbd-bg, rgba(255, 255, 255, .22));font-family:var(--ajf-font-mono, monospace);font-size:10px}ajf-signature .ajf-signature-clear{padding:0 4px;border:0;background:none;color:var(--ajf-text-muted, #7a736a);font-family:inherit;font-size:14px;cursor:pointer}ajf-signature .ajf-signature-clear:hover{text-decoration:underline}ajf-signature .ajf-signature-preview{background:#fff;max-width:200px;max-height:100px}\n"] }]
115
114
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1.DomSanitizer }] });
116
115
 
117
116
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ajf-material-signature.mjs","sources":["../../../projects/material/signature/src/signature.ts","../../../projects/material/signature/src/signature.html","../../../projects/material/signature/src/signature-module.ts","../../../projects/material/signature/src/public_api.ts","../../../projects/material/signature/src/ajf-material-signature.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfSignature, canvasToIndexedPngDataUrl} from '@ajf/core/signature';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\n\nexport const SIGNATURE_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfSignatureComponent),\n multi: true,\n};\n\n/**\n * Ajf signature component.\n */\n@Component({\n selector: 'ajf-signature',\n templateUrl: 'signature.html',\n styleUrls: ['signature.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SIGNATURE_CONTROL_VALUE_ACCESSOR],\n})\nexport class AjfSignatureComponent extends AjfSignature implements OnDestroy, AfterViewInit {\n constructor(cdr: ChangeDetectorRef, renderer: Renderer2, private _sanitizer: DomSanitizer) {\n super(cdr, renderer);\n }\n\n ngAfterViewInit(): void {\n this.sigPadElement = this.sigPad.nativeElement;\n this.context = this.sigPadElement?.getContext('2d') ?? null;\n }\n\n /**\n * Clears the signature value and preview (keeps the old url to delete old signature from storage)\n */\n clear() {\n if (this.context != null && this.sigPadElement != null) {\n this.context.clearRect(0, 0, this.sigPadElement.width, this.sigPadElement.height);\n this.context.beginPath();\n }\n this.isDrawn = false;\n this.value = {\n name: 'signature.png',\n type: 'image/png',\n signature: true,\n size: undefined,\n content: undefined,\n url: this.value?.url ?? undefined,\n deleteUrl: true,\n };\n }\n\n /**\n * Accepts the new signature from the canvas and sets it as field value (keeps the old url to delete old signature from storage)\n */\n accept() {\n if (this.sigPadElement != null) {\n // const signatureDataUrl = this.sigPadElement.toDataURL('image/png');\n const signatureDataUrl = canvasToIndexedPngDataUrl(this.sigPadElement);\n\n const head = 'data:image/png;base64,';\n const imgFileSize = Math.round(((signatureDataUrl.length - head.length) * 3) / 4);\n\n this.value = {\n name: 'signature.png',\n type: 'image/png',\n signature: true,\n size: imgFileSize,\n content: signatureDataUrl,\n url: this.value?.url ?? undefined,\n deleteUrl: false,\n };\n }\n }\n\n /**\n * Sanitizes signature image url\n */\n get safeImageSrc(): SafeUrl | string | null {\n if (!this.value) return null;\n if (!this.value.content && this.value.deleteUrl) return null;\n\n const rawUrl =\n this.value.content && this.value.content.length ? this.value.content : this.value.url;\n if (!rawUrl) return null;\n\n const sanitizedUrl = this._sanitizer.bypassSecurityTrustUrl(rawUrl);\n return sanitizedUrl;\n }\n\n ngOnDestroy(): void {\n return;\n }\n}\n","<div class=\"ajf-signature-container\">\n <p class=\"ajf-signature-text\">{{'Please sign here'|transloco}}</p>\n <canvas\n class=\"ajf-signature-canvas\"\n #sigPad\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (touchstart)=\"onMouseDown($event)\"\n (touchmove)=\"onMouseMove($event)\"\n ></canvas>\n <div class=\"ajf-signature-actions\">\n <button mat-fab (click)=\"clear()\" class=\"ajf-signature-action-clear\">\n <mat-icon>close</mat-icon>\n </button>\n <button mat-fab (click)=\"accept()\" color=\"primary\" [disabled]=\"!isDrawn\" class=\"ajf-signature-action-accept\">\n <mat-icon>check</mat-icon>\n </button>\n </div>\n\n <img class=\"ajf-signature-preview\" [src]=\"safeImageSrc\" />\n</div>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCommonModule} from '@ajf/core/common';\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {AjfSignatureComponent} from './signature';\nimport {FormsModule} from '@angular/forms';\n\n@NgModule({\n imports: [\n AjfCommonModule,\n AjfTranslocoModule,\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatIconModule,\n ],\n declarations: [AjfSignatureComponent],\n exports: [AjfSignatureComponent],\n})\nexport class AjfSignatureModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './signature';\nexport * from './signature-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ajf-material-signature.mjs","sources":["../../../projects/material/signature/src/signature.ts","../../../projects/material/signature/src/signature.html","../../../projects/material/signature/src/signature-module.ts","../../../projects/material/signature/src/public_api.ts","../../../projects/material/signature/src/ajf-material-signature.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfSignature, canvasToIndexedPngDataUrl} from '@ajf/core/signature';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\n\nexport const SIGNATURE_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfSignatureComponent),\n multi: true,\n};\n\n/**\n * Ajf signature component.\n */\n@Component({\n selector: 'ajf-signature',\n templateUrl: 'signature.html',\n styleUrls: ['signature.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SIGNATURE_CONTROL_VALUE_ACCESSOR],\n})\nexport class AjfSignatureComponent extends AjfSignature implements OnDestroy, AfterViewInit {\n constructor(cdr: ChangeDetectorRef, renderer: Renderer2, private _sanitizer: DomSanitizer) {\n super(cdr, renderer);\n }\n\n ngAfterViewInit(): void {\n this.sigPadElement = this.sigPad.nativeElement;\n this.context = this.sigPadElement?.getContext('2d') ?? null;\n }\n\n /**\n * Clears the signature value and preview (keeps the old url to delete old signature from storage)\n */\n clear() {\n if (this.context != null && this.sigPadElement != null) {\n this.context.clearRect(0, 0, this.sigPadElement.width, this.sigPadElement.height);\n this.context.beginPath();\n }\n this.isDrawn = false;\n this.value = {\n name: 'signature.png',\n type: 'image/png',\n signature: true,\n size: undefined,\n content: undefined,\n url: this.value?.url ?? undefined,\n deleteUrl: true,\n };\n }\n\n /**\n * Accepts the new signature from the canvas and sets it as field value (keeps the old url to delete old signature from storage)\n */\n accept() {\n if (this.sigPadElement != null) {\n // const signatureDataUrl = this.sigPadElement.toDataURL('image/png');\n const signatureDataUrl = canvasToIndexedPngDataUrl(this.sigPadElement);\n\n const head = 'data:image/png;base64,';\n const imgFileSize = Math.round(((signatureDataUrl.length - head.length) * 3) / 4);\n\n this.value = {\n name: 'signature.png',\n type: 'image/png',\n signature: true,\n size: imgFileSize,\n content: signatureDataUrl,\n url: this.value?.url ?? undefined,\n deleteUrl: false,\n };\n }\n }\n\n /**\n * Sanitizes signature image url\n */\n get safeImageSrc(): SafeUrl | string | null {\n if (!this.value) return null;\n if (!this.value.content && this.value.deleteUrl) return null;\n\n const rawUrl =\n this.value.content && this.value.content.length ? this.value.content : this.value.url;\n if (!rawUrl) return null;\n\n const sanitizedUrl = this._sanitizer.bypassSecurityTrustUrl(rawUrl);\n return sanitizedUrl;\n }\n\n ngOnDestroy(): void {\n return;\n }\n}\n","<div class=\"ajf-signature-container\">\n <div class=\"ajf-signature-pad\">\n <canvas\n class=\"ajf-signature-canvas\"\n #sigPad\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (touchstart)=\"onMouseDown($event)\"\n (touchmove)=\"onMouseMove($event)\"\n ></canvas>\n <span class=\"ajf-signature-text\" *ngIf=\"!isDrawn && !safeImageSrc\">{{\n 'Sign here to continue' | transloco\n }}</span>\n </div>\n\n <div class=\"ajf-signature-actions\">\n <button\n type=\"button\"\n class=\"ajf-signature-accept\"\n (click)=\"accept()\"\n [disabled]=\"!isDrawn\"\n >\n {{ 'Approve signature' | transloco }}\n <span class=\"ajf-signature-kbd\" aria-hidden=\"true\">&#8984;&crarr;</span>\n </button>\n <button type=\"button\" class=\"ajf-signature-clear\" (click)=\"clear()\">\n {{ 'Clear' | transloco }}\n </button>\n </div>\n\n <img class=\"ajf-signature-preview\" *ngIf=\"safeImageSrc\" [src]=\"safeImageSrc\" alt=\"\" />\n</div>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCommonModule} from '@ajf/core/common';\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {AjfSignatureComponent} from './signature';\nimport {FormsModule} from '@angular/forms';\n\n@NgModule({\n imports: [\n AjfCommonModule,\n AjfTranslocoModule,\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatIconModule,\n ],\n declarations: [AjfSignatureComponent],\n exports: [AjfSignatureComponent],\n})\nexport class AjfSignatureModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './signature';\nexport * from './signature-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import * as i0 from '@angular/core';
2
2
  import { forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/forms';
4
4
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
- import * as i3 from '@angular/material/form-field';
6
5
  import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import * as i3 from '@angular/material/icon';
7
+ import { MatIconModule } from '@angular/material/icon';
7
8
  import { MatInputModule } from '@angular/material/input';
8
9
  import { AjfTime as AjfTime$1 } from '@ajf/core/time';
9
10
  import * as i1 from '@angular/common';
@@ -45,11 +46,11 @@ class AjfTime extends AjfTime$1 {
45
46
  this.minutesList = Array.from({ length: 60 }, (_, i) => i);
46
47
  }
47
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfTime, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfTime, selector: "ajf-time", providers: [AJF_TIME_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<div>\n <mat-form-field>\n <mat-select [(ngModel)]=\"hours\" (opened)=\"focusHandler()\" placeholder=\"HH\">\n <mat-option *ngFor=\"let h of hoursList\" [value]=\"h\">\n {{ h | number:'2.0' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n :\n <mat-form-field>\n <mat-select [(ngModel)]=\"minutes\" (opened)=\"focusHandler()\" placeholder=\"MM\">\n <mat-option *ngFor=\"let m of minutesList\" [value]=\"m\">\n {{ m | number:'2.0' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>", styles: ["ajf-time .mat-mdc-form-field{width:4.5em;text-align:center}ajf-time .mat-mdc-select{margin:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfTime, selector: "ajf-time", providers: [AJF_TIME_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<div class=\"ajf-time\">\n <mat-select\n class=\"ajf-time-select\"\n panelClass=\"ajf-time-panel\"\n [(ngModel)]=\"hours\"\n (opened)=\"focusHandler()\"\n placeholder=\"HH\"\n >\n <mat-option *ngFor=\"let h of hoursList\" [value]=\"h\"> {{ h | number : '2.0' }} </mat-option>\n </mat-select>\n <span class=\"ajf-time-sep\">:</span>\n <mat-select\n class=\"ajf-time-select\"\n panelClass=\"ajf-time-panel\"\n [(ngModel)]=\"minutes\"\n (opened)=\"focusHandler()\"\n placeholder=\"MM\"\n >\n <mat-option *ngFor=\"let m of minutesList\" [value]=\"m\"> {{ m | number : '2.0' }} </mat-option>\n </mat-select>\n <mat-icon class=\"ajf-time-icon\">schedule</mat-icon>\n</div>\n", styles: ["ajf-time{display:block}ajf-time .ajf-time{display:inline-flex;align-items:center;gap:2px;box-sizing:border-box;min-height:var(--ajf-control-h, 44px);padding:0 10px;border:1px solid var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:var(--ajf-surface, #fff)}ajf-time .ajf-time:focus-within{border-color:var(--ajf-accent, #0f4c5c)}ajf-time .ajf-time-sep{color:var(--ajf-text, #1c1a17);font-family:var(--ajf-font-mono, monospace)}ajf-time .ajf-time-icon{width:18px;height:18px;margin-left:6px;color:var(--ajf-text-muted, #7a736a);font-size:18px}ajf-time .mat-mdc-select.ajf-time-select{width:2.6em;min-width:0;padding:0;border:0;background:none;box-shadow:none;font-family:var(--ajf-font-mono, monospace)}ajf-time .mat-mdc-select.ajf-time-select .mat-mdc-select-arrow-wrapper{display:none}ajf-time .mat-mdc-select.ajf-time-select .mat-mdc-select-value{font-family:var(--ajf-font-mono, monospace);text-align:center}.mat-mdc-select-panel.ajf-time-panel{min-width:5.5em;border:1px solid var(--ajf-border, #e6e2dc);background:var(--ajf-surface, #ffffff)}.mat-mdc-select-panel.ajf-time-panel .mat-mdc-option{justify-content:flex-start;min-height:36px;padding:0 12px}.mat-mdc-select-panel.ajf-time-panel .mat-mdc-option .mdc-list-item__primary-text{flex:0 0 auto;margin-right:0;color:var(--ajf-text, #1c1a17);font-family:var(--ajf-font-mono, monospace);font-size:14px}.mat-mdc-select-panel.ajf-time-panel .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
50
  }
50
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfTime, decorators: [{
51
52
  type: Component,
52
- args: [{ selector: 'ajf-time', providers: [AJF_TIME_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <mat-form-field>\n <mat-select [(ngModel)]=\"hours\" (opened)=\"focusHandler()\" placeholder=\"HH\">\n <mat-option *ngFor=\"let h of hoursList\" [value]=\"h\">\n {{ h | number:'2.0' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n :\n <mat-form-field>\n <mat-select [(ngModel)]=\"minutes\" (opened)=\"focusHandler()\" placeholder=\"MM\">\n <mat-option *ngFor=\"let m of minutesList\" [value]=\"m\">\n {{ m | number:'2.0' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>", styles: ["ajf-time .mat-mdc-form-field{width:4.5em;text-align:center}ajf-time .mat-mdc-select{margin:0!important}\n"] }]
53
+ args: [{ selector: 'ajf-time', providers: [AJF_TIME_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ajf-time\">\n <mat-select\n class=\"ajf-time-select\"\n panelClass=\"ajf-time-panel\"\n [(ngModel)]=\"hours\"\n (opened)=\"focusHandler()\"\n placeholder=\"HH\"\n >\n <mat-option *ngFor=\"let h of hoursList\" [value]=\"h\"> {{ h | number : '2.0' }} </mat-option>\n </mat-select>\n <span class=\"ajf-time-sep\">:</span>\n <mat-select\n class=\"ajf-time-select\"\n panelClass=\"ajf-time-panel\"\n [(ngModel)]=\"minutes\"\n (opened)=\"focusHandler()\"\n placeholder=\"MM\"\n >\n <mat-option *ngFor=\"let m of minutesList\" [value]=\"m\"> {{ m | number : '2.0' }} </mat-option>\n </mat-select>\n <mat-icon class=\"ajf-time-icon\">schedule</mat-icon>\n</div>\n", styles: ["ajf-time{display:block}ajf-time .ajf-time{display:inline-flex;align-items:center;gap:2px;box-sizing:border-box;min-height:var(--ajf-control-h, 44px);padding:0 10px;border:1px solid var(--ajf-border-strong, #d5cfc6);border-radius:var(--ajf-radius, 4px);background:var(--ajf-surface, #fff)}ajf-time .ajf-time:focus-within{border-color:var(--ajf-accent, #0f4c5c)}ajf-time .ajf-time-sep{color:var(--ajf-text, #1c1a17);font-family:var(--ajf-font-mono, monospace)}ajf-time .ajf-time-icon{width:18px;height:18px;margin-left:6px;color:var(--ajf-text-muted, #7a736a);font-size:18px}ajf-time .mat-mdc-select.ajf-time-select{width:2.6em;min-width:0;padding:0;border:0;background:none;box-shadow:none;font-family:var(--ajf-font-mono, monospace)}ajf-time .mat-mdc-select.ajf-time-select .mat-mdc-select-arrow-wrapper{display:none}ajf-time .mat-mdc-select.ajf-time-select .mat-mdc-select-value{font-family:var(--ajf-font-mono, monospace);text-align:center}.mat-mdc-select-panel.ajf-time-panel{min-width:5.5em;border:1px solid var(--ajf-border, #e6e2dc);background:var(--ajf-surface, #ffffff)}.mat-mdc-select-panel.ajf-time-panel .mat-mdc-option{justify-content:flex-start;min-height:36px;padding:0 12px}.mat-mdc-select-panel.ajf-time-panel .mat-mdc-option .mdc-list-item__primary-text{flex:0 0 auto;margin-right:0;color:var(--ajf-text, #1c1a17);font-family:var(--ajf-font-mono, monospace);font-size:14px}.mat-mdc-select-panel.ajf-time-panel .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:8px}\n"] }]
53
54
  }], ctorParameters: () => [] });
54
55
 
55
56
  /**
@@ -75,13 +76,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
75
76
  */
76
77
  class AjfTimeModule {
77
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
78
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AjfTimeModule, declarations: [AjfTime], imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatSelectModule], exports: [AjfTime] }); }
79
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfTimeModule, imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatSelectModule] }); }
79
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AjfTimeModule, declarations: [AjfTime], imports: [CommonModule,
80
+ FormsModule,
81
+ MatFormFieldModule,
82
+ MatIconModule,
83
+ MatInputModule,
84
+ MatSelectModule], exports: [AjfTime] }); }
85
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfTimeModule, imports: [CommonModule,
86
+ FormsModule,
87
+ MatFormFieldModule,
88
+ MatIconModule,
89
+ MatInputModule,
90
+ MatSelectModule] }); }
80
91
  }
81
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfTimeModule, decorators: [{
82
93
  type: NgModule,
83
94
  args: [{
84
- imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatSelectModule],
95
+ imports: [
96
+ CommonModule,
97
+ FormsModule,
98
+ MatFormFieldModule,
99
+ MatIconModule,
100
+ MatInputModule,
101
+ MatSelectModule,
102
+ ],
85
103
  declarations: [AjfTime],
86
104
  exports: [AjfTime],
87
105
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"ajf-material-time.mjs","sources":["../../../projects/material/time/src/time.ts","../../../projects/material/time/src/time.html","../../../projects/material/time/src/time-module.ts","../../../projects/material/time/src/public_api.ts","../../../projects/material/time/src/ajf-material-time.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfTime as Base} from '@ajf/core/time';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nexport const AJF_TIME_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfTime),\n multi: true,\n};\n\n@Component({\n selector: 'ajf-time',\n templateUrl: 'time.html',\n styleUrls: ['time.scss'],\n providers: [AJF_TIME_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfTime extends Base implements ControlValueAccessor, OnDestroy {\n hoursList: number[] = Array.from({length: 24}, (_, i) => i);\n minutesList: number[] = Array.from({length: 60}, (_, i) => i);\n\n constructor() {\n super();\n }\n}\n","<div>\n <mat-form-field>\n <mat-select [(ngModel)]=\"hours\" (opened)=\"focusHandler()\" placeholder=\"HH\">\n <mat-option *ngFor=\"let h of hoursList\" [value]=\"h\">\n {{ h | number:'2.0' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n :\n <mat-form-field>\n <mat-select [(ngModel)]=\"minutes\" (opened)=\"focusHandler()\" placeholder=\"MM\">\n <mat-option *ngFor=\"let m of minutesList\" [value]=\"m\">\n {{ m | number:'2.0' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\n\nimport {AjfTime} from './time';\nimport {MatSelectModule} from '@angular/material/select';\nimport {CommonModule} from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatSelectModule],\n declarations: [AjfTime],\n exports: [AjfTime],\n})\nexport class AjfTimeModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './time-module';\nexport * from './time';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Base"],"mappings":";;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;AAoBG;AAYU,MAAA,+BAA+B,GAAQ;AAClD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,OAAO,CAAC;AACtC,IAAA,KAAK,EAAE,IAAI;;AAWP,MAAO,OAAQ,SAAQA,SAAI,CAAA;AAI/B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAJT,IAAS,CAAA,SAAA,GAAa,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAW,CAAA,WAAA,GAAa,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;+GAFlD,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,EAJP,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,CAAC,+BAA+B,CAAC,iDC1C9C,wiBAgBM,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FD8BO,OAAO,EAAA,UAAA,EAAA,CAAA;kBARnB,SAAS;+BACE,UAAU,EAAA,SAAA,EAGT,CAAC,+BAA+B,CAAC,EAAA,aAAA,EAC7B,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wiBAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA;;;AE5CjD;;;;;;;;;;;;;;;;;;;;AAoBG;MAgBU,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAHT,YAAA,EAAA,CAAA,OAAO,CADZ,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,aAE9E,OAAO,CAAA,EAAA,CAAA,CAAA;gHAEN,aAAa,EAAA,OAAA,EAAA,CAJd,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAI7E,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,CAAC;oBACzF,YAAY,EAAE,CAAC,OAAO,CAAC;oBACvB,OAAO,EAAE,CAAC,OAAO,CAAC;AACnB,iBAAA;;;ACnCD;;;;;;;;;;;;;;;;;;;;AAoBG;;ACpBH;;AAEG;;;;"}
1
+ {"version":3,"file":"ajf-material-time.mjs","sources":["../../../projects/material/time/src/time.ts","../../../projects/material/time/src/time.html","../../../projects/material/time/src/time-module.ts","../../../projects/material/time/src/public_api.ts","../../../projects/material/time/src/ajf-material-time.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfTime as Base} from '@ajf/core/time';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nexport const AJF_TIME_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfTime),\n multi: true,\n};\n\n@Component({\n selector: 'ajf-time',\n templateUrl: 'time.html',\n styleUrls: ['time.scss'],\n providers: [AJF_TIME_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AjfTime extends Base implements ControlValueAccessor, OnDestroy {\n hoursList: number[] = Array.from({length: 24}, (_, i) => i);\n minutesList: number[] = Array.from({length: 60}, (_, i) => i);\n\n constructor() {\n super();\n }\n}\n","<div class=\"ajf-time\">\n <mat-select\n class=\"ajf-time-select\"\n panelClass=\"ajf-time-panel\"\n [(ngModel)]=\"hours\"\n (opened)=\"focusHandler()\"\n placeholder=\"HH\"\n >\n <mat-option *ngFor=\"let h of hoursList\" [value]=\"h\"> {{ h | number : '2.0' }} </mat-option>\n </mat-select>\n <span class=\"ajf-time-sep\">:</span>\n <mat-select\n class=\"ajf-time-select\"\n panelClass=\"ajf-time-panel\"\n [(ngModel)]=\"minutes\"\n (opened)=\"focusHandler()\"\n placeholder=\"MM\"\n >\n <mat-option *ngFor=\"let m of minutesList\" [value]=\"m\"> {{ m | number : '2.0' }} </mat-option>\n </mat-select>\n <mat-icon class=\"ajf-time-icon\">schedule</mat-icon>\n</div>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\n\nimport {AjfTime} from './time';\nimport {MatSelectModule} from '@angular/material/select';\nimport {CommonModule} from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n ],\n declarations: [AjfTime],\n exports: [AjfTime],\n})\nexport class AjfTimeModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './time-module';\nexport * from './time';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Base"],"mappings":"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"}
@@ -89,6 +89,16 @@ export interface AjfFormBuilderMoveEvent {
89
89
  }
90
90
  export type AjfFormBuilderNode = AjfFormBuilderNodeEntry | AjfFormBuilderEmptySlot;
91
91
  export type AjfContainerNode = AjfSlide | AjfRepeatingSlide | AjfNodeGroup;
92
+ /**
93
+ * True when the palette entry creates a node group. Groups can be dropped
94
+ * into a slide or a repeating slide, never into another group.
95
+ */
96
+ export declare function isGroupNodeType(nodeType: AjfFormBuilderNodeTypeEntry): boolean;
97
+ /**
98
+ * True when the node can be placed among the content of the container: a slide
99
+ * holds fields and groups, a group holds fields only.
100
+ */
101
+ export declare function canContainNode(container: AjfNode, node: AjfNode): boolean;
92
102
  /**
93
103
  * Take the defaultValue from the ajf form defaultValue prop (non formula)
94
104
  * and return the value to be shown in the properties box
@@ -193,6 +203,7 @@ export declare class AjfFormBuilderService {
193
203
  */
194
204
  private _emptyFieldCounter;
195
205
  private _emptySlideCounter;
206
+ private _emptyGroupCounter;
196
207
  constructor();
197
208
  /**
198
209
  * Sets the current edited form
@@ -231,6 +242,14 @@ export declare class AjfFormBuilderService {
231
242
  * @param nodeEntry The node to be moved.
232
243
  */
233
244
  moveNodeEntry(nodeEntry: AjfFormBuilderNodeEntry, from: number, to: number): void;
245
+ /**
246
+ * Moves a node into another container, e.g. a field from a slide into a
247
+ * group, or out of it.
248
+ * @param nodeEntry The node to be moved.
249
+ * @param container The container the node is moved into.
250
+ * @param toIndex The position of the node among the content of the container.
251
+ */
252
+ moveNodeEntryToContainer(nodeEntry: AjfFormBuilderNodeEntry, container: AjfContainerNode, toIndex: number): void;
234
253
  getCurrentForm(): Observable<AjfForm>;
235
254
  editChoicesOrigin(choicesOrigin: AjfChoicesOrigin<any>): void;
236
255
  createChoicesOrigin(): void;
@@ -291,6 +310,10 @@ export declare class AjfFormBuilderService {
291
310
  /**
292
311
  * Adds the id of a dropList to be connected with the FormBuilder source list.
293
312
  * @param listId The id of the list to connect.
313
+ * @param first True to put the list before the others. The list of a group
314
+ * lies inside the list of its slide, and the CDK moves a dragged item into
315
+ * the first connected list under the pointer: the inner list has to come
316
+ * first, or it could never receive anything.
294
317
  */
295
318
  private _connectDropList;
296
319
  private _findMaxNodeId;