@onemrvapublic/design-system-demos 20.3.0-develop.4 → 20.3.0-develop.6

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.
@@ -223,6 +223,110 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
223
223
  THE SOFTWARE.
224
224
 
225
225
 
226
+ @babel/runtime
227
+ MIT
228
+ MIT License
229
+
230
+ Copyright (c) 2014-present Sebastian McKenzie and other contributors
231
+
232
+ Permission is hereby granted, free of charge, to any person obtaining
233
+ a copy of this software and associated documentation files (the
234
+ "Software"), to deal in the Software without restriction, including
235
+ without limitation the rights to use, copy, modify, merge, publish,
236
+ distribute, sublicense, and/or sell copies of the Software, and to
237
+ permit persons to whom the Software is furnished to do so, subject to
238
+ the following conditions:
239
+
240
+ The above copyright notice and this permission notice shall be
241
+ included in all copies or substantial portions of the Software.
242
+
243
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
244
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
245
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
246
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
247
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
248
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
249
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
250
+
251
+
252
+ @jsonforms/angular
253
+ MIT
254
+ The MIT License
255
+
256
+ Copyright (c) 2019 EclipseSource Munich
257
+ https://github.com/eclipsesource/jsonforms
258
+
259
+ Permission is hereby granted, free of charge, to any person obtaining a copy
260
+ of this software and associated documentation files (the "Software"), to deal
261
+ in the Software without restriction, including without limitation the rights
262
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
263
+ copies of the Software, and to permit persons to whom the Software is
264
+ furnished to do so, subject to the following conditions:
265
+
266
+ The above copyright notice and this permission notice shall be included in
267
+ all copies or substantial portions of the Software.
268
+
269
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
270
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
271
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
272
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
273
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
274
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
275
+ THE SOFTWARE.
276
+
277
+
278
+ @jsonforms/angular-material
279
+ MIT
280
+ The MIT License
281
+
282
+ Copyright (c) 2019 EclipseSource Munich
283
+ https://github.com/eclipsesource/jsonforms
284
+
285
+ Permission is hereby granted, free of charge, to any person obtaining a copy
286
+ of this software and associated documentation files (the "Software"), to deal
287
+ in the Software without restriction, including without limitation the rights
288
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
289
+ copies of the Software, and to permit persons to whom the Software is
290
+ furnished to do so, subject to the following conditions:
291
+
292
+ The above copyright notice and this permission notice shall be included in
293
+ all copies or substantial portions of the Software.
294
+
295
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
296
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
297
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
298
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
299
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
300
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
301
+ THE SOFTWARE.
302
+
303
+
304
+ @jsonforms/core
305
+ MIT
306
+ The MIT License
307
+
308
+ Copyright (c) 2019 EclipseSource Munich
309
+ https://github.com/eclipsesource/jsonforms
310
+
311
+ Permission is hereby granted, free of charge, to any person obtaining a copy
312
+ of this software and associated documentation files (the "Software"), to deal
313
+ in the Software without restriction, including without limitation the rights
314
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
315
+ copies of the Software, and to permit persons to whom the Software is
316
+ furnished to do so, subject to the following conditions:
317
+
318
+ The above copyright notice and this permission notice shall be included in
319
+ all copies or substantial portions of the Software.
320
+
321
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
322
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
323
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
324
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
325
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
326
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
327
+ THE SOFTWARE.
328
+
329
+
226
330
  @ngrx/component-store
227
331
  MIT
228
332
  The MIT License (MIT)
@@ -268,6 +372,165 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
268
372
 
269
373
  @onemrvapublic/design-system-demos
270
374
 
375
+ ajv
376
+ MIT
377
+ The MIT License (MIT)
378
+
379
+ Copyright (c) 2015-2021 Evgeny Poberezkin
380
+
381
+ Permission is hereby granted, free of charge, to any person obtaining a copy
382
+ of this software and associated documentation files (the "Software"), to deal
383
+ in the Software without restriction, including without limitation the rights
384
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
385
+ copies of the Software, and to permit persons to whom the Software is
386
+ furnished to do so, subject to the following conditions:
387
+
388
+ The above copyright notice and this permission notice shall be included in all
389
+ copies or substantial portions of the Software.
390
+
391
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
392
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
393
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
394
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
395
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
396
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
397
+ SOFTWARE.
398
+
399
+
400
+
401
+ ajv-formats
402
+ MIT
403
+ MIT License
404
+
405
+ Copyright (c) 2020 Evgeny Poberezkin
406
+
407
+ Permission is hereby granted, free of charge, to any person obtaining a copy
408
+ of this software and associated documentation files (the "Software"), to deal
409
+ in the Software without restriction, including without limitation the rights
410
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
411
+ copies of the Software, and to permit persons to whom the Software is
412
+ furnished to do so, subject to the following conditions:
413
+
414
+ The above copyright notice and this permission notice shall be included in all
415
+ copies or substantial portions of the Software.
416
+
417
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
418
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
419
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
420
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
421
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
422
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
423
+ SOFTWARE.
424
+
425
+
426
+ dayjs
427
+ MIT
428
+ MIT License
429
+
430
+ Copyright (c) 2018-present, iamkun
431
+
432
+ Permission is hereby granted, free of charge, to any person obtaining a copy
433
+ of this software and associated documentation files (the "Software"), to deal
434
+ in the Software without restriction, including without limitation the rights
435
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
436
+ copies of the Software, and to permit persons to whom the Software is
437
+ furnished to do so, subject to the following conditions:
438
+
439
+ The above copyright notice and this permission notice shall be included in all
440
+ copies or substantial portions of the Software.
441
+
442
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
443
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
444
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
445
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
446
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
447
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
448
+ SOFTWARE.
449
+
450
+
451
+ fast-deep-equal
452
+ MIT
453
+ MIT License
454
+
455
+ Copyright (c) 2017 Evgeny Poberezkin
456
+
457
+ Permission is hereby granted, free of charge, to any person obtaining a copy
458
+ of this software and associated documentation files (the "Software"), to deal
459
+ in the Software without restriction, including without limitation the rights
460
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
461
+ copies of the Software, and to permit persons to whom the Software is
462
+ furnished to do so, subject to the following conditions:
463
+
464
+ The above copyright notice and this permission notice shall be included in all
465
+ copies or substantial portions of the Software.
466
+
467
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
468
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
469
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
470
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
471
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
472
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
473
+ SOFTWARE.
474
+
475
+
476
+ fast-uri
477
+ BSD-3-Clause
478
+ Copyright (c) 2021 The Fastify Team
479
+ Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae
480
+ All rights reserved.
481
+
482
+ Redistribution and use in source and binary forms, with or without
483
+ modification, are permitted provided that the following conditions are met:
484
+ * Redistributions of source code must retain the above copyright
485
+ notice, this list of conditions and the following disclaimer.
486
+ * Redistributions in binary form must reproduce the above copyright
487
+ notice, this list of conditions and the following disclaimer in the
488
+ documentation and/or other materials provided with the distribution.
489
+ * The names of any contributors may not be used to endorse or promote
490
+ products derived from this software without specific prior written
491
+ permission.
492
+
493
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
494
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
495
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
496
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
497
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
498
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
499
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
500
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
501
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
502
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
503
+
504
+ * * *
505
+
506
+ The complete list of contributors can be found at:
507
+ - https://github.com/garycourt/uri-js/graphs/contributors
508
+
509
+ hammerjs
510
+ MIT
511
+ The MIT License (MIT)
512
+
513
+ Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media)
514
+
515
+ Permission is hereby granted, free of charge, to any person obtaining a copy
516
+ of this software and associated documentation files (the "Software"), to deal
517
+ in the Software without restriction, including without limitation the rights
518
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
519
+ copies of the Software, and to permit persons to whom the Software is
520
+ furnished to do so, subject to the following conditions:
521
+
522
+ The above copyright notice and this permission notice shall be included in
523
+ all copies or substantial portions of the Software.
524
+
525
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
526
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
527
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
528
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
529
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
530
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
531
+ THE SOFTWARE.
532
+
533
+
271
534
  highlight.js
272
535
  BSD-3-Clause
273
536
  BSD 3-Clause License
@@ -305,6 +568,31 @@ ibantools
305
568
  MIT or MPL-2.0
306
569
  MIT OR MPL-2.0
307
570
 
571
+ json-schema-traverse
572
+ MIT
573
+ MIT License
574
+
575
+ Copyright (c) 2017 Evgeny Poberezkin
576
+
577
+ Permission is hereby granted, free of charge, to any person obtaining a copy
578
+ of this software and associated documentation files (the "Software"), to deal
579
+ in the Software without restriction, including without limitation the rights
580
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
581
+ copies of the Software, and to permit persons to whom the Software is
582
+ furnished to do so, subject to the following conditions:
583
+
584
+ The above copyright notice and this permission notice shall be included in all
585
+ copies or substantial portions of the Software.
586
+
587
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
588
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
589
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
590
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
591
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
592
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
593
+ SOFTWARE.
594
+
595
+
308
596
  libphonenumber-js
309
597
  MIT
310
598
  (The MIT License)
@@ -332,6 +620,57 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
332
620
 
333
621
  libphonenumber-js/min
334
622
 
623
+ lodash
624
+ MIT
625
+ Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
626
+
627
+ Based on Underscore.js, copyright Jeremy Ashkenas,
628
+ DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
629
+
630
+ This software consists of voluntary contributions made by many
631
+ individuals. For exact contribution history, see the revision history
632
+ available at https://github.com/lodash/lodash
633
+
634
+ The following license applies to all parts of this software except as
635
+ documented below:
636
+
637
+ ====
638
+
639
+ Permission is hereby granted, free of charge, to any person obtaining
640
+ a copy of this software and associated documentation files (the
641
+ "Software"), to deal in the Software without restriction, including
642
+ without limitation the rights to use, copy, modify, merge, publish,
643
+ distribute, sublicense, and/or sell copies of the Software, and to
644
+ permit persons to whom the Software is furnished to do so, subject to
645
+ the following conditions:
646
+
647
+ The above copyright notice and this permission notice shall be
648
+ included in all copies or substantial portions of the Software.
649
+
650
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
651
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
652
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
653
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
654
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
655
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
656
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
657
+
658
+ ====
659
+
660
+ Copyright and related rights for sample code are waived via CC0. Sample
661
+ code is defined as all source code displayed within the prose of the
662
+ documentation.
663
+
664
+ CC0: http://creativecommons.org/publicdomain/zero/1.0/
665
+
666
+ ====
667
+
668
+ Files located in the node_modules and vendor directories are externally
669
+ maintained libraries used by this software which have their own
670
+ licenses; we recommend you read them, as their terms may differ from the
671
+ terms above.
672
+
673
+
335
674
  luxon
336
675
  MIT
337
676
  Copyright 2019 JS Foundation and other contributors
package/assets/codes.json CHANGED
@@ -1 +1 @@
1
- ["address","address-input","autocomplete","avatar","bank-input","bce-pipe","birthplace-input","breadcrumb","button","button-loading","button-toggle","card","card-table","carousel","checkbox","chips","chips-input","choice-chips","copy-to-clipboard","country-input","datepicker","datepicker-luxon","datepicker-month-year","daterangepicker","dialog","dialog-content","digit-only","drag-and-drop","drawer","empty","enterprise-number-input","error","error-handler","expansion","fab","file-panel","file-upload","file-upload-manual","grid","horizontal-stepper","icon","icon-button","if-width-is","language-switcher","layout","link","mask","menu","message-box","multiselect","niss-pipe","not-found","notification","overlay","paginator","palette","panel","phone-input","pop-over","progress-bar","radio","rxjs-combine-operators","rxjs-complex-case","rxjs-flattening-operators","rxjs-observable","rxjs-subject","select","selectable-box","selectable-box-large","side-menu","skeleton","slide-toggle","spacing","spinner","sticker","summary-stepper","tab","table","table-dialog-content","task-list","text-input","textarea","timepicker","toast","toc","toolbar","tooltip","typography","validators","vertical-stepper"]
1
+ ["address","address-input","autocomplete","avatar","bank-input","bce-pipe","birthplace-input","breadcrumb","button","button-loading","button-toggle","card","card-table","carousel","checkbox","chips","chips-input","choice-chips","copy-to-clipboard","country-input","datepicker","datepicker-luxon","datepicker-month-year","daterangepicker","dialog","dialog-content","digit-only","drag-and-drop","drawer","empty","enterprise-number-input","error","error-handler","expansion","fab","file-panel","file-upload","file-upload-manual","grid","horizontal-stepper","icon","icon-button","if-width-is","jsonform","language-switcher","layout","link","mask","menu","message-box","multiselect","niss-pipe","not-found","notification","overlay","paginator","palette","panel","phone-input","pop-over","progress-bar","radio","rxjs-combine-operators","rxjs-complex-case","rxjs-flattening-operators","rxjs-observable","rxjs-subject","select","selectable-box","selectable-box-large","side-menu","skeleton","slide-toggle","spacing","spinner","sticker","summary-stepper","tab","table","table-dialog-content","task-list","text-input","textarea","timepicker","toast","toc","toolbar","tooltip","typography","validators","vertical-stepper"]
@@ -132,6 +132,10 @@
132
132
  "equilibriumThermodynamics": "Equilibrium thermodynamics",
133
133
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
134
134
  },
135
+ "input.field": {
136
+ "required": "Feld erforderlich",
137
+ "invalid": "Ungültiges Feld"
138
+ },
135
139
  "input.bank": {
136
140
  "length": "Falsche Anzahl von Ziffern für dieses Land",
137
141
  "checksum": "Die Bankkontonummer ist ungültig",
@@ -132,6 +132,10 @@
132
132
  "equilibriumThermodynamics": "Equilibrium thermodynamics",
133
133
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
134
134
  },
135
+ "input.field": {
136
+ "required": "Field required",
137
+ "invalid": "Field invalid"
138
+ },
135
139
  "input.bank": {
136
140
  "length": "Incorrect number of digits for this country",
137
141
  "checksum": "Bank account number invalid",
@@ -132,7 +132,10 @@
132
132
  "equilibriumThermodynamics": "Equilibrium thermodynamics",
133
133
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
134
134
  },
135
-
135
+ "input.field": {
136
+ "required": "Champs requis",
137
+ "invalid": "Champs invalide"
138
+ },
136
139
  "input.bank": {
137
140
  "length": "Nombre de chiffres incorrect pour ce pays",
138
141
  "checksum": "Le numéro de compte bancaire est invalide",
@@ -131,6 +131,10 @@
131
131
  "equilibriumThermodynamics": "Equilibrium thermodynamics",
132
132
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
133
133
  },
134
+ "input.field": {
135
+ "required": "Veld vereist",
136
+ "invalid": "Ongeldig veld"
137
+ },
134
138
  "input.bank": {
135
139
  "length": "Onjuist aantal cijfers voor dit land",
136
140
  "checksum": "Bankrekeningnummer is ongeldig",
@@ -1 +1 @@
1
- {"address.html":"<form [readonly]=\"readonly\">\n <onemrva-address [form]=\"form\" (update)=\"onUpdate($event)\" />\n <button mat-button color=\"primary\" type=\"submit\">Submit</button>\n</form>\n","address.ts":"import { Component, effect, Input } from '@angular/core';\nimport { OnemRvaAddress } from '@onemrvapublic/design-system/mat-address';\nimport { OnemRvaReadonlyDirective } from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n selector: 'app-demo-address',\n templateUrl: './address.html',\n standalone: true,\n imports: [OnemRvaAddress, OnemRvaReadonlyDirective, MatButton],\n})\nexport class DemoAddress extends DemoComponentBase {\n @Input()\n readonly = false;\n\n @Input()\n disabled = false;\n\n form = new FormGroup({\n country: new FormControl(''),\n street: new FormControl(''),\n postal_code: new FormControl(''),\n city: new FormControl(''),\n street_number: new FormControl(''),\n box: new FormControl(''),\n });\n\n onUpdate(val: any) {\n this.output.set(val);\n }\n\n constructor() {\n super();\n effect(() => {\n if (this.disabled) this.form.disable();\n else this.form.enable();\n\n if (this.readonly) {\n // we set a value for readonly demo\n this.form.setValue({\n country: 'be',\n street: 'rue de la gare',\n postal_code: '1000',\n city: 'Bruxelles',\n street_number: '1',\n box: 'A',\n });\n }\n });\n }\n}\n"}
1
+ {"address.html":"<form [readonly]=\"readonly()\">\n <onemrva-address [form]=\"form\" (update)=\"onUpdate($event)\" />\n <button mat-button color=\"primary\" type=\"submit\">Submit</button>\n</form>\n","address.ts":"import { Component, effect, input, Input } from '@angular/core';\nimport { OnemRvaAddress } from '@onemrvapublic/design-system/mat-address';\nimport { OnemRvaReadonlyDirective } from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n selector: 'app-demo-address',\n templateUrl: './address.html',\n standalone: true,\n imports: [OnemRvaAddress, OnemRvaReadonlyDirective, MatButton],\n})\nexport class DemoAddress extends DemoComponentBase {\n readonly = input<boolean>(false);\n disabled = input<boolean>(false);\n\n form = new FormGroup({\n country: new FormControl('', Validators.required),\n street: new FormControl('', Validators.required),\n postal_code: new FormControl(''),\n city: new FormControl(''),\n street_number: new FormControl(''),\n box: new FormControl(''),\n });\n\n onUpdate(val: any) {\n this.output.set(val);\n }\n\n constructor() {\n super();\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n\n if (this.readonly()) {\n // we set a value for readonly demo\n this.form.setValue({\n country: 'be',\n street: 'rue de la gare',\n postal_code: '1000',\n city: 'Bruxelles',\n street_number: '1',\n box: 'A',\n });\n }\n });\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-autocomplete.component.html":"<mat-form-field>\n <mat-label>Nom, prénom</mat-label>\n <input\n type=\"text\"\n placeholder=\"Nom, prénom\"\n aria-label=\"Number\"\n matInput\n [formControl]=\"myControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-hint>Nom, prénom</mat-hint>\n <mat-icon matSuffix>search</mat-icon>\n <mat-autocomplete\n autoActiveFirstOption\n #auto=\"matAutocomplete\"\n [panelWidth]=\"300\"\n >\n @for (option of filteredOptions | async; track option['name']) {\n <mat-option\n [value]=\"option['name'] | formatString\"\n style=\"height: 62px; padding-top: 15px; font-size: 16px\"\n >\n <onemrva-mat-avatar\n initials=\"LS\"\n color=\"accent\"\n size=\"extrasmall\"\n style=\"vertical-align: top; margin: 1px 10px 0 0\"\n ></onemrva-mat-avatar>\n <div style=\"display: inline-block; height: 34px\">\n <div\n style=\"display: block; line-height: 18px\"\n [innerHTML]=\"option['name']\"\n ></div>\n <div\n style=\"font-size: 14px; line-height: 16px\"\n [innerHTML]=\"option['email']\"\n ></div>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n</mat-form-field>\n","demo-autocomplete.component.ts":"import { Component, ViewEncapsulation, OnInit } from '@angular/core';\nimport { OnemrvaMatAvatarModule } from '@onemrvapublic/design-system';\n\nimport {\n MatFormField,\n MatHint,\n MatLabel,\n MatSuffix,\n} from '@angular/material/form-field';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {\n MatAutocompleteModule,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatInput } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport { FormatStringPipe } from './format.pipe';\nimport { map, startWith } from 'rxjs/operators';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-autocomplete',\n templateUrl: 'demo-autocomplete.component.html',\n standalone: true,\n imports: [\n OnemrvaMatAvatarModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatFormField,\n MatLabel,\n FormsModule,\n MatAutocompleteTrigger,\n MatHint,\n MatIcon,\n MatInput,\n MatSuffix,\n AsyncPipe,\n FormatStringPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoAutocompleteComponent\n extends DemoComponentBase\n implements OnInit\n{\n myControl = new FormControl('');\n\n options: Record<string, string>[] = [\n { name: 'James Bond', email: 'james@onem.be' },\n { name: 'Marleen Offergelt', email: 'offergelt.marleen@onem.be' },\n { name: 'Barack Obama', email: 'barack@onem.be' },\n { name: 'Donald Trump', email: 'donald@onem.be' },\n ];\n\n filteredOptions?: Observable<Record<string, string>[]>;\n\n ngOnInit() {\n this.filteredOptions = this.myControl.valueChanges.pipe(\n startWith(''),\n map(value => this.getDataFromServer(value || '')),\n );\n }\n\n private getDataFromServer(value: string): Record<string, string>[] {\n const filterValue = value.toLowerCase();\n\n return this.options\n .filter(option =>\n Object.values(option)\n .map(x => x.toLowerCase().includes(filterValue))\n .includes(true),\n )\n .map(option => {\n return {\n name: this.highlightPattern(option['name'], filterValue),\n email: this.highlightPattern(option['email'], filterValue),\n };\n });\n }\n\n private highlightPattern(textIn: string, filterValue: string): string {\n if (filterValue === '') return textIn;\n\n const idx = textIn.toLowerCase().indexOf(filterValue);\n\n if (idx === -1) return textIn;\n\n return (\n textIn.slice(0, idx) +\n '<mark>' +\n textIn.slice(idx, idx + filterValue.length) +\n '</mark>' +\n this.highlightPattern(textIn.slice(idx + filterValue.length), filterValue)\n );\n }\n\n displayFn(option: Record<string, string>) {\n return option['name'];\n }\n}\n","format.pipe.ts":"import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatString',\n standalone: true,\n})\nexport class FormatStringPipe implements PipeTransform {\n transform(text: string): string {\n return text.replace(/<[^>]*>?/gm, '');\n }\n}\n"}
1
+ {"demo-autocomplete.component.html":"<mat-form-field [readonly]=\"readonly()\">\n <mat-label>Nom, prénom</mat-label>\n <input\n type=\"text\"\n placeholder=\"Nom, prénom\"\n aria-label=\"Number\"\n matInput\n [formControl]=\"myControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-hint>Nom, prénom</mat-hint>\n <mat-icon matSuffix>search</mat-icon>\n <mat-autocomplete\n autoActiveFirstOption\n #auto=\"matAutocomplete\"\n [panelWidth]=\"300\"\n >\n @for (option of filteredOptions | async; track option['name']) {\n <mat-option\n [value]=\"option['name'] | formatString\"\n style=\"height: 62px; padding-top: 15px; font-size: 16px\"\n >\n <onemrva-mat-avatar\n initials=\"LS\"\n color=\"accent\"\n size=\"extrasmall\"\n style=\"vertical-align: top; margin: 1px 10px 0 0\"\n ></onemrva-mat-avatar>\n <div style=\"display: inline-block; height: 34px\">\n <div\n style=\"display: block; line-height: 18px\"\n [innerHTML]=\"option['name']\"\n ></div>\n <div\n style=\"font-size: 14px; line-height: 16px\"\n [innerHTML]=\"option['email']\"\n ></div>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n</mat-form-field>\n","demo-autocomplete.component.ts":"import { Component, ViewEncapsulation, OnInit, input } from '@angular/core';\nimport {\n OnemrvaMatAvatarModule,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\n\nimport {\n MatFormField,\n MatHint,\n MatLabel,\n MatSuffix,\n} from '@angular/material/form-field';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {\n MatAutocompleteModule,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatInput } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport { FormatStringPipe } from './format.pipe';\nimport { map, startWith } from 'rxjs/operators';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-autocomplete',\n templateUrl: 'demo-autocomplete.component.html',\n standalone: true,\n imports: [\n OnemrvaMatAvatarModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatFormField,\n MatLabel,\n FormsModule,\n MatAutocompleteTrigger,\n MatHint,\n MatIcon,\n MatInput,\n MatSuffix,\n AsyncPipe,\n FormatStringPipe,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoAutocompleteComponent\n extends DemoComponentBase\n implements OnInit\n{\n readonly = input(false);\n\n myControl = new FormControl('');\n\n options = [\n { name: 'James Bond', email: 'james@onem.be' },\n { name: 'Marleen Offergelt', email: 'offergelt.marleen@onem.be' },\n { name: 'Barack Obama', email: 'barack@onem.be' },\n { name: 'Donald Trump', email: 'donald@onem.be' },\n ];\n\n filteredOptions?: Observable<Record<string, string>[]>;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.filteredOptions = this.myControl.valueChanges.pipe(\n startWith(''),\n map(value => this.getDataFromServer(value || '')),\n );\n }\n\n private getDataFromServer(value: string): Record<string, string>[] {\n const filterValue = value.toLowerCase();\n\n return this.options\n .filter(option =>\n Object.values(option)\n .map(x => x.toLowerCase().includes(filterValue))\n .includes(true),\n )\n .map(option => {\n return {\n name: this.highlightPattern(option['name'], filterValue),\n email: this.highlightPattern(option['email'], filterValue),\n };\n });\n }\n\n private highlightPattern(textIn: string, filterValue: string): string {\n if (filterValue === '') return textIn;\n\n const idx = textIn.toLowerCase().indexOf(filterValue);\n\n if (idx === -1) return textIn;\n\n return (\n textIn.slice(0, idx) +\n '<mark>' +\n textIn.slice(idx, idx + filterValue.length) +\n '</mark>' +\n this.highlightPattern(textIn.slice(idx + filterValue.length), filterValue)\n );\n }\n\n displayFn(option: Record<string, string>) {\n return option['name'];\n }\n}\n","format.pipe.ts":"import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatString',\n standalone: true,\n})\nexport class FormatStringPipe implements PipeTransform {\n transform(text: string): string {\n return text.replace(/<[^>]*>?/gm, '');\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-bank-input.component.html":"<mat-form-field>\n <mat-label>IBAN</mat-label>\n\n <onemrva-mat-input-iban [formControl]=\"accountNumber\">\n </onemrva-mat-input-iban>\n\n <mat-hint>hint</mat-hint>\n @if (accountNumber.hasError('required')) {\n <mat-error>\n {{ 'input.bank.required' | translate }}\n </mat-error>\n }\n @if (accountNumber.hasError('WrongBBANLength')) {\n <mat-error>\n {{ 'input.bank.length' | translate }}\n </mat-error>\n }\n @if (accountNumber.hasError('NoIBANCountry')) {\n <mat-error> NoIBANCountry </mat-error>\n }\n @if (\n !accountNumber.hasError('WrongBBANLength') &&\n (accountNumber.hasError('WrongBBANFormat') ||\n accountNumber.hasError('WrongAccountBankBranchChecksum') ||\n accountNumber.hasError('WrongIBANChecksum'))\n ) {\n <mat-error>\n {{ 'input.bank.invalid' | translate }}\n </mat-error>\n }\n</mat-form-field>\n","demo-bank-input.component.ts":"import { Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\n\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OnemrvaMatInputIbanComponent } from '@onemrvapublic/design-system';\nimport { bankAccountValidator } from '@onemrvapublic/design-system/shared';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-bank-input',\n templateUrl: 'demo-bank-input.component.html',\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n TranslateModule,\n OnemrvaMatInputIbanComponent,\n ],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoBankInputComponent extends DemoComponentBase {\n accountNumber = new FormControl('', [\n Validators.required,\n bankAccountValidator(),\n ]);\n}\n"}
1
+ {"demo-bank-input.component.html":"<mat-form-field [readonly]=\"readonly()\">\n <mat-label>IBAN</mat-label>\n\n <onemrva-mat-input-iban [formControl]=\"accountNumber\">\n </onemrva-mat-input-iban>\n\n <mat-hint>hint</mat-hint>\n @if (accountNumber.hasError('required')) {\n <mat-error>\n {{ 'input.bank.required' | translate }}\n </mat-error>\n }\n @if (accountNumber.hasError('WrongBBANLength')) {\n <mat-error>\n {{ 'input.bank.length' | translate }}\n </mat-error>\n }\n @if (accountNumber.hasError('NoIBANCountry')) {\n <mat-error> NoIBANCountry </mat-error>\n }\n @if (\n !accountNumber.hasError('WrongBBANLength') &&\n (accountNumber.hasError('WrongBBANFormat') ||\n accountNumber.hasError('WrongAccountBankBranchChecksum') ||\n accountNumber.hasError('WrongIBANChecksum'))\n ) {\n <mat-error>\n {{ 'input.bank.invalid' | translate }}\n </mat-error>\n }\n</mat-form-field>\n","demo-bank-input.component.ts":"import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\n\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n OnemrvaMatInputIbanComponent,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { bankAccountValidator } from '@onemrvapublic/design-system/shared';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-bank-input',\n templateUrl: 'demo-bank-input.component.html',\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n TranslateModule,\n OnemrvaMatInputIbanComponent,\n OnemRvaReadonlyDirective,\n ],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoBankInputComponent extends DemoComponentBase {\n readonly = input(false);\n\n accountNumber = new FormControl('', [\n Validators.required,\n bankAccountValidator(),\n ]);\n}\n"}
@@ -1 +1 @@
1
- {"demo-birthplace-input.component.html":"<onemrva-mat-input-birthplace\n [readonly]=\"readonly\"\n [countryCode]=\"form\"\n label=\"{{ 'input.country.label' | translate }}\"\n noEntriesFoundLabel=\"{{ 'input.country.not.found' | translate }}\"\n placeholderLabel=\"{{ 'input.country.search' | translate }}\"\n searchAriaLabel=\"{{ 'input.country.search' | translate }}\"\n hint=\" {{ 'input.country.hint' | translate }}\"\n [returnValue]=\"returnValue\"\n></onemrva-mat-input-birthplace>\n","demo-birthplace-input.component.ts":"import { Component, effect, Input, ViewEncapsulation } from '@angular/core';\nimport {\n FormControl,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\n\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n OnemRvaCommonCountry,\n OnemrvaMatInputBirthPlaceComponent,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-birthplace-input',\n templateUrl: './demo-birthplace-input.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputBirthPlaceComponent,\n FormsModule,\n MatInputModule,\n TranslateModule,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoBirthplaceInputComponent extends DemoComponentBase {\n form = new FormControl<OnemRvaCommonCountry | null>(null, [\n Validators.required,\n ]);\n\n @Input()\n readonly = false;\n\n @Input()\n disabled = false;\n\n @Input()\n returnValue = 'object';\n\n constructor() {\n super();\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n effect(() => {\n if (this.disabled) this.form.disable();\n else this.form.enable();\n });\n }\n}\n"}
1
+ {"demo-birthplace-input.component.html":"<onemrva-mat-input-birthplace\n [readonly]=\"readonly()\"\n [countryCode]=\"form\"\n label=\"{{ 'input.country.label' | translate }}\"\n noEntriesFoundLabel=\"{{ 'input.country.not.found' | translate }}\"\n placeholderLabel=\"{{ 'input.country.search' | translate }}\"\n searchAriaLabel=\"{{ 'input.country.search' | translate }}\"\n hint=\" {{ 'input.country.hint' | translate }}\"\n [returnValue]=\"returnValue\"\n></onemrva-mat-input-birthplace>\n","demo-birthplace-input.component.ts":"import {\n Component,\n effect,\n input,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n FormControl,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\n\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n OnemRvaCommonCountry,\n OnemrvaMatInputBirthPlaceComponent,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-birthplace-input',\n templateUrl: './demo-birthplace-input.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputBirthPlaceComponent,\n FormsModule,\n MatInputModule,\n TranslateModule,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoBirthplaceInputComponent extends DemoComponentBase {\n form = new FormControl<OnemRvaCommonCountry | null>(null, [\n Validators.required,\n ]);\n\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n\n @Input()\n returnValue = 'object';\n\n constructor() {\n super();\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n });\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-button.component.html":"@if (type === 'contained') {\n <button\n mat-flat-button\n color=\"accent\"\n class=\"{{ size }}\"\n aria-label=\"Action\"\n [disabled]=\"disabled\"\n >\n @if (icon !== '') {\n <mat-icon>{{ icon }}</mat-icon>\n }\n Action\n </button>\n} @else if (type === 'outlined') {\n <button\n mat-stroked-button\n color=\"primary\"\n class=\"{{ size }}\"\n aria-label=\"Normal\"\n [disabled]=\"disabled\"\n >\n @if (icon !== '') {\n <mat-icon>{{ icon }}</mat-icon>\n }\n Normal\n </button>\n} @else if (type === 'text') {\n <button\n mat-button\n color=\"primary\"\n class=\"{{ size }}\"\n aria-label=\"Basic\"\n [disabled]=\"disabled\"\n >\n @if (icon !== '') {\n <mat-icon>{{ icon }}</mat-icon>\n }\n Basic\n </button>\n}\n","demo-button.component.ts":"import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { OnemrvaSharedModule } from '@onemrvapublic/design-system/shared';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-button',\n templateUrl: './demo-button.component.html',\n\n standalone: true,\n imports: [MatIconModule, MatButtonModule, OnemrvaSharedModule],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoButtonComponent extends DemoComponentBase {\n @Input()\n type = 'outlined';\n\n @Input()\n icon = '';\n\n @Input()\n size = '';\n\n @Input()\n disabled = false;\n}\n"}
1
+ {"demo-button.component.html":"@if (type() === 'contained') {\n <button\n mat-flat-button\n color=\"accent\"\n class=\"{{ size() }}\"\n aria-label=\"Action\"\n [disabled]=\"disabled()\"\n >\n @if (icon() !== '') {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n Action\n </button>\n} @else if (type() === 'outlined') {\n <button\n mat-stroked-button\n color=\"primary\"\n class=\"{{ size() }}\"\n aria-label=\"Normal\"\n [disabled]=\"disabled()\"\n >\n @if (icon() !== '') {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n Normal\n </button>\n} @else if (type() === 'text') {\n <button\n mat-button\n color=\"primary\"\n class=\"{{ size() }}\"\n aria-label=\"Basic\"\n [disabled]=\"disabled()\"\n >\n @if (icon() !== '') {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n Basic\n </button>\n}\n","demo-button.component.ts":"import {\n Component,\n effect,\n input,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { OnemrvaSharedModule } from '@onemrvapublic/design-system/shared';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-button',\n templateUrl: './demo-button.component.html',\n\n standalone: true,\n imports: [MatIconModule, MatButtonModule, OnemrvaSharedModule],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoButtonComponent extends DemoComponentBase {\n type = input('outlined');\n icon = input('');\n size = input('');\n disabled = input(false);\n}\n"}
@@ -1 +1 @@
1
- {"demo-chips-input.component.html":"<mat-form-field class=\"chips-input-field\">\n <mat-label>Favorite Fruits</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"Fruit selection\">\n <mat-chip-row\n *ngFor=\"let fruit of fruits\"\n [color]=\"color\"\n [disabled]=\"disabled\"\n (removed)=\"removeFruit(fruit)\"\n [removable]=\"!disabled\"\n >\n {{ fruit.name }}\n <button\n matChipRemove\n [attr.aria-label]=\"'remove ' + fruit.name\"\n *ngIf=\"!disabled\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n <input\n placeholder=\"Add fruit...\"\n [matChipInputFor]=\"chipGrid\"\n [disabled]=\"disabled\"\n (keydown.enter)=\"addFruit($event)\"\n (blur)=\"addFruit($event)\"\n />\n </mat-chip-grid>\n</mat-form-field>\n","demo-chips-input.component.ts":"import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nexport interface Fruit {\n name: string;\n}\n@Component({\n selector: 'app-demo-chips-input',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatChipsModule,\n DragDropModule,\n MatIconModule,\n MatFormFieldModule,\n ],\n templateUrl: './demo-chips-input.component.html',\n\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoChipsInputComponent extends DemoComponentBase {\n @Input()\n color: OnemrvaMatColor = '';\n\n @Input()\n disabled = false;\n\n fruits: Fruit[] = [{ name: 'Apple' }, { name: 'Banana' }, { name: 'Orange' }];\n\n addFruit(event: any): void {\n const value = (event.target.value || '').trim();\n if (value) {\n this.fruits.push({ name: value });\n event.target.value = '';\n }\n }\n\n removeFruit(fruit: Fruit): void {\n const index = this.fruits.indexOf(fruit);\n if (index >= 0) {\n this.fruits.splice(index, 1);\n }\n }\n}\n"}
1
+ {"demo-chips-input.component.html":"<mat-form-field class=\"chips-input-field\" [readonly]=\"readonly()\">\n <mat-label>Favorite Fruits</mat-label>\n <mat-chip-grid #chipGrid aria-label=\"Fruit selection\">\n @for (fruit of fruits; track fruit) {\n <mat-chip-row\n [color]=\"color()\"\n [disabled]=\"disabled()\"\n (removed)=\"removeFruit(fruit)\"\n [removable]=\"!disabled\"\n >\n {{ fruit.name }}\n @if (!disabled() && !readonly()) {\n <button matChipRemove [attr.aria-label]=\"'remove ' + fruit.name\">\n <mat-icon>cancel</mat-icon>\n </button>\n }\n </mat-chip-row>\n }\n\n @if (!disabled()) {\n <input\n placeholder=\"Add fruit...\"\n [matChipInputFor]=\"chipGrid\"\n [disabled]=\"disabled()\"\n (keydown.enter)=\"addFruit($event)\"\n (blur)=\"addFruit($event)\"\n />\n }\n </mat-chip-grid>\n</mat-form-field>\n","demo-chips-input.component.ts":"import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\nimport { OnemRvaReadonlyDirective } from '@onemrvapublic/design-system';\n\nexport interface Fruit {\n name: string;\n}\n@Component({\n selector: 'app-demo-chips-input',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatChipsModule,\n DragDropModule,\n MatIconModule,\n MatFormFieldModule,\n OnemRvaReadonlyDirective,\n ],\n templateUrl: './demo-chips-input.component.html',\n\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoChipsInputComponent extends DemoComponentBase {\n color = input<OnemrvaMatColor>('');\n disabled = input(false);\n readonly = input(false);\n\n fruits: Fruit[] = [{ name: 'Apple' }, { name: 'Banana' }, { name: 'Orange' }];\n\n addFruit(event: any): void {\n const value = (event.target.value || '').trim();\n if (value) {\n this.fruits.push({ name: value });\n event.target.value = '';\n }\n }\n\n removeFruit(fruit: Fruit): void {\n const index = this.fruits.indexOf(fruit);\n if (index >= 0) {\n this.fruits.splice(index, 1);\n }\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-choice-chips.component.html":"<onemrva-mat-choice-chip formControlName=\"choice\"\n >Choose this</onemrva-mat-choice-chip\n>\n","demo-choice-chips.component.ts":"import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { OnemrvaMatChoiceChipComponent } from '@onemrvapublic/design-system';\nimport { FormControl } from '@angular/forms';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-choice-chips',\n\n templateUrl: 'demo-choice-chips.component.html',\n standalone: true,\n imports: [CommonModule, MatCheckboxModule, OnemrvaMatChoiceChipComponent],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoChoiceChipsComponent extends DemoComponentBase {\n form = new FormControl();\n}\n"}
1
+ {"demo-choice-chips.component.html":"<onemrva-mat-choice-chip [formControl]=\"form\" [readonly]=\"readonly()\"\n >Choose this</onemrva-mat-choice-chip\n>\n","demo-choice-chips.component.ts":"import { Component, effect, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport {\n OnemrvaMatChoiceChipComponent,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-choice-chips',\n\n templateUrl: 'demo-choice-chips.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatCheckboxModule,\n OnemrvaMatChoiceChipComponent,\n ReactiveFormsModule,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoChoiceChipsComponent extends DemoComponentBase {\n form = new FormControl();\n\n readonly = input<boolean>(false);\n disabled = input<boolean>(false);\n\n constructor() {\n super();\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n });\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-country-input.component.html":"<onemrva-mat-input-country\n [readonly]=\"readonly\"\n [country]=\"form\"\n label=\"{{ 'input.country.label' | translate }}\"\n noEntriesFoundLabel=\"{{ 'input.country.not.found' | translate }}\"\n placeholderLabel=\"{{ 'input.country.search' | translate }}\"\n searchAriaLabel=\"{{ 'input.country.search' | translate }}\"\n hint=\" {{ 'input.country.hint' | translate }}\"\n></onemrva-mat-input-country>\n","demo-country-input.component.ts":"import { Component, effect, Input, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n OnemrvaMatInputCountryComponent,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-country-input',\n templateUrl: './demo-country-input.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputCountryComponent,\n MatInputModule,\n TranslateModule,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoCountryInputComponent extends DemoComponentBase {\n form = new FormControl('', [Validators.required]);\n\n @Input()\n readonly = false;\n\n @Input()\n disabled = false;\n\n constructor() {\n super();\n effect(() => {\n if (this.disabled) this.form.disable();\n else this.form.enable();\n\n // we set a value for readonly demo\n if (this.readonly) {\n this.form.setValue('be');\n }\n });\n\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n }\n}\n"}
1
+ {"demo-country-input.component.html":"<onemrva-mat-input-country\n [readonly]=\"readonly()\"\n [country]=\"form\"\n label=\"{{ 'input.country.label' | translate }}\"\n noEntriesFoundLabel=\"{{ 'input.country.not.found' | translate }}\"\n placeholderLabel=\"{{ 'input.country.search' | translate }}\"\n searchAriaLabel=\"{{ 'input.country.search' | translate }}\"\n hint=\" {{ 'input.country.hint' | translate }}\"\n></onemrva-mat-input-country>\n","demo-country-input.component.ts":"import {\n Component,\n effect,\n input,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n OnemrvaMatInputCountryComponent,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-country-input',\n templateUrl: './demo-country-input.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputCountryComponent,\n MatInputModule,\n TranslateModule,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoCountryInputComponent extends DemoComponentBase {\n form = new FormControl('', [Validators.required]);\n\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n\n constructor() {\n super();\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n\n // we set a value for readonly demo\n if (this.readonly()) {\n this.form.setValue('be');\n }\n });\n\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-datepicker.component.html":"<mat-form-field [readonly]=\"readonly\">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]=\"picker\" [formControl]=\"form\" />\n <mat-hint>DD/MM/YYYY</mat-hint>\n <mat-datepicker-toggle\n matSuffix\n [for]=\"picker\"\n [attr.data-cy]=\"'click-me'\"\n ></mat-datepicker-toggle>\n <mat-datepicker\n [calendarHeaderComponent]=\"OnemrvaMatDatepickerHeaderComponent\"\n #picker\n ></mat-datepicker>\n</mat-form-field>\n","demo-datepicker.component.ts":"import {\n Component,\n effect,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport {\n onemrvaDateNativeProvider,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatDatepickerHeaderComponent } from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-datepicker',\n templateUrl: './demo-datepicker.component.html',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n OnemRvaReadonlyDirective,\n ],\n providers: [onemrvaDateNativeProvider()],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoDatepickerComponent\n extends DemoComponentBase\n implements OnInit\n{\n form: FormControl = new FormControl('');\n\n protected readonly OnemrvaMatDatepickerHeaderComponent =\n OnemrvaMatDatepickerHeaderComponent;\n\n @Input()\n disabled = false;\n\n @Input()\n readonly = false;\n\n constructor() {\n super();\n this.form.setValue(new Date());\n effect(() => {\n if (this.disabled) this.form.disable();\n else this.form.enable();\n });\n }\n\n ngOnInit(): void {\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n }\n}\n"}
1
+ {"demo-datepicker.component.html":"<mat-form-field [readonly]=\"readonly()\">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]=\"picker\" [formControl]=\"form\" />\n <mat-hint>DD/MM/YYYY</mat-hint>\n <mat-datepicker-toggle\n matSuffix\n [for]=\"picker\"\n [attr.data-cy]=\"'click-me'\"\n ></mat-datepicker-toggle>\n <mat-datepicker\n [calendarHeaderComponent]=\"OnemrvaMatDatepickerHeaderComponent\"\n #picker\n ></mat-datepicker>\n</mat-form-field>\n","demo-datepicker.component.ts":"import {\n Component,\n effect,\n input,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport {\n onemrvaDateNativeProvider,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatDatepickerHeaderComponent } from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-datepicker',\n templateUrl: './demo-datepicker.component.html',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n OnemRvaReadonlyDirective,\n ],\n providers: [onemrvaDateNativeProvider()],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoDatepickerComponent\n extends DemoComponentBase\n implements OnInit\n{\n form: FormControl = new FormControl('');\n\n protected readonly OnemrvaMatDatepickerHeaderComponent =\n OnemrvaMatDatepickerHeaderComponent;\n\n readonly = input<boolean>(false);\n disabled = input<boolean>(false);\n\n constructor() {\n super();\n this.form.setValue(new Date());\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n });\n }\n\n ngOnInit(): void {\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-daterangepicker.component.html":"<mat-form-field>\n <mat-label>Choose a date range</mat-label>\n <mat-date-range-input [rangePicker]=\"campaignOnePicker\">\n <input\n matStartDate\n [formControl]=\"startDate\"\n placeholder=\"Start date\"\n aria-label=\"Start date\"\n />\n <input\n matEndDate\n [formControl]=\"endDate\"\n placeholder=\"End date\"\n aria-label=\"End date\"\n />\n </mat-date-range-input>\n <mat-datepicker-toggle\n matSuffix\n [for]=\"campaignOnePicker\"\n ></mat-datepicker-toggle>\n <mat-date-range-picker #campaignOnePicker></mat-date-range-picker>\n <mat-hint>Hint</mat-hint>\n</mat-form-field>\n","demo-daterangepicker.component.ts":"import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport {\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { onemrvaDateLuxonProvider } from '@onemrvapublic/design-system/shared';\nimport { DateTime } from 'luxon';\nimport { filter, startWith } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-daterangepicker',\n templateUrl: './demo-daterangepicker.component.html',\n\n standalone: true,\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatNativeDateModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [onemrvaDateLuxonProvider()],\n})\nexport class DemoDaterangepickerComponent\n extends DemoComponentBase\n implements OnInit\n{\n public startMaxDate: DateTime;\n public endMaxDate: DateTime;\n\n form = new FormGroup({\n start: new FormControl(\n DateTime.now().startOf('month'),\n Validators.required,\n ),\n end: new FormControl(DateTime.now().endOf('month'), Validators.required),\n });\n\n get startDate() {\n return this.form.get('start') as FormControl;\n }\n\n get endDate() {\n return this.form.get('end') as FormControl;\n }\n\n constructor() {\n super();\n this.startMaxDate = DateTime.now();\n this.endMaxDate = DateTime.now();\n\n this.startDate.valueChanges\n .pipe(takeUntilDestroyed(), startWith(this.startMaxDate))\n .subscribe(() => {\n this.endMaxDate = this.startMaxDate.minus({ days: 1 });\n });\n\n this.endDate.valueChanges\n .pipe(\n filter((value: null | DateTime) => value !== null), // Only allow non-null values to pass through\n )\n .subscribe(value => {\n console.log(value);\n });\n }\n\n ngOnInit(): void {\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n }\n}\n"}
1
+ {"demo-daterangepicker.component.html":"<mat-form-field [readonly]=\"readonly()\">\n <mat-label>Choose a date range</mat-label>\n <mat-date-range-input [rangePicker]=\"campaignOnePicker\">\n <input\n matStartDate\n [formControl]=\"startDate\"\n placeholder=\"Start date\"\n aria-label=\"Start date\"\n />\n <input\n matEndDate\n [formControl]=\"endDate\"\n placeholder=\"End date\"\n aria-label=\"End date\"\n />\n </mat-date-range-input>\n <mat-datepicker-toggle\n matSuffix\n [for]=\"campaignOnePicker\"\n ></mat-datepicker-toggle>\n <mat-date-range-picker #campaignOnePicker></mat-date-range-picker>\n <mat-hint>Hint</mat-hint>\n</mat-form-field>\n","demo-daterangepicker.component.ts":"import {\n Component,\n effect,\n input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport {\n onemrvaDateLuxonProvider,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system/shared';\nimport { DateTime } from 'luxon';\nimport { filter, startWith } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-daterangepicker',\n templateUrl: './demo-daterangepicker.component.html',\n\n standalone: true,\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatNativeDateModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [onemrvaDateLuxonProvider()],\n})\nexport class DemoDaterangepickerComponent\n extends DemoComponentBase\n implements OnInit\n{\n public startMaxDate: DateTime;\n public endMaxDate: DateTime;\n\n readonly = input(false);\n disabled = input(false);\n\n form = new FormGroup({\n start: new FormControl(\n DateTime.now().startOf('month'),\n Validators.required,\n ),\n end: new FormControl(DateTime.now().endOf('month'), Validators.required),\n });\n\n get startDate() {\n return this.form.get('start') as FormControl;\n }\n\n get endDate() {\n return this.form.get('end') as FormControl;\n }\n\n constructor() {\n super();\n this.startMaxDate = DateTime.now();\n this.endMaxDate = DateTime.now();\n\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n });\n\n this.startDate.valueChanges\n .pipe(takeUntilDestroyed(), startWith(this.startMaxDate))\n .subscribe(() => {\n this.endMaxDate = this.startMaxDate.minus({ days: 1 });\n });\n\n this.endDate.valueChanges\n .pipe(\n filter((value: null | DateTime) => value !== null), // Only allow non-null values to pass through\n )\n .subscribe(value => {\n console.log(value);\n });\n }\n\n ngOnInit(): void {\n this.form.valueChanges.subscribe(value => {\n this.output.set(value);\n });\n }\n}\n"}
@@ -0,0 +1 @@
1
+ {"jsonform.html":"<jsonforms\n [data]=\"data\"\n [schema]=\"schema\"\n [uischema]=\"uischema\"\n [renderers]=\"renderers\"\n></jsonforms>\n","jsonform.ts":"import { Component, effect, Input } from '@angular/core';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { JsonFormsModule } from '@jsonforms/angular';\nimport { angularMaterialRenderers } from '@jsonforms/angular-material';\nimport { uischema } from './uischema.form';\nimport { schema } from './schema.form';\n\n@Component({\n selector: 'app-demo-jsonform',\n templateUrl: './jsonform.html',\n standalone: true,\n imports: [JsonFormsModule],\n})\nexport class DemoJsonformsComponent extends DemoComponentBase {\n renderers = angularMaterialRenderers;\n\n uischema = uischema;\n schema = schema;\n\n data = {};\n}\n","schema.form.ts":"export const schema = {\n type: 'object',\n properties: {\n exampleRadioEnum: {\n type: 'string',\n enum: ['One', 'Two', 'Three'],\n },\n name: {\n type: 'string',\n minLength: 1,\n },\n done: {\n type: 'boolean',\n },\n due_date: {\n type: 'string',\n format: 'date',\n },\n recurrence: {\n type: 'string',\n enum: ['Never', 'Daily', 'Weekly', 'Monthly'],\n },\n },\n required: ['name', 'due_date'],\n};\n","uischema.form.ts":"export const uischema = {\n type: 'VerticalLayout',\n elements: [\n {\n type: 'Control',\n scope: '#/properties/exampleRadioEnum',\n options: {\n format: 'radio',\n },\n },\n {\n type: 'Control',\n label: false,\n scope: '#/properties/done',\n },\n {\n type: 'Control',\n scope: '#/properties/name',\n },\n {\n type: 'HorizontalLayout',\n elements: [\n {\n type: 'Control',\n scope: '#/properties/due_date',\n },\n {\n type: 'Control',\n scope: '#/properties/recurrence',\n },\n ],\n },\n ],\n};\n"}
@@ -1 +1 @@
1
- {"demo-multiselect.component.html":"<mat-form-field [readonly]=\"readonly\">\n <mat-label>Select (multiple)</mat-label>\n <onemrva-mat-multi-select\n [formControl]=\"form\"\n [selectionToggle]=\"selectionToggle\"\n [showFilter]=\"showFilter\"\n >\n @for (value of toppingList$ | async; track value) {\n <mat-option [value]=\"value\">{{ value }}</mat-option>\n }\n </onemrva-mat-multi-select>\n <mat-hint>Hint</mat-hint>\n</mat-form-field>\n","demo-multiselect.component.ts":"import { Component, effect, Input, ViewEncapsulation } from '@angular/core';\nimport { MatSelectChange, MatSelectModule } from '@angular/material/select';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { debounceTime, Observable, of, startWith } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatInputModule } from '@angular/material/input';\nimport {\n MatSelectSearchModule,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n OnemrvaMatMultiSelectComponent,\n OnemrvaMatMultiSelectModule,\n} from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { toppingList } from '../../models/toppings';\n\n@Component({\n selector: 'app-demo-multiselect',\n templateUrl: './demo-multiselect.component.html',\n\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n MatInputModule,\n MatSelectModule,\n MatSelectSearchModule,\n MatFormFieldModule,\n OnemrvaMatMultiSelectModule,\n OnemrvaMatMultiSelectComponent,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoMultiselectComponent extends DemoComponentBase {\n @Input()\n disabled = false;\n\n @Input()\n readonly = false;\n\n @Input()\n selectionToggle = true;\n\n @Input()\n showFilter = true;\n\n form: FormControl = new FormControl([], Validators.required);\n\n toppingList$: Observable<string[]>;\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n constructor() {\n super();\n\n effect(() => {\n if (this.disabled) this.form.disable();\n else this.form.enable();\n\n if (this.readonly) {\n this.form.setValue(['Pepperoni', 'Eggplant']);\n }\n });\n\n // filtering the list\n this.toppingList$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith(''),\n map(search => {\n return toppingList.filter((value: string) => {\n if (!search || search === '') return this.form;\n return value.toLowerCase().indexOf(search.toLowerCase()) > -1;\n });\n }),\n );\n }\n}\n"}
1
+ {"demo-multiselect.component.html":"<mat-form-field [readonly]=\"readonly()\">\n <mat-label>Select (multiple)</mat-label>\n <onemrva-mat-multi-select\n [formControl]=\"form\"\n [selectionToggle]=\"selectionToggle()\"\n [showFilter]=\"showFilter()\"\n >\n @for (value of toppingList$ | async; track value) {\n <mat-option [value]=\"value\">{{ value }}</mat-option>\n }\n </onemrva-mat-multi-select>\n <mat-hint>Hint</mat-hint>\n</mat-form-field>\n","demo-multiselect.component.ts":"import { Component, effect, input, ViewEncapsulation } from '@angular/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { debounceTime, Observable, startWith } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatInputModule } from '@angular/material/input';\nimport {\n MatSelectSearchModule,\n OnemRvaReadonlyDirective,\n} from '@onemrvapublic/design-system';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n OnemrvaMatMultiSelectComponent,\n OnemrvaMatMultiSelectModule,\n} from '@onemrvapublic/design-system';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { toppingList } from '../../models/toppings';\n\n@Component({\n selector: 'app-demo-multiselect',\n templateUrl: './demo-multiselect.component.html',\n\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n MatInputModule,\n MatSelectModule,\n MatSelectSearchModule,\n MatFormFieldModule,\n OnemrvaMatMultiSelectModule,\n OnemrvaMatMultiSelectComponent,\n OnemRvaReadonlyDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoMultiselectComponent extends DemoComponentBase {\n disabled = input(false);\n readonly = input(false);\n selectionToggle = input(true);\n showFilter = input(true);\n\n form: FormControl = new FormControl([], Validators.required);\n\n toppingList$: Observable<string[]>;\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n constructor() {\n super();\n\n effect(() => {\n if (this.disabled()) this.form.disable();\n else this.form.enable();\n\n if (this.readonly() && !this.form.getRawValue()) {\n this.form.setValue(['Pepperoni', 'Eggplant']);\n }\n });\n\n // filtering the list\n this.toppingList$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith(''),\n map(search => {\n return toppingList.filter((value: string) => {\n if (!search || search === '') return this.form;\n return value.toLowerCase().indexOf(search.toLowerCase()) > -1;\n });\n }),\n );\n }\n}\n"}
@@ -1 +1 @@
1
- {"demo-radio.component.html":"<mat-radio-group>\n <mat-radio-button value=\"YES\">Yes</mat-radio-button>\n <mat-radio-button value=\"NO\" [checked]=\"true\">No</mat-radio-button>\n</mat-radio-group>\n<mat-radio-group disabled>\n <mat-radio-button value=\"YES\" [checked]=\"true\"\n >Yes (checked & disabled)</mat-radio-button\n >\n <mat-radio-button value=\"NO\">No (disabled)</mat-radio-button>\n</mat-radio-group>\n","demo-radio.component.ts":"import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\n\n@Component({\n selector: 'app-demo-radio',\n templateUrl: './demo-radio.component.html',\n standalone: true,\n imports: [CommonModule, MatRadioModule],\n\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoRadioComponent extends DemoComponentBase {}\n"}
1
+ {"demo-radio.component.html":"<mat-radio-group [disabled]=\"disabled()\" [readonly]=\"readonly()\">\n <mat-radio-button value=\"YES\">Yes</mat-radio-button>\n <mat-radio-button value=\"NO\" [checked]=\"true\">No</mat-radio-button>\n</mat-radio-group>\n","demo-radio.component.ts":"import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { DemoComponentBase } from '../../_demo/demo-component-base';\nimport { OnemRvaReadonlyDirective } from '@onemrvapublic/design-system';\n\n@Component({\n selector: 'app-demo-radio',\n templateUrl: './demo-radio.component.html',\n standalone: true,\n imports: [CommonModule, MatRadioModule, OnemRvaReadonlyDirective],\n\n encapsulation: ViewEncapsulation.None,\n})\nexport class DemoRadioComponent extends DemoComponentBase {\n disabled = input(false);\n readonly = input(false);\n}\n"}