@watermarkinsights/ripple 3.5.2-0 → 3.6.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cjs/{functions-8fb310fe.js → functions-0cf2d639.js} +1128 -486
- package/dist/cjs/{global-abd32fdd.js → global-b6602785.js} +65 -65
- package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
- package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/priv-chart-popover.cjs.entry.js +79 -79
- package/dist/cjs/priv-datepicker.cjs.entry.js +667 -667
- package/dist/cjs/priv-navigator-button.cjs.entry.js +18 -18
- package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
- package/dist/cjs/ripple.cjs.js +2 -2
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +341 -341
- package/dist/cjs/wm-button.cjs.entry.js +218 -218
- package/dist/cjs/wm-chart-slice.cjs.entry.js +13 -13
- package/dist/cjs/wm-chart.cjs.entry.js +475 -475
- package/dist/cjs/wm-datepicker.cjs.entry.js +256 -256
- package/dist/cjs/wm-input.cjs.entry.js +134 -133
- package/dist/cjs/wm-modal-footer.cjs.entry.js +31 -31
- package/dist/cjs/wm-modal-header.cjs.entry.js +34 -34
- package/dist/cjs/wm-modal.cjs.entry.js +161 -161
- package/dist/cjs/wm-navigator.cjs.entry.js +268 -268
- package/dist/cjs/wm-network-uploader.cjs.entry.js +421 -420
- package/dist/cjs/wm-option_2.cjs.entry.js +494 -492
- package/dist/cjs/wm-pagination.cjs.entry.js +167 -167
- package/dist/cjs/wm-search.cjs.entry.js +231 -231
- package/dist/cjs/wm-snackbar.cjs.entry.js +170 -170
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +300 -300
- package/dist/cjs/wm-tag-input.cjs.entry.js +570 -556
- package/dist/cjs/wm-timepicker.cjs.entry.js +380 -379
- package/dist/cjs/wm-toggletip.cjs.entry.js +124 -124
- package/dist/cjs/wm-uploader.cjs.entry.js +360 -347
- package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
- package/dist/collection/components/wm-button/wm-button.js +485 -485
- package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.css +1 -0
- package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -232
- package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -64
- package/dist/collection/components/wm-chart/wm-chart.css +4 -0
- package/dist/collection/components/wm-chart/wm-chart.js +719 -719
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1015 -1015
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +462 -462
- package/dist/collection/components/wm-input/wm-input.js +424 -423
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
- package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
- package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
- package/dist/collection/components/wm-modal/wm-modal.js +459 -459
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
- package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
- package/dist/collection/components/wm-option/wm-option.js +422 -422
- package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
- package/dist/collection/components/wm-search/wm-search.js +479 -479
- package/dist/collection/components/wm-select/wm-select.js +720 -718
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +219 -219
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +331 -331
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +801 -787
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +580 -579
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +772 -753
- package/dist/collection/components/wm-uploader/wm-uploader.css +18 -11
- package/dist/collection/components/wm-uploader/wm-uploader.js +794 -748
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
- package/dist/collection/dev/scripts.js +20 -20
- package/dist/collection/global/__mocks__/functions.js +6 -6
- package/dist/collection/global/functions.js +445 -445
- package/dist/collection/global/global.js +72 -72
- package/dist/collection/global/interfaces.js +49 -49
- package/dist/collection/global/services/__mocks__/http-service.js +130 -130
- package/dist/collection/global/services/http-service.js +50 -50
- package/dist/collection/lang/lang.js +5 -5
- package/dist/collection/lang/missing.js +39 -0
- package/dist/collection/lang/piglatin.js +93 -93
- package/dist/esm/{functions-c315390d.js → functions-223fb0dc.js} +1128 -486
- package/dist/esm/{global-77d57a10.js → global-f9c17bf1.js} +65 -65
- package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
- package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
- package/dist/esm/loader.js +2 -2
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/priv-chart-popover.entry.js +79 -79
- package/dist/esm/priv-datepicker.entry.js +667 -667
- package/dist/esm/priv-navigator-button.entry.js +18 -18
- package/dist/esm/priv-navigator-item.entry.js +23 -23
- package/dist/esm/ripple.js +2 -2
- package/dist/esm/wm-action-menu_2.entry.js +341 -341
- package/dist/esm/wm-button.entry.js +218 -218
- package/dist/esm/wm-chart-slice.entry.js +13 -13
- package/dist/esm/wm-chart.entry.js +475 -475
- package/dist/esm/wm-datepicker.entry.js +256 -256
- package/dist/esm/wm-input.entry.js +134 -133
- package/dist/esm/wm-modal-footer.entry.js +31 -31
- package/dist/esm/wm-modal-header.entry.js +34 -34
- package/dist/esm/wm-modal.entry.js +161 -161
- package/dist/esm/wm-navigator.entry.js +268 -268
- package/dist/esm/wm-network-uploader.entry.js +421 -420
- package/dist/esm/wm-option_2.entry.js +494 -492
- package/dist/esm/wm-pagination.entry.js +167 -167
- package/dist/esm/wm-search.entry.js +231 -231
- package/dist/esm/wm-snackbar.entry.js +170 -170
- package/dist/esm/wm-tab-item_3.entry.js +300 -300
- package/dist/esm/wm-tag-input.entry.js +570 -556
- package/dist/esm/wm-timepicker.entry.js +380 -379
- package/dist/esm/wm-toggletip.entry.js +124 -124
- package/dist/esm/wm-uploader.entry.js +361 -348
- package/dist/esm/wm-wrapper.entry.js +12 -12
- package/dist/ripple/{p-374b4fa6.entry.js → p-03f14a00.entry.js} +1 -1
- package/dist/ripple/{p-c724ce54.entry.js → p-0663e9fc.entry.js} +1 -1
- package/dist/ripple/{p-36da5d4a.entry.js → p-07f557b0.entry.js} +1 -1
- package/dist/ripple/{p-dea72d46.entry.js → p-0b1cdd4e.entry.js} +1 -1
- package/dist/ripple/{p-ba9d3069.entry.js → p-1fdd85ea.entry.js} +1 -1
- package/dist/ripple/p-2d7891e9.entry.js +1 -0
- package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
- package/dist/ripple/{p-5ffa983b.entry.js → p-6b28f3fe.entry.js} +1 -1
- package/dist/ripple/{p-e574fb73.entry.js → p-6d0b3f08.entry.js} +1 -1
- package/dist/ripple/{p-8a1c87e7.js → p-792a78d7.js} +1 -1
- package/dist/ripple/{p-7bbd123c.entry.js → p-94f584c5.entry.js} +1 -1
- package/dist/ripple/p-a1fc8e81.entry.js +1 -0
- package/dist/ripple/{p-b03382ea.entry.js → p-a84de435.entry.js} +1 -1
- package/dist/ripple/{p-c5e44367.entry.js → p-addbfa91.entry.js} +1 -1
- package/dist/ripple/p-b14062a7.entry.js +1 -0
- package/dist/ripple/p-c5d718c7.entry.js +1 -0
- package/dist/ripple/p-c637686e.entry.js +1 -0
- package/dist/ripple/{p-042d6449.entry.js → p-c8655e6c.entry.js} +1 -1
- package/dist/ripple/p-cf075b3b.js +16 -0
- package/dist/ripple/{p-d69c1688.entry.js → p-d5938de0.entry.js} +1 -1
- package/dist/ripple/{p-b4a8c8d3.entry.js → p-e26c9858.entry.js} +1 -1
- package/dist/ripple/p-f23d6211.entry.js +1 -0
- package/dist/ripple/p-fb90d334.entry.js +1 -0
- package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -48
- package/dist/types/components/wm-button/wm-button.d.ts +44 -44
- package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -23
- package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -8
- package/dist/types/components/wm-chart/wm-chart.d.ts +82 -82
- package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +76 -76
- package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
- package/dist/types/components/wm-input/wm-input.d.ts +46 -46
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
- package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
- package/dist/types/components/wm-option/wm-option.d.ts +32 -32
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
- package/dist/types/components/wm-search/wm-search.d.ts +86 -86
- package/dist/types/components/wm-select/wm-select.d.ts +66 -66
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +92 -91
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +61 -61
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
- package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +86 -85
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +84 -80
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
- package/dist/types/components.d.ts +30 -24
- package/dist/types/global/__mocks__/functions.d.ts +6 -6
- package/dist/types/global/functions.d.ts +40 -40
- package/dist/types/global/global.d.ts +1 -1
- package/dist/types/global/interfaces.d.ts +34 -34
- package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
- package/dist/types/global/services/http-service.d.ts +4 -4
- package/dist/types/lang/lang.d.ts +5 -5
- package/package.json +47 -46
- package/dist/ripple/p-31fde2c6.entry.js +0 -1
- package/dist/ripple/p-34694011.entry.js +0 -1
- package/dist/ripple/p-41f39509.entry.js +0 -1
- package/dist/ripple/p-75a9ba2f.entry.js +0 -1
- package/dist/ripple/p-a50439f1.entry.js +0 -1
- package/dist/ripple/p-d5fafa9c.entry.js +0 -1
- package/dist/ripple/p-e60fe2f5.js +0 -16
- package/dist/ripple/p-ec5db255.entry.js +0 -1
|
@@ -70,7 +70,7 @@ const en = {
|
|
|
70
70
|
}
|
|
71
71
|
]
|
|
72
72
|
},
|
|
73
|
-
|
|
73
|
+
other: {
|
|
74
74
|
value: [
|
|
75
75
|
{
|
|
76
76
|
type: 0,
|
|
@@ -142,7 +142,7 @@ const en = {
|
|
|
142
142
|
}
|
|
143
143
|
]
|
|
144
144
|
},
|
|
145
|
-
|
|
145
|
+
other: {
|
|
146
146
|
value: [
|
|
147
147
|
{
|
|
148
148
|
type: 0,
|
|
@@ -334,6 +334,43 @@ const en = {
|
|
|
334
334
|
type: 0,
|
|
335
335
|
value: "Wednesday"
|
|
336
336
|
}
|
|
337
|
+
],
|
|
338
|
+
"global.characterLimit": [
|
|
339
|
+
{
|
|
340
|
+
style: null,
|
|
341
|
+
type: 2,
|
|
342
|
+
value: "limit"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
type: 0,
|
|
346
|
+
value: " characters allowed."
|
|
347
|
+
}
|
|
348
|
+
],
|
|
349
|
+
"global.characterLimitReached": [
|
|
350
|
+
{
|
|
351
|
+
type: 0,
|
|
352
|
+
value: "No additional characters will be entered."
|
|
353
|
+
}
|
|
354
|
+
],
|
|
355
|
+
"global.charactersEntered": [
|
|
356
|
+
{
|
|
357
|
+
style: null,
|
|
358
|
+
type: 2,
|
|
359
|
+
value: "x"
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
type: 0,
|
|
363
|
+
value: " of "
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
style: null,
|
|
367
|
+
type: 2,
|
|
368
|
+
value: "y"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
type: 0,
|
|
372
|
+
value: " characters entered."
|
|
373
|
+
}
|
|
337
374
|
],
|
|
338
375
|
"global.closeVerb": [
|
|
339
376
|
{
|
|
@@ -346,6 +383,12 @@ const en = {
|
|
|
346
383
|
type: 0,
|
|
347
384
|
value: "An error occurred. Please try again."
|
|
348
385
|
}
|
|
386
|
+
],
|
|
387
|
+
"global.newWindowLink": [
|
|
388
|
+
{
|
|
389
|
+
type: 0,
|
|
390
|
+
value: "Opens in a new window."
|
|
391
|
+
}
|
|
349
392
|
],
|
|
350
393
|
"global.next": [
|
|
351
394
|
{
|
|
@@ -358,6 +401,24 @@ const en = {
|
|
|
358
401
|
type: 0,
|
|
359
402
|
value: "previous"
|
|
360
403
|
}
|
|
404
|
+
],
|
|
405
|
+
"global.requiredError": [
|
|
406
|
+
{
|
|
407
|
+
type: 0,
|
|
408
|
+
value: "This field is required."
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"global.requiredField": [
|
|
412
|
+
{
|
|
413
|
+
type: 0,
|
|
414
|
+
value: "required field"
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"input.numberError": [
|
|
418
|
+
{
|
|
419
|
+
type: 0,
|
|
420
|
+
value: "Please enter a valid number."
|
|
421
|
+
}
|
|
361
422
|
],
|
|
362
423
|
"navigator.WatermarkAppNavigation": [
|
|
363
424
|
{
|
|
@@ -521,6 +582,127 @@ const en = {
|
|
|
521
582
|
type: 0,
|
|
522
583
|
value: "Make a selection"
|
|
523
584
|
}
|
|
585
|
+
],
|
|
586
|
+
"tagInput.existingOptions": [
|
|
587
|
+
{
|
|
588
|
+
offset: 0,
|
|
589
|
+
options: {
|
|
590
|
+
one: {
|
|
591
|
+
value: [
|
|
592
|
+
{
|
|
593
|
+
type: 0,
|
|
594
|
+
value: "1 existing option."
|
|
595
|
+
}
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
other: {
|
|
599
|
+
value: [
|
|
600
|
+
{
|
|
601
|
+
type: 7
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
type: 0,
|
|
605
|
+
value: " existing options."
|
|
606
|
+
}
|
|
607
|
+
]
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
pluralType: "cardinal",
|
|
611
|
+
type: 6,
|
|
612
|
+
value: "num"
|
|
613
|
+
}
|
|
614
|
+
],
|
|
615
|
+
"tagInput.helpTextCanSelect": [
|
|
616
|
+
{
|
|
617
|
+
type: 0,
|
|
618
|
+
value: "Search and select a tag."
|
|
619
|
+
}
|
|
620
|
+
],
|
|
621
|
+
"tagInput.helpTextEditable": [
|
|
622
|
+
{
|
|
623
|
+
type: 0,
|
|
624
|
+
value: "Press the Enter or Comma key to add a new tag."
|
|
625
|
+
}
|
|
626
|
+
],
|
|
627
|
+
"tagInput.maxTagsReached": [
|
|
628
|
+
{
|
|
629
|
+
type: 0,
|
|
630
|
+
value: "The maximum amount of tags has been reached, no additional tags can be added."
|
|
631
|
+
}
|
|
632
|
+
],
|
|
633
|
+
"tagInput.placeholderAdd": [
|
|
634
|
+
{
|
|
635
|
+
type: 0,
|
|
636
|
+
value: "Add a new tag"
|
|
637
|
+
}
|
|
638
|
+
],
|
|
639
|
+
"tagInput.placeholderAddAndSearch": [
|
|
640
|
+
{
|
|
641
|
+
type: 0,
|
|
642
|
+
value: "Add or search for a tag"
|
|
643
|
+
}
|
|
644
|
+
],
|
|
645
|
+
"tagInput.placeholderSearch": [
|
|
646
|
+
{
|
|
647
|
+
type: 0,
|
|
648
|
+
value: "Search and select a tag"
|
|
649
|
+
}
|
|
650
|
+
],
|
|
651
|
+
"tagInput.tagAdded": [
|
|
652
|
+
{
|
|
653
|
+
type: 1,
|
|
654
|
+
value: "tagName"
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
type: 0,
|
|
658
|
+
value: " added."
|
|
659
|
+
}
|
|
660
|
+
],
|
|
661
|
+
"tagInput.tagAlreadyAdded": [
|
|
662
|
+
{
|
|
663
|
+
type: 1,
|
|
664
|
+
value: "tagName"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
type: 0,
|
|
668
|
+
value: " has already been added."
|
|
669
|
+
}
|
|
670
|
+
],
|
|
671
|
+
"tagInput.tagAreaInstructions": [
|
|
672
|
+
{
|
|
673
|
+
type: 0,
|
|
674
|
+
value: "tag selection. Press Backspace or Delete to remove a tag."
|
|
675
|
+
}
|
|
676
|
+
],
|
|
677
|
+
"tagInput.tagRemoved": [
|
|
678
|
+
{
|
|
679
|
+
type: 1,
|
|
680
|
+
value: "tag"
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
type: 0,
|
|
684
|
+
value: " removed"
|
|
685
|
+
}
|
|
686
|
+
],
|
|
687
|
+
"tagInput.tagsAddedCounter": [
|
|
688
|
+
{
|
|
689
|
+
type: 0,
|
|
690
|
+
value: "Tags added: "
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
style: null,
|
|
694
|
+
type: 2,
|
|
695
|
+
value: "x"
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
type: 0,
|
|
699
|
+
value: "/"
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
style: null,
|
|
703
|
+
type: 2,
|
|
704
|
+
value: "y"
|
|
705
|
+
}
|
|
524
706
|
],
|
|
525
707
|
"time.invalidTime": [
|
|
526
708
|
{
|
|
@@ -545,6 +727,12 @@ const en = {
|
|
|
545
727
|
type: 0,
|
|
546
728
|
value: "hh:mm"
|
|
547
729
|
}
|
|
730
|
+
],
|
|
731
|
+
"toggletip.moreInformation": [
|
|
732
|
+
{
|
|
733
|
+
type: 0,
|
|
734
|
+
value: "More information"
|
|
735
|
+
}
|
|
548
736
|
],
|
|
549
737
|
"uploader.duplicateName": [
|
|
550
738
|
{
|
|
@@ -760,7 +948,7 @@ const fr = {
|
|
|
760
948
|
}
|
|
761
949
|
]
|
|
762
950
|
},
|
|
763
|
-
|
|
951
|
+
other: {
|
|
764
952
|
value: [
|
|
765
953
|
{
|
|
766
954
|
type: 0,
|
|
@@ -832,7 +1020,7 @@ const fr = {
|
|
|
832
1020
|
}
|
|
833
1021
|
]
|
|
834
1022
|
},
|
|
835
|
-
|
|
1023
|
+
other: {
|
|
836
1024
|
value: [
|
|
837
1025
|
{
|
|
838
1026
|
type: 0,
|
|
@@ -910,6 +1098,12 @@ const fr = {
|
|
|
910
1098
|
type: 0,
|
|
911
1099
|
value: "Octobre"
|
|
912
1100
|
}
|
|
1101
|
+
],
|
|
1102
|
+
"date.requiredDateError": [
|
|
1103
|
+
{
|
|
1104
|
+
type: 0,
|
|
1105
|
+
value: "Vous devez renseigner une date."
|
|
1106
|
+
}
|
|
913
1107
|
],
|
|
914
1108
|
"date.sa": [
|
|
915
1109
|
{
|
|
@@ -1018,12 +1212,61 @@ const fr = {
|
|
|
1018
1212
|
type: 0,
|
|
1019
1213
|
value: "Mercredi"
|
|
1020
1214
|
}
|
|
1215
|
+
],
|
|
1216
|
+
"global.characterLimit": [
|
|
1217
|
+
{
|
|
1218
|
+
style: null,
|
|
1219
|
+
type: 2,
|
|
1220
|
+
value: "limit"
|
|
1221
|
+
},
|
|
1222
|
+
{
|
|
1223
|
+
type: 0,
|
|
1224
|
+
value: " caractères autorisés."
|
|
1225
|
+
}
|
|
1226
|
+
],
|
|
1227
|
+
"global.characterLimitReached": [
|
|
1228
|
+
{
|
|
1229
|
+
type: 0,
|
|
1230
|
+
value: "Aucun autre caractère ne peut être ajouté."
|
|
1231
|
+
}
|
|
1232
|
+
],
|
|
1233
|
+
"global.charactersEntered": [
|
|
1234
|
+
{
|
|
1235
|
+
style: null,
|
|
1236
|
+
type: 2,
|
|
1237
|
+
value: "x"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
type: 0,
|
|
1241
|
+
value: " caractères sur "
|
|
1242
|
+
},
|
|
1243
|
+
{
|
|
1244
|
+
style: null,
|
|
1245
|
+
type: 2,
|
|
1246
|
+
value: "y"
|
|
1247
|
+
},
|
|
1248
|
+
{
|
|
1249
|
+
type: 0,
|
|
1250
|
+
value: " ajoutés."
|
|
1251
|
+
}
|
|
1252
|
+
],
|
|
1253
|
+
"global.closeVerb": [
|
|
1254
|
+
{
|
|
1255
|
+
type: 0,
|
|
1256
|
+
value: "Fermer"
|
|
1257
|
+
}
|
|
1021
1258
|
],
|
|
1022
1259
|
"global.genericError": [
|
|
1023
1260
|
{
|
|
1024
1261
|
type: 0,
|
|
1025
1262
|
value: "Une erreur s'est produite. Veuillez réessayer."
|
|
1026
1263
|
}
|
|
1264
|
+
],
|
|
1265
|
+
"global.newWindowLink": [
|
|
1266
|
+
{
|
|
1267
|
+
type: 0,
|
|
1268
|
+
value: "S'ouvre dans une nouvelle fenêtre."
|
|
1269
|
+
}
|
|
1027
1270
|
],
|
|
1028
1271
|
"global.next": [
|
|
1029
1272
|
{
|
|
@@ -1036,6 +1279,24 @@ const fr = {
|
|
|
1036
1279
|
type: 0,
|
|
1037
1280
|
value: "précédent"
|
|
1038
1281
|
}
|
|
1282
|
+
],
|
|
1283
|
+
"global.requiredError": [
|
|
1284
|
+
{
|
|
1285
|
+
type: 0,
|
|
1286
|
+
value: "Ce champ est requis."
|
|
1287
|
+
}
|
|
1288
|
+
],
|
|
1289
|
+
"global.requiredField": [
|
|
1290
|
+
{
|
|
1291
|
+
type: 0,
|
|
1292
|
+
value: "champ requis"
|
|
1293
|
+
}
|
|
1294
|
+
],
|
|
1295
|
+
"input.numberError": [
|
|
1296
|
+
{
|
|
1297
|
+
type: 0,
|
|
1298
|
+
value: "Entrez un nombre valide."
|
|
1299
|
+
}
|
|
1039
1300
|
],
|
|
1040
1301
|
"navigator.WatermarkAppNavigation": [
|
|
1041
1302
|
{
|
|
@@ -1048,6 +1309,36 @@ const fr = {
|
|
|
1048
1309
|
type: 0,
|
|
1049
1310
|
value: "Se déconnecter"
|
|
1050
1311
|
}
|
|
1312
|
+
],
|
|
1313
|
+
"navigator.userinfo": [
|
|
1314
|
+
{
|
|
1315
|
+
type: 0,
|
|
1316
|
+
value: "Informations utilisateur"
|
|
1317
|
+
}
|
|
1318
|
+
],
|
|
1319
|
+
"navigator.userinfoAndProductNavigator": [
|
|
1320
|
+
{
|
|
1321
|
+
type: 0,
|
|
1322
|
+
value: "Informations utilisateur et navigateur de produits"
|
|
1323
|
+
}
|
|
1324
|
+
],
|
|
1325
|
+
"navigator.userinfoLabel": [
|
|
1326
|
+
{
|
|
1327
|
+
type: 0,
|
|
1328
|
+
value: "pour "
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
type: 1,
|
|
1332
|
+
value: "name"
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
type: 0,
|
|
1336
|
+
value: ", email "
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
type: 1,
|
|
1340
|
+
value: "email"
|
|
1341
|
+
}
|
|
1051
1342
|
],
|
|
1052
1343
|
"navigator.watermarkApps": [
|
|
1053
1344
|
{
|
|
@@ -1113,45 +1404,208 @@ const fr = {
|
|
|
1113
1404
|
"search.typeToFilterResults": [
|
|
1114
1405
|
{
|
|
1115
1406
|
type: 0,
|
|
1116
|
-
value: "Tapez pour filtrer les résultats"
|
|
1407
|
+
value: "Tapez pour filtrer les résultats"
|
|
1408
|
+
}
|
|
1409
|
+
],
|
|
1410
|
+
"search.xOfYResults": [
|
|
1411
|
+
{
|
|
1412
|
+
offset: 0,
|
|
1413
|
+
options: {
|
|
1414
|
+
"=0": {
|
|
1415
|
+
value: [
|
|
1416
|
+
{
|
|
1417
|
+
type: 0,
|
|
1418
|
+
value: "Aucun résultat"
|
|
1419
|
+
}
|
|
1420
|
+
]
|
|
1421
|
+
},
|
|
1422
|
+
other: {
|
|
1423
|
+
value: [
|
|
1424
|
+
{
|
|
1425
|
+
type: 0,
|
|
1426
|
+
value: "Résultat "
|
|
1427
|
+
},
|
|
1428
|
+
{
|
|
1429
|
+
type: 1,
|
|
1430
|
+
value: "current"
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
type: 0,
|
|
1434
|
+
value: " de "
|
|
1435
|
+
},
|
|
1436
|
+
{
|
|
1437
|
+
type: 1,
|
|
1438
|
+
value: "numResults"
|
|
1439
|
+
}
|
|
1440
|
+
]
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
pluralType: "cardinal",
|
|
1444
|
+
type: 6,
|
|
1445
|
+
value: "numResults"
|
|
1446
|
+
}
|
|
1447
|
+
],
|
|
1448
|
+
"select.allSelected": [
|
|
1449
|
+
{
|
|
1450
|
+
type: 0,
|
|
1451
|
+
value: "Tous sélectionnés"
|
|
1452
|
+
}
|
|
1453
|
+
],
|
|
1454
|
+
"select.multiPlaceholder": [
|
|
1455
|
+
{
|
|
1456
|
+
type: 0,
|
|
1457
|
+
value: "Faites une sélection"
|
|
1458
|
+
}
|
|
1459
|
+
],
|
|
1460
|
+
"tagInput.existingOptions": [
|
|
1461
|
+
{
|
|
1462
|
+
offset: 0,
|
|
1463
|
+
options: {
|
|
1464
|
+
one: {
|
|
1465
|
+
value: [
|
|
1466
|
+
{
|
|
1467
|
+
type: 0,
|
|
1468
|
+
value: "1 option existante."
|
|
1469
|
+
}
|
|
1470
|
+
]
|
|
1471
|
+
},
|
|
1472
|
+
other: {
|
|
1473
|
+
value: [
|
|
1474
|
+
{
|
|
1475
|
+
type: 7
|
|
1476
|
+
},
|
|
1477
|
+
{
|
|
1478
|
+
type: 0,
|
|
1479
|
+
value: " options existantes."
|
|
1480
|
+
}
|
|
1481
|
+
]
|
|
1482
|
+
}
|
|
1483
|
+
},
|
|
1484
|
+
pluralType: "cardinal",
|
|
1485
|
+
type: 6,
|
|
1486
|
+
value: "num"
|
|
1487
|
+
}
|
|
1488
|
+
],
|
|
1489
|
+
"tagInput.helpTextCanSelect": [
|
|
1490
|
+
{
|
|
1491
|
+
type: 0,
|
|
1492
|
+
value: "Recherchez et sélectionnez une étiquette."
|
|
1493
|
+
}
|
|
1494
|
+
],
|
|
1495
|
+
"tagInput.helpTextEditable": [
|
|
1496
|
+
{
|
|
1497
|
+
type: 0,
|
|
1498
|
+
value: "Appuyez sur Entrée ou insérez une virgule pour ajouter une nouvelle étiquette."
|
|
1499
|
+
}
|
|
1500
|
+
],
|
|
1501
|
+
"tagInput.maxTagsReached": [
|
|
1502
|
+
{
|
|
1503
|
+
type: 0,
|
|
1504
|
+
value: "Le nombre maximal d'étiquettes est atteint, aucune autre ne peut être ajoutée."
|
|
1505
|
+
}
|
|
1506
|
+
],
|
|
1507
|
+
"tagInput.placeholderAdd": [
|
|
1508
|
+
{
|
|
1509
|
+
type: 0,
|
|
1510
|
+
value: "Ajoutez une nouvelle étiquette"
|
|
1511
|
+
}
|
|
1512
|
+
],
|
|
1513
|
+
"tagInput.placeholderAddAndSearch": [
|
|
1514
|
+
{
|
|
1515
|
+
type: 0,
|
|
1516
|
+
value: "Ajoutez ou recherchez une étiquette"
|
|
1517
|
+
}
|
|
1518
|
+
],
|
|
1519
|
+
"tagInput.placeholderSearch": [
|
|
1520
|
+
{
|
|
1521
|
+
type: 0,
|
|
1522
|
+
value: "Recherchez et sélectionnez une étiquette"
|
|
1523
|
+
}
|
|
1524
|
+
],
|
|
1525
|
+
"tagInput.tagAdded": [
|
|
1526
|
+
{
|
|
1527
|
+
type: 1,
|
|
1528
|
+
value: "tagName"
|
|
1529
|
+
},
|
|
1530
|
+
{
|
|
1531
|
+
type: 0,
|
|
1532
|
+
value: " ajoutée."
|
|
1533
|
+
}
|
|
1534
|
+
],
|
|
1535
|
+
"tagInput.tagAlreadyAdded": [
|
|
1536
|
+
{
|
|
1537
|
+
type: 1,
|
|
1538
|
+
value: "tagName"
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
type: 0,
|
|
1542
|
+
value: " a déjà été ajoutée."
|
|
1543
|
+
}
|
|
1544
|
+
],
|
|
1545
|
+
"tagInput.tagAreaInstructions": [
|
|
1546
|
+
{
|
|
1547
|
+
type: 0,
|
|
1548
|
+
value: "selection d'étiquettes. Touche retour arrière ou supprimer pour enlever une étiquette."
|
|
1549
|
+
}
|
|
1550
|
+
],
|
|
1551
|
+
"tagInput.tagRemoved": [
|
|
1552
|
+
{
|
|
1553
|
+
type: 1,
|
|
1554
|
+
value: "tag"
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
type: 0,
|
|
1558
|
+
value: " enlevée"
|
|
1559
|
+
}
|
|
1560
|
+
],
|
|
1561
|
+
"tagInput.tagsAddedCounter": [
|
|
1562
|
+
{
|
|
1563
|
+
type: 0,
|
|
1564
|
+
value: "Étiquette ajoutée : "
|
|
1565
|
+
},
|
|
1566
|
+
{
|
|
1567
|
+
style: null,
|
|
1568
|
+
type: 2,
|
|
1569
|
+
value: "x"
|
|
1570
|
+
},
|
|
1571
|
+
{
|
|
1572
|
+
type: 0,
|
|
1573
|
+
value: "/"
|
|
1574
|
+
},
|
|
1575
|
+
{
|
|
1576
|
+
style: null,
|
|
1577
|
+
type: 2,
|
|
1578
|
+
value: "y"
|
|
1579
|
+
}
|
|
1580
|
+
],
|
|
1581
|
+
"time.invalidTime": [
|
|
1582
|
+
{
|
|
1583
|
+
type: 0,
|
|
1584
|
+
value: "Entrez une heure valide."
|
|
1585
|
+
}
|
|
1586
|
+
],
|
|
1587
|
+
"time.requiredError": [
|
|
1588
|
+
{
|
|
1589
|
+
type: 0,
|
|
1590
|
+
value: "Vous devez renseigner une heure."
|
|
1591
|
+
}
|
|
1592
|
+
],
|
|
1593
|
+
"time.selectTime": [
|
|
1594
|
+
{
|
|
1595
|
+
type: 0,
|
|
1596
|
+
value: "Choisissez une heure"
|
|
1597
|
+
}
|
|
1598
|
+
],
|
|
1599
|
+
"time.timeFormat": [
|
|
1600
|
+
{
|
|
1601
|
+
type: 0,
|
|
1602
|
+
value: "hh:mm"
|
|
1117
1603
|
}
|
|
1118
1604
|
],
|
|
1119
|
-
"
|
|
1605
|
+
"toggletip.moreInformation": [
|
|
1120
1606
|
{
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
"=0": {
|
|
1124
|
-
value: [
|
|
1125
|
-
{
|
|
1126
|
-
type: 0,
|
|
1127
|
-
value: "Aucun résultat"
|
|
1128
|
-
}
|
|
1129
|
-
]
|
|
1130
|
-
},
|
|
1131
|
-
other: {
|
|
1132
|
-
value: [
|
|
1133
|
-
{
|
|
1134
|
-
type: 0,
|
|
1135
|
-
value: "Résultat "
|
|
1136
|
-
},
|
|
1137
|
-
{
|
|
1138
|
-
type: 1,
|
|
1139
|
-
value: "current"
|
|
1140
|
-
},
|
|
1141
|
-
{
|
|
1142
|
-
type: 0,
|
|
1143
|
-
value: " de "
|
|
1144
|
-
},
|
|
1145
|
-
{
|
|
1146
|
-
type: 1,
|
|
1147
|
-
value: "numResults"
|
|
1148
|
-
}
|
|
1149
|
-
]
|
|
1150
|
-
}
|
|
1151
|
-
},
|
|
1152
|
-
pluralType: "cardinal",
|
|
1153
|
-
type: 6,
|
|
1154
|
-
value: "numResults"
|
|
1607
|
+
type: 0,
|
|
1608
|
+
value: "Plus d'information"
|
|
1155
1609
|
}
|
|
1156
1610
|
],
|
|
1157
1611
|
"uploader.duplicateName": [
|
|
@@ -1372,7 +1826,7 @@ const es = {
|
|
|
1372
1826
|
}
|
|
1373
1827
|
]
|
|
1374
1828
|
},
|
|
1375
|
-
|
|
1829
|
+
other: {
|
|
1376
1830
|
value: [
|
|
1377
1831
|
{
|
|
1378
1832
|
type: 0,
|
|
@@ -1444,7 +1898,7 @@ const es = {
|
|
|
1444
1898
|
}
|
|
1445
1899
|
]
|
|
1446
1900
|
},
|
|
1447
|
-
|
|
1901
|
+
other: {
|
|
1448
1902
|
value: [
|
|
1449
1903
|
{
|
|
1450
1904
|
type: 0,
|
|
@@ -1988,7 +2442,7 @@ const pig = {
|
|
|
1988
2442
|
}
|
|
1989
2443
|
]
|
|
1990
2444
|
},
|
|
1991
|
-
|
|
2445
|
+
other: {
|
|
1992
2446
|
value: [
|
|
1993
2447
|
{
|
|
1994
2448
|
type: 0,
|
|
@@ -2060,7 +2514,7 @@ const pig = {
|
|
|
2060
2514
|
}
|
|
2061
2515
|
]
|
|
2062
2516
|
},
|
|
2063
|
-
|
|
2517
|
+
other: {
|
|
2064
2518
|
value: [
|
|
2065
2519
|
{
|
|
2066
2520
|
type: 0,
|
|
@@ -2252,6 +2706,43 @@ const pig = {
|
|
|
2252
2706
|
type: 0,
|
|
2253
2707
|
value: "Ednesdayway"
|
|
2254
2708
|
}
|
|
2709
|
+
],
|
|
2710
|
+
"global.characterLimit": [
|
|
2711
|
+
{
|
|
2712
|
+
style: null,
|
|
2713
|
+
type: 2,
|
|
2714
|
+
value: "limit"
|
|
2715
|
+
},
|
|
2716
|
+
{
|
|
2717
|
+
type: 0,
|
|
2718
|
+
value: " aracterschay allowedyay."
|
|
2719
|
+
}
|
|
2720
|
+
],
|
|
2721
|
+
"global.characterLimitReached": [
|
|
2722
|
+
{
|
|
2723
|
+
type: 0,
|
|
2724
|
+
value: "Onay additionalyay aracterschay illway ebay enteredyay."
|
|
2725
|
+
}
|
|
2726
|
+
],
|
|
2727
|
+
"global.charactersEntered": [
|
|
2728
|
+
{
|
|
2729
|
+
style: null,
|
|
2730
|
+
type: 2,
|
|
2731
|
+
value: "x"
|
|
2732
|
+
},
|
|
2733
|
+
{
|
|
2734
|
+
type: 0,
|
|
2735
|
+
value: " ofyay "
|
|
2736
|
+
},
|
|
2737
|
+
{
|
|
2738
|
+
style: null,
|
|
2739
|
+
type: 2,
|
|
2740
|
+
value: "y"
|
|
2741
|
+
},
|
|
2742
|
+
{
|
|
2743
|
+
type: 0,
|
|
2744
|
+
value: " aracterschay enteredyay."
|
|
2745
|
+
}
|
|
2255
2746
|
],
|
|
2256
2747
|
"global.closeVerb": [
|
|
2257
2748
|
{
|
|
@@ -2264,6 +2755,12 @@ const pig = {
|
|
|
2264
2755
|
type: 0,
|
|
2265
2756
|
value: "Anyay erroryay occurredyay. Easeplay tryay againyay."
|
|
2266
2757
|
}
|
|
2758
|
+
],
|
|
2759
|
+
"global.newWindowLink": [
|
|
2760
|
+
{
|
|
2761
|
+
type: 0,
|
|
2762
|
+
value: "Opensyay inyay ayay ewnay indowway."
|
|
2763
|
+
}
|
|
2267
2764
|
],
|
|
2268
2765
|
"global.next": [
|
|
2269
2766
|
{
|
|
@@ -2276,6 +2773,24 @@ const pig = {
|
|
|
2276
2773
|
type: 0,
|
|
2277
2774
|
value: "eviouspray"
|
|
2278
2775
|
}
|
|
2776
|
+
],
|
|
2777
|
+
"global.requiredError": [
|
|
2778
|
+
{
|
|
2779
|
+
type: 0,
|
|
2780
|
+
value: "Isthay ieldfay isyay equiredray."
|
|
2781
|
+
}
|
|
2782
|
+
],
|
|
2783
|
+
"global.requiredField": [
|
|
2784
|
+
{
|
|
2785
|
+
type: 0,
|
|
2786
|
+
value: "equiredray ieldfay"
|
|
2787
|
+
}
|
|
2788
|
+
],
|
|
2789
|
+
"input.numberError": [
|
|
2790
|
+
{
|
|
2791
|
+
type: 0,
|
|
2792
|
+
value: "Easeplay enteryay ayay alidvay umbernay."
|
|
2793
|
+
}
|
|
2279
2794
|
],
|
|
2280
2795
|
"navigator.WatermarkAppNavigation": [
|
|
2281
2796
|
{
|
|
@@ -2439,6 +2954,127 @@ const pig = {
|
|
|
2439
2954
|
type: 0,
|
|
2440
2955
|
value: "Akemay ayay electionsay"
|
|
2441
2956
|
}
|
|
2957
|
+
],
|
|
2958
|
+
"tagInput.existingOptions": [
|
|
2959
|
+
{
|
|
2960
|
+
offset: 0,
|
|
2961
|
+
options: {
|
|
2962
|
+
one: {
|
|
2963
|
+
value: [
|
|
2964
|
+
{
|
|
2965
|
+
type: 0,
|
|
2966
|
+
value: "1 existingyay optionyay."
|
|
2967
|
+
}
|
|
2968
|
+
]
|
|
2969
|
+
},
|
|
2970
|
+
other: {
|
|
2971
|
+
value: [
|
|
2972
|
+
{
|
|
2973
|
+
type: 7
|
|
2974
|
+
},
|
|
2975
|
+
{
|
|
2976
|
+
type: 0,
|
|
2977
|
+
value: " existingyay optionsyay."
|
|
2978
|
+
}
|
|
2979
|
+
]
|
|
2980
|
+
}
|
|
2981
|
+
},
|
|
2982
|
+
pluralType: "cardinal",
|
|
2983
|
+
type: 6,
|
|
2984
|
+
value: "num"
|
|
2985
|
+
}
|
|
2986
|
+
],
|
|
2987
|
+
"tagInput.helpTextCanSelect": [
|
|
2988
|
+
{
|
|
2989
|
+
type: 0,
|
|
2990
|
+
value: "Earchsay andyay electsay ayay agtay."
|
|
2991
|
+
}
|
|
2992
|
+
],
|
|
2993
|
+
"tagInput.helpTextEditable": [
|
|
2994
|
+
{
|
|
2995
|
+
type: 0,
|
|
2996
|
+
value: "Esspray ethay Enteryay oryay Ommacay eykay otay addyay ayay ewnay agtay."
|
|
2997
|
+
}
|
|
2998
|
+
],
|
|
2999
|
+
"tagInput.maxTagsReached": [
|
|
3000
|
+
{
|
|
3001
|
+
type: 0,
|
|
3002
|
+
value: "Ethay aximummay amountyay ofyay agstay ashay eenbay eachedray, onay additionalyay agstay ancay ebay addedyay."
|
|
3003
|
+
}
|
|
3004
|
+
],
|
|
3005
|
+
"tagInput.placeholderAdd": [
|
|
3006
|
+
{
|
|
3007
|
+
type: 0,
|
|
3008
|
+
value: "Addyay ayay ewnay agtay"
|
|
3009
|
+
}
|
|
3010
|
+
],
|
|
3011
|
+
"tagInput.placeholderAddAndSearch": [
|
|
3012
|
+
{
|
|
3013
|
+
type: 0,
|
|
3014
|
+
value: "Addyay oryay earchsay orfay ayay agtay"
|
|
3015
|
+
}
|
|
3016
|
+
],
|
|
3017
|
+
"tagInput.placeholderSearch": [
|
|
3018
|
+
{
|
|
3019
|
+
type: 0,
|
|
3020
|
+
value: "Earchsay andyay electsay ayay agtay"
|
|
3021
|
+
}
|
|
3022
|
+
],
|
|
3023
|
+
"tagInput.tagAdded": [
|
|
3024
|
+
{
|
|
3025
|
+
type: 1,
|
|
3026
|
+
value: "tagName"
|
|
3027
|
+
},
|
|
3028
|
+
{
|
|
3029
|
+
type: 0,
|
|
3030
|
+
value: " addedyay."
|
|
3031
|
+
}
|
|
3032
|
+
],
|
|
3033
|
+
"tagInput.tagAlreadyAdded": [
|
|
3034
|
+
{
|
|
3035
|
+
type: 1,
|
|
3036
|
+
value: "tagName"
|
|
3037
|
+
},
|
|
3038
|
+
{
|
|
3039
|
+
type: 0,
|
|
3040
|
+
value: " ashay alreadyyay eenbay addedyay."
|
|
3041
|
+
}
|
|
3042
|
+
],
|
|
3043
|
+
"tagInput.tagAreaInstructions": [
|
|
3044
|
+
{
|
|
3045
|
+
type: 0,
|
|
3046
|
+
value: "agtay electionsay. Esspray Ackspacebay oryay Eleteday otay emoveray ayay agtay."
|
|
3047
|
+
}
|
|
3048
|
+
],
|
|
3049
|
+
"tagInput.tagRemoved": [
|
|
3050
|
+
{
|
|
3051
|
+
type: 1,
|
|
3052
|
+
value: "tag"
|
|
3053
|
+
},
|
|
3054
|
+
{
|
|
3055
|
+
type: 0,
|
|
3056
|
+
value: " emovedray"
|
|
3057
|
+
}
|
|
3058
|
+
],
|
|
3059
|
+
"tagInput.tagsAddedCounter": [
|
|
3060
|
+
{
|
|
3061
|
+
type: 0,
|
|
3062
|
+
value: "Agstay addedyay: "
|
|
3063
|
+
},
|
|
3064
|
+
{
|
|
3065
|
+
style: null,
|
|
3066
|
+
type: 2,
|
|
3067
|
+
value: "x"
|
|
3068
|
+
},
|
|
3069
|
+
{
|
|
3070
|
+
type: 0,
|
|
3071
|
+
value: "/"
|
|
3072
|
+
},
|
|
3073
|
+
{
|
|
3074
|
+
style: null,
|
|
3075
|
+
type: 2,
|
|
3076
|
+
value: "y"
|
|
3077
|
+
}
|
|
2442
3078
|
],
|
|
2443
3079
|
"time.invalidTime": [
|
|
2444
3080
|
{
|
|
@@ -2463,6 +3099,12 @@ const pig = {
|
|
|
2463
3099
|
type: 0,
|
|
2464
3100
|
value: "hh:mmay"
|
|
2465
3101
|
}
|
|
3102
|
+
],
|
|
3103
|
+
"toggletip.moreInformation": [
|
|
3104
|
+
{
|
|
3105
|
+
type: 0,
|
|
3106
|
+
value: "Oremay informationyay"
|
|
3107
|
+
}
|
|
2466
3108
|
],
|
|
2467
3109
|
"uploader.duplicateName": [
|
|
2468
3110
|
{
|
|
@@ -5697,448 +6339,448 @@ function createIntl(config, cache) {
|
|
|
5697
6339
|
return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });
|
|
5698
6340
|
}
|
|
5699
6341
|
|
|
5700
|
-
const DEFAULT_LANGUAGE = "en";
|
|
5701
|
-
function getBrowserLang() {
|
|
5702
|
-
const langAttr = document.documentElement.getAttribute("lang");
|
|
5703
|
-
if (!!langAttr) {
|
|
5704
|
-
return langAttr;
|
|
5705
|
-
}
|
|
5706
|
-
else if (window.navigator && window.navigator.language) {
|
|
5707
|
-
const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
|
|
5708
|
-
return lang.slice(0, 2);
|
|
5709
|
-
}
|
|
5710
|
-
else {
|
|
5711
|
-
return DEFAULT_LANGUAGE;
|
|
5712
|
-
}
|
|
5713
|
-
}
|
|
5714
|
-
// prevents memory leak
|
|
5715
|
-
const cache = createIntlCache();
|
|
5716
|
-
const locale = getBrowserLang();
|
|
5717
|
-
const intl = createIntl({
|
|
5718
|
-
locale: locale,
|
|
5719
|
-
defaultLocale: "en",
|
|
5720
|
-
messages: lang[locale] || en,
|
|
5721
|
-
}, cache);
|
|
5722
|
-
function generateId() {
|
|
5723
|
-
return "wmcl-" + Math.random().toString(36).substr(2, 10);
|
|
5724
|
-
}
|
|
5725
|
-
function debounce(fn, wait) {
|
|
5726
|
-
let timeout;
|
|
5727
|
-
return function () {
|
|
5728
|
-
const context = this;
|
|
5729
|
-
const functionCall = () => fn.apply(context, arguments);
|
|
5730
|
-
clearTimeout(timeout);
|
|
5731
|
-
timeout = setTimeout(functionCall, wait);
|
|
5732
|
-
};
|
|
5733
|
-
}
|
|
5734
|
-
function getTextDir() {
|
|
5735
|
-
const dir = document.querySelector("html").getAttribute("dir");
|
|
5736
|
-
return dir ? dir.toLowerCase() : "";
|
|
5737
|
-
}
|
|
5738
|
-
function getPosition(el) {
|
|
5739
|
-
const coords = el.getBoundingClientRect();
|
|
5740
|
-
let x = coords.x;
|
|
5741
|
-
let y = coords.y;
|
|
5742
|
-
// Edge doesn't have x and y
|
|
5743
|
-
if (!x) {
|
|
5744
|
-
if (getTextDir() === "rtl") {
|
|
5745
|
-
x = coords.right;
|
|
5746
|
-
}
|
|
5747
|
-
else {
|
|
5748
|
-
x = coords.left;
|
|
5749
|
-
}
|
|
5750
|
-
y = coords.top;
|
|
5751
|
-
}
|
|
5752
|
-
return { x, y };
|
|
5753
|
-
}
|
|
5754
|
-
function findParentWithScrollbar(el) {
|
|
5755
|
-
while (!!el) {
|
|
5756
|
-
if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
|
|
5757
|
-
return el;
|
|
5758
|
-
}
|
|
5759
|
-
el = el.parentElement;
|
|
5760
|
-
}
|
|
5761
|
-
}
|
|
5762
|
-
function findParentWithHiddenOverflow(el) {
|
|
5763
|
-
while (!!el) {
|
|
5764
|
-
if (window.getComputedStyle(el).overflowY !== "visible") {
|
|
5765
|
-
return el;
|
|
5766
|
-
}
|
|
5767
|
-
el = el.parentElement;
|
|
5768
|
-
}
|
|
5769
|
-
}
|
|
5770
|
-
function getClosableElementMeasurements(fixedEl, closableEl) {
|
|
5771
|
-
const parent = findParentWithHiddenOverflow(fixedEl);
|
|
5772
|
-
// if parent is not found, measurements are checked against the viewport
|
|
5773
|
-
return {
|
|
5774
|
-
closableElHeight: closableEl.clientHeight,
|
|
5775
|
-
closableElWidth: closableEl.clientWidth,
|
|
5776
|
-
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
5777
|
-
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
5778
|
-
spaceAbove: parent
|
|
5779
|
-
? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
|
|
5780
|
-
: fixedEl.getBoundingClientRect().top,
|
|
5781
|
-
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
5782
|
-
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
5783
|
-
spaceBelow: parent
|
|
5784
|
-
? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
|
|
5785
|
-
: document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
|
|
5786
|
-
spaceLeft: parent
|
|
5787
|
-
? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
|
|
5788
|
-
: fixedEl.getBoundingClientRect().left,
|
|
5789
|
-
spaceRight: parent
|
|
5790
|
-
? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
|
|
5791
|
-
: document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
|
|
5792
|
-
};
|
|
5793
|
-
}
|
|
5794
|
-
function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
|
|
5795
|
-
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
5796
|
-
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
5797
|
-
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
5798
|
-
) {
|
|
5799
|
-
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
5800
|
-
//we want to open up only if there's not enough space below AND there is enough space above
|
|
5801
|
-
const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
|
|
5802
|
-
return openUp;
|
|
5803
|
-
}
|
|
5804
|
-
function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
|
|
5805
|
-
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
5806
|
-
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
5807
|
-
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
5808
|
-
) {
|
|
5809
|
-
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
5810
|
-
//we want to open up only if there's not enough space below AND there is enough space above
|
|
5811
|
-
const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
|
|
5812
|
-
return openDown;
|
|
5813
|
-
}
|
|
5814
|
-
function shouldShiftRight(fixedEl, closableEl) {
|
|
5815
|
-
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
5816
|
-
const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
|
|
5817
|
-
return needsSpaceLeft;
|
|
5818
|
-
}
|
|
5819
|
-
function shouldShiftLeft(fixedEl, closableEl) {
|
|
5820
|
-
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
5821
|
-
const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
|
|
5822
|
-
return needsSpaceRight;
|
|
5823
|
-
}
|
|
5824
|
-
function adjustTooltipPosition(tPos, el, tooltipEl) {
|
|
5825
|
-
// position must be reset before measurements are taken in adjustTooltipPosition
|
|
5826
|
-
// otherwise text-wrapping from previous position makes width measurement inconsistent
|
|
5827
|
-
tooltipEl.style.top = "";
|
|
5828
|
-
tooltipEl.style.left = "";
|
|
5829
|
-
const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
|
|
5830
|
-
const tooltipWidth = tooltipEl.getBoundingClientRect().width;
|
|
5831
|
-
const tooltipHeight = tooltipEl.getBoundingClientRect().height;
|
|
5832
|
-
const enoughSpaceAbove = spaceAbove > tooltipHeight;
|
|
5833
|
-
const enoughSpaceBelow = spaceBelow > tooltipHeight;
|
|
5834
|
-
// a tooltip should never be closer than 24px to the edge of a screen
|
|
5835
|
-
const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
|
|
5836
|
-
const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
|
|
5837
|
-
const swapAbove = (position) => {
|
|
5838
|
-
return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
|
|
5839
|
-
};
|
|
5840
|
-
const swapBelow = (position) => {
|
|
5841
|
-
return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
|
|
5842
|
-
};
|
|
5843
|
-
const swapLeft = (position, centeredPosition) => {
|
|
5844
|
-
if (!enoughSpaceLeft && enoughSpaceRight) {
|
|
5845
|
-
position = position.replace("left", "right");
|
|
5846
|
-
}
|
|
5847
|
-
else if (!enoughSpaceLeft && !enoughSpaceRight) {
|
|
5848
|
-
position = centeredPosition;
|
|
5849
|
-
}
|
|
5850
|
-
return position;
|
|
5851
|
-
};
|
|
5852
|
-
const swapRight = (position, centeredPosition) => {
|
|
5853
|
-
if (!enoughSpaceRight && enoughSpaceLeft) {
|
|
5854
|
-
position = position.replace("right", "left");
|
|
5855
|
-
}
|
|
5856
|
-
else if (!enoughSpaceRight && !enoughSpaceLeft) {
|
|
5857
|
-
position = centeredPosition;
|
|
5858
|
-
}
|
|
5859
|
-
return position;
|
|
5860
|
-
};
|
|
5861
|
-
// horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
|
|
5862
|
-
switch (tPos) {
|
|
5863
|
-
case "left":
|
|
5864
|
-
tPos = swapLeft(tPos, "bottom");
|
|
5865
|
-
case "right":
|
|
5866
|
-
tPos = swapRight(tPos, "bottom");
|
|
5867
|
-
case "top-left":
|
|
5868
|
-
tPos = swapLeft(tPos, "top");
|
|
5869
|
-
tPos = swapAbove(tPos);
|
|
5870
|
-
case "top-right":
|
|
5871
|
-
tPos = swapRight(tPos, "top");
|
|
5872
|
-
tPos = swapAbove(tPos);
|
|
5873
|
-
case "bottom-left":
|
|
5874
|
-
tPos = swapLeft(tPos, "bottom");
|
|
5875
|
-
tPos = swapBelow(tPos);
|
|
5876
|
-
case "bottom-right":
|
|
5877
|
-
tPos = swapRight(tPos, "bottom");
|
|
5878
|
-
tPos = swapBelow(tPos);
|
|
5879
|
-
case "top":
|
|
5880
|
-
tPos = swapAbove(tPos);
|
|
5881
|
-
case "bottom":
|
|
5882
|
-
tPos = swapBelow(tPos);
|
|
5883
|
-
}
|
|
5884
|
-
return tPos;
|
|
5885
|
-
}
|
|
5886
|
-
function hasRoomRight(x, spaceNeeded) {
|
|
5887
|
-
let horizOffset = 0;
|
|
5888
|
-
// if (getTextDir() === "ltr") {
|
|
5889
|
-
if (x.type === "click") {
|
|
5890
|
-
// if it's a mouse event, deal with mouse coords
|
|
5891
|
-
horizOffset = x.clientX;
|
|
5892
|
-
// if it's a focus event, the offset is 0
|
|
5893
|
-
}
|
|
5894
|
-
else if (x.type === "focus") {
|
|
5895
|
-
horizOffset = 0;
|
|
5896
|
-
}
|
|
5897
|
-
else {
|
|
5898
|
-
// otherwise an element was passed, calculate how far it is from the edge of the window
|
|
5899
|
-
let el = x; // re-assignment is for clarity
|
|
5900
|
-
while (el) {
|
|
5901
|
-
if (el.tagName == "BODY") {
|
|
5902
|
-
// deal with browser quirks with body/window/document and page scroll
|
|
5903
|
-
var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
|
|
5904
|
-
horizOffset += el.offsetLeft - xScroll + el.clientLeft;
|
|
5905
|
-
}
|
|
5906
|
-
else {
|
|
5907
|
-
// for all other non-BODY elements
|
|
5908
|
-
horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
|
|
5909
|
-
}
|
|
5910
|
-
el = el.offsetParent;
|
|
5911
|
-
}
|
|
5912
|
-
// }
|
|
5913
|
-
}
|
|
5914
|
-
return window.innerWidth - horizOffset >= spaceNeeded;
|
|
5915
|
-
}
|
|
5916
|
-
function checkForActiveElInShadow(element) {
|
|
5917
|
-
while (element && element.shadowRoot) {
|
|
5918
|
-
element = element.shadowRoot.activeElement;
|
|
5919
|
-
}
|
|
5920
|
-
return element;
|
|
5921
|
-
}
|
|
5922
|
-
function checkForFocusableElInShadow(element) {
|
|
5923
|
-
const selectors = [
|
|
5924
|
-
"button",
|
|
5925
|
-
"a",
|
|
5926
|
-
"input",
|
|
5927
|
-
"select",
|
|
5928
|
-
"textarea",
|
|
5929
|
-
"wm-button",
|
|
5930
|
-
"wm-search",
|
|
5931
|
-
"wm-select",
|
|
5932
|
-
"wm-action-menu",
|
|
5933
|
-
"wm-tab-item",
|
|
5934
|
-
"wm-datepicker",
|
|
5935
|
-
];
|
|
5936
|
-
let focusableEl = element;
|
|
5937
|
-
selectors.forEach((selector) => {
|
|
5938
|
-
if (focusableEl && focusableEl.shadowRoot) {
|
|
5939
|
-
let elInShadow = focusableEl.shadowRoot.querySelector(selector);
|
|
5940
|
-
if (elInShadow) {
|
|
5941
|
-
if (selector.startsWith("wm-")) {
|
|
5942
|
-
focusableEl = checkForFocusableElInShadow(elInShadow);
|
|
5943
|
-
}
|
|
5944
|
-
else {
|
|
5945
|
-
focusableEl = elInShadow;
|
|
5946
|
-
}
|
|
5947
|
-
}
|
|
5948
|
-
}
|
|
5949
|
-
});
|
|
5950
|
-
return focusableEl;
|
|
5951
|
-
}
|
|
5952
|
-
function isFocusable(element) {
|
|
5953
|
-
if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
|
|
5954
|
-
return true;
|
|
5955
|
-
}
|
|
5956
|
-
if (element.disabled) {
|
|
5957
|
-
return false;
|
|
5958
|
-
}
|
|
5959
|
-
switch (element.nodeName) {
|
|
5960
|
-
case "A":
|
|
5961
|
-
return !!element.href && element.rel != "ignore";
|
|
5962
|
-
case "INPUT":
|
|
5963
|
-
return element.type != "hidden" && element.type != "file";
|
|
5964
|
-
case "BUTTON":
|
|
5965
|
-
case "SELECT":
|
|
5966
|
-
case "TEXTAREA":
|
|
5967
|
-
case "WM-BUTTON":
|
|
5968
|
-
case "WM-SELECT":
|
|
5969
|
-
case "WM-ACTION-MENU":
|
|
5970
|
-
case "WM-DATEPICKER":
|
|
5971
|
-
case "WM-TIMEPICKER":
|
|
5972
|
-
case "WM-INPUT":
|
|
5973
|
-
case "WM-TAG-INPUT":
|
|
5974
|
-
case "WM-TAB-ITEM":
|
|
5975
|
-
case "WM-SEARCH":
|
|
5976
|
-
return true;
|
|
5977
|
-
default:
|
|
5978
|
-
return false;
|
|
5979
|
-
}
|
|
5980
|
-
}
|
|
5981
|
-
function getFirstFocusableDescendant(element) {
|
|
5982
|
-
if (isFocusable(element)) {
|
|
5983
|
-
return checkForFocusableElInShadow(element);
|
|
5984
|
-
}
|
|
5985
|
-
else if (element.childNodes.length > 0) {
|
|
5986
|
-
element.childNodes.forEach((i) => {
|
|
5987
|
-
const childEl = getFirstFocusableDescendant(i);
|
|
5988
|
-
return childEl && checkForFocusableElInShadow(childEl);
|
|
5989
|
-
});
|
|
5990
|
-
}
|
|
5991
|
-
}
|
|
5992
|
-
function hasValidType(file, types) {
|
|
5993
|
-
const acceptedExtensions = types.split(" ");
|
|
5994
|
-
const parts = file.name && file.name.split(".");
|
|
5995
|
-
const ext = parts && parts.length > 1 && parts[parts.length - 1];
|
|
5996
|
-
return ext
|
|
5997
|
-
? acceptedExtensions.includes(ext.toLowerCase())
|
|
5998
|
-
: // fallback: if we couldn't obtain an extension,
|
|
5999
|
-
// validate based on MIME type...
|
|
6000
|
-
!!file.type
|
|
6001
|
-
? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
|
|
6002
|
-
: // ...and if that failed too, accept the file
|
|
6003
|
-
// as it's preferable to accept an invalid file
|
|
6004
|
-
// than refusing a valid one (back-end will take care of what slips through)
|
|
6005
|
-
true;
|
|
6006
|
-
}
|
|
6007
|
-
// takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
|
|
6008
|
-
function getAcceptedMimeTypesList(acceptedExtensions) {
|
|
6009
|
-
// this is just a list of common file types (regardless of whether they are/can be valid or not)
|
|
6010
|
-
// front end checks are just a convenience to users, independent of security.
|
|
6011
|
-
// it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
|
|
6012
|
-
const lookupTable = {
|
|
6013
|
-
aac: ["audio/aac"],
|
|
6014
|
-
abw: ["application/x-abiword"],
|
|
6015
|
-
arc: ["application/x-freearc"],
|
|
6016
|
-
avi: ["video/x-msvideo"],
|
|
6017
|
-
azw: ["application/vnd.amazon.ebook"],
|
|
6018
|
-
bin: ["application/octet-stream"],
|
|
6019
|
-
bmp: ["image/bmp"],
|
|
6020
|
-
bz: ["application/x-bzip"],
|
|
6021
|
-
bz2: ["application/x-bzip2"],
|
|
6022
|
-
csh: ["application/x-csh"],
|
|
6023
|
-
css: ["text/css"],
|
|
6024
|
-
csv: ["text/csv"],
|
|
6025
|
-
doc: ["application/msword"],
|
|
6026
|
-
docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
|
6027
|
-
eot: ["application/vnd.ms-fontobject"],
|
|
6028
|
-
epub: ["application/epub+zip"],
|
|
6029
|
-
gz: ["application/gzip"],
|
|
6030
|
-
gif: ["image/gif"],
|
|
6031
|
-
htm: ["text/html"],
|
|
6032
|
-
html: ["text/html"],
|
|
6033
|
-
ico: ["image/vnd.microsoft.icon"],
|
|
6034
|
-
ics: ["text/calendar"],
|
|
6035
|
-
jar: ["application/java-archive"],
|
|
6036
|
-
jpeg: ["image/jpeg"],
|
|
6037
|
-
jpg: ["image/jpeg"],
|
|
6038
|
-
js: ["text/javascript"],
|
|
6039
|
-
json: ["application/json"],
|
|
6040
|
-
jsonld: ["application/ld+json"],
|
|
6041
|
-
log: ["text/plain"],
|
|
6042
|
-
mid: ["audio/x-midi"],
|
|
6043
|
-
midi: ["audio/x-midi"],
|
|
6044
|
-
mjs: ["text/javascript"],
|
|
6045
|
-
mp3: ["audio/mpeg"],
|
|
6046
|
-
mpeg: ["video/mpeg"],
|
|
6047
|
-
mpkg: ["application/vnd.apple.installer+xml"],
|
|
6048
|
-
odp: ["application/vnd.oasis.opendocument.presentation"],
|
|
6049
|
-
ods: ["application/vnd.oasis.opendocument.spreadsheet"],
|
|
6050
|
-
odt: ["application/vnd.oasis.opendocument.text"],
|
|
6051
|
-
oga: ["audio/ogg"],
|
|
6052
|
-
ogv: ["video/ogg"],
|
|
6053
|
-
ogx: ["application/ogg"],
|
|
6054
|
-
opus: ["audio/opus"],
|
|
6055
|
-
otf: ["font/otf"],
|
|
6056
|
-
png: ["image/png"],
|
|
6057
|
-
pdf: ["application/pdf"],
|
|
6058
|
-
php: ["application/php"],
|
|
6059
|
-
ppt: ["application/vnd.ms-powerpoint"],
|
|
6060
|
-
pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
|
|
6061
|
-
rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
|
|
6062
|
-
rtf: ["application/rtf"],
|
|
6063
|
-
sh: ["application/x-sh"],
|
|
6064
|
-
svg: ["image/svg+xml"],
|
|
6065
|
-
swf: ["application/x-shockwave-flash"],
|
|
6066
|
-
tar: ["application/x-tar"],
|
|
6067
|
-
tif: ["image/tiff"],
|
|
6068
|
-
tiff: ["image/tiff"],
|
|
6069
|
-
ts: ["video/mp2t"],
|
|
6070
|
-
ttf: ["font/ttf"],
|
|
6071
|
-
txt: ["text/plain"],
|
|
6072
|
-
vsd: ["application/vnd.visio"],
|
|
6073
|
-
wav: ["audio/wav"],
|
|
6074
|
-
weba: ["audio/webm"],
|
|
6075
|
-
webm: ["video/webm"],
|
|
6076
|
-
webp: ["image/webp"],
|
|
6077
|
-
woff: ["font/woff"],
|
|
6078
|
-
woff2: ["font/woff2"],
|
|
6079
|
-
xhtml: ["application/xhtml+xml"],
|
|
6080
|
-
xls: ["application/vnd.ms-excel"],
|
|
6081
|
-
xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
|
6082
|
-
xml: ["application/xml", "text/xml"],
|
|
6083
|
-
xul: ["application/vnd.mozilla.xul+xml"],
|
|
6084
|
-
zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
|
|
6085
|
-
"3gp": ["video/3gpp", "audio/3gpp"],
|
|
6086
|
-
"3g2": ["video/3gpp2", "audio/3gpp2"],
|
|
6087
|
-
"7z": ["application/x-7z-compressed"],
|
|
6088
|
-
};
|
|
6089
|
-
return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
|
|
6090
|
-
}
|
|
6091
|
-
function snakeCaseToCamelCase(str) {
|
|
6092
|
-
const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
|
|
6093
|
-
if (snakeCaseRegexp.test(str)) {
|
|
6094
|
-
let camelCase = "";
|
|
6095
|
-
let arr = str.split("_");
|
|
6096
|
-
arr.forEach((word, idx) => {
|
|
6097
|
-
camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
|
|
6098
|
-
});
|
|
6099
|
-
return camelCase;
|
|
6100
|
-
}
|
|
6101
|
-
else {
|
|
6102
|
-
return str;
|
|
6103
|
-
}
|
|
6104
|
-
}
|
|
6105
|
-
function getNewIndexToFocus(currentIndex, direction, listLength) {
|
|
6106
|
-
let newIndex = currentIndex;
|
|
6107
|
-
if (direction === "ArrowDown") {
|
|
6108
|
-
newIndex = (currentIndex + 1) % listLength;
|
|
6109
|
-
}
|
|
6110
|
-
if (direction === "ArrowUp") {
|
|
6111
|
-
newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
|
|
6112
|
-
}
|
|
6113
|
-
return newIndex;
|
|
6114
|
-
}
|
|
6115
|
-
function isRelatedTarget(ev, id) {
|
|
6116
|
-
// used for onBlur events to check the element that has been clicked
|
|
6117
|
-
const ids = id.split(" ");
|
|
6118
|
-
return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
|
|
6119
|
-
}
|
|
6120
|
-
/*
|
|
6121
|
-
* this is going to be needed to solve the extra tabbing on navigator
|
|
6122
|
-
* and for programmatic focus of tabs
|
|
6123
|
-
* Here's a draft, not bug proof, see:
|
|
6124
|
-
* https://stackoverflow.com/a/10730308/3741713
|
|
6125
|
-
|
|
6126
|
-
function getKeyboardFocusableElements(element = document) {
|
|
6127
|
-
const els = Array.from(element.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), wm-search, wm-timepicker, wm-tab-list, wm-tab-item, wm-button, wm-action-menu'));
|
|
6128
|
-
return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
|
|
6129
|
-
}
|
|
6130
|
-
|
|
6131
|
-
export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
|
|
6132
|
-
const els = getKeyboardFocusableElements();
|
|
6133
|
-
const current = els.indexOf(element);
|
|
6134
|
-
return els[current - 1] as HTMLElement;
|
|
6135
|
-
}
|
|
6136
|
-
|
|
6137
|
-
export function getNextKeyboardFocusableElement(element: HTMLElement) {
|
|
6138
|
-
const els = getKeyboardFocusableElements();
|
|
6139
|
-
const current = els.indexOf(element);
|
|
6140
|
-
return els[current + 1] as HTMLElement;
|
|
6141
|
-
}
|
|
6342
|
+
const DEFAULT_LANGUAGE = "en";
|
|
6343
|
+
function getBrowserLang() {
|
|
6344
|
+
const langAttr = document.documentElement.getAttribute("lang");
|
|
6345
|
+
if (!!langAttr) {
|
|
6346
|
+
return langAttr;
|
|
6347
|
+
}
|
|
6348
|
+
else if (window.navigator && window.navigator.language) {
|
|
6349
|
+
const lang = window.navigator.languages ? window.navigator.languages[0] : window.navigator.language;
|
|
6350
|
+
return lang.slice(0, 2);
|
|
6351
|
+
}
|
|
6352
|
+
else {
|
|
6353
|
+
return DEFAULT_LANGUAGE;
|
|
6354
|
+
}
|
|
6355
|
+
}
|
|
6356
|
+
// prevents memory leak
|
|
6357
|
+
const cache = createIntlCache();
|
|
6358
|
+
const locale = getBrowserLang();
|
|
6359
|
+
const intl = createIntl({
|
|
6360
|
+
locale: locale,
|
|
6361
|
+
defaultLocale: "en",
|
|
6362
|
+
messages: lang[locale] || en,
|
|
6363
|
+
}, cache);
|
|
6364
|
+
function generateId() {
|
|
6365
|
+
return "wmcl-" + Math.random().toString(36).substr(2, 10);
|
|
6366
|
+
}
|
|
6367
|
+
function debounce(fn, wait) {
|
|
6368
|
+
let timeout;
|
|
6369
|
+
return function () {
|
|
6370
|
+
const context = this;
|
|
6371
|
+
const functionCall = () => fn.apply(context, arguments);
|
|
6372
|
+
clearTimeout(timeout);
|
|
6373
|
+
timeout = setTimeout(functionCall, wait);
|
|
6374
|
+
};
|
|
6375
|
+
}
|
|
6376
|
+
function getTextDir() {
|
|
6377
|
+
const dir = document.querySelector("html").getAttribute("dir");
|
|
6378
|
+
return dir ? dir.toLowerCase() : "";
|
|
6379
|
+
}
|
|
6380
|
+
function getPosition(el) {
|
|
6381
|
+
const coords = el.getBoundingClientRect();
|
|
6382
|
+
let x = coords.x;
|
|
6383
|
+
let y = coords.y;
|
|
6384
|
+
// Edge doesn't have x and y
|
|
6385
|
+
if (!x) {
|
|
6386
|
+
if (getTextDir() === "rtl") {
|
|
6387
|
+
x = coords.right;
|
|
6388
|
+
}
|
|
6389
|
+
else {
|
|
6390
|
+
x = coords.left;
|
|
6391
|
+
}
|
|
6392
|
+
y = coords.top;
|
|
6393
|
+
}
|
|
6394
|
+
return { x, y };
|
|
6395
|
+
}
|
|
6396
|
+
function findParentWithScrollbar(el) {
|
|
6397
|
+
while (!!el) {
|
|
6398
|
+
if (el.scrollHeight > el.clientHeight && ["scroll", "auto"].includes(window.getComputedStyle(el).overflowY)) {
|
|
6399
|
+
return el;
|
|
6400
|
+
}
|
|
6401
|
+
el = el.parentElement;
|
|
6402
|
+
}
|
|
6403
|
+
}
|
|
6404
|
+
function findParentWithHiddenOverflow(el) {
|
|
6405
|
+
while (!!el) {
|
|
6406
|
+
if (window.getComputedStyle(el).overflowY !== "visible") {
|
|
6407
|
+
return el;
|
|
6408
|
+
}
|
|
6409
|
+
el = el.parentElement;
|
|
6410
|
+
}
|
|
6411
|
+
}
|
|
6412
|
+
function getClosableElementMeasurements(fixedEl, closableEl) {
|
|
6413
|
+
const parent = findParentWithHiddenOverflow(fixedEl);
|
|
6414
|
+
// if parent is not found, measurements are checked against the viewport
|
|
6415
|
+
return {
|
|
6416
|
+
closableElHeight: closableEl.clientHeight,
|
|
6417
|
+
closableElWidth: closableEl.clientWidth,
|
|
6418
|
+
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
6419
|
+
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
6420
|
+
spaceAbove: parent
|
|
6421
|
+
? fixedEl.getBoundingClientRect().top - parent.getBoundingClientRect().top
|
|
6422
|
+
: fixedEl.getBoundingClientRect().top,
|
|
6423
|
+
// NB boundingClientRect.bottom is space from top of viewport to bottom of el
|
|
6424
|
+
// to get space below the el -> height of viewport minus boundingClientRect.bottom
|
|
6425
|
+
spaceBelow: parent
|
|
6426
|
+
? parent.getBoundingClientRect().bottom - fixedEl.getBoundingClientRect().bottom
|
|
6427
|
+
: document.documentElement.clientHeight - fixedEl.getBoundingClientRect().bottom,
|
|
6428
|
+
spaceLeft: parent
|
|
6429
|
+
? fixedEl.getBoundingClientRect().left - parent.getBoundingClientRect().left
|
|
6430
|
+
: fixedEl.getBoundingClientRect().left,
|
|
6431
|
+
spaceRight: parent
|
|
6432
|
+
? parent.getBoundingClientRect().right - fixedEl.getBoundingClientRect().right
|
|
6433
|
+
: document.documentElement.clientWidth - fixedEl.getBoundingClientRect().right,
|
|
6434
|
+
};
|
|
6435
|
+
}
|
|
6436
|
+
function shouldOpenUp(fixedEl, //the element visible on the page when the component is closed
|
|
6437
|
+
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
6438
|
+
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
6439
|
+
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
6440
|
+
) {
|
|
6441
|
+
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6442
|
+
//we want to open up only if there's not enough space below AND there is enough space above
|
|
6443
|
+
const openUp = closableElHeight > spaceBelow + offsetBelow && closableElHeight <= spaceAbove + offsetAbove;
|
|
6444
|
+
return openUp;
|
|
6445
|
+
}
|
|
6446
|
+
function shouldOpenDown(fixedEl, //the element visible on the page when the component is closed
|
|
6447
|
+
closableEl, //the dropdown/popup/etc that becomes visible when the component is open
|
|
6448
|
+
offsetAbove = 0, // if closableEl covers a part of fixedEl, that part should be offset
|
|
6449
|
+
offsetBelow = 0 // if closableEl covers a part of fixedEl, that part should be offset
|
|
6450
|
+
) {
|
|
6451
|
+
const { closableElHeight, spaceAbove, spaceBelow } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6452
|
+
//we want to open up only if there's not enough space below AND there is enough space above
|
|
6453
|
+
const openDown = closableElHeight > spaceAbove + offsetAbove && closableElHeight <= spaceBelow + offsetBelow;
|
|
6454
|
+
return openDown;
|
|
6455
|
+
}
|
|
6456
|
+
function shouldShiftRight(fixedEl, closableEl) {
|
|
6457
|
+
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6458
|
+
const needsSpaceLeft = closableElWidth > spaceLeft && spaceRight > spaceLeft;
|
|
6459
|
+
return needsSpaceLeft;
|
|
6460
|
+
}
|
|
6461
|
+
function shouldShiftLeft(fixedEl, closableEl) {
|
|
6462
|
+
const { closableElWidth, spaceLeft, spaceRight } = getClosableElementMeasurements(fixedEl, closableEl);
|
|
6463
|
+
const needsSpaceRight = closableElWidth > spaceRight && spaceLeft > spaceRight;
|
|
6464
|
+
return needsSpaceRight;
|
|
6465
|
+
}
|
|
6466
|
+
function adjustTooltipPosition(tPos, el, tooltipEl) {
|
|
6467
|
+
// position must be reset before measurements are taken in adjustTooltipPosition
|
|
6468
|
+
// otherwise text-wrapping from previous position makes width measurement inconsistent
|
|
6469
|
+
tooltipEl.style.top = "";
|
|
6470
|
+
tooltipEl.style.left = "";
|
|
6471
|
+
const { spaceLeft, spaceRight, spaceBelow, spaceAbove } = getClosableElementMeasurements(el, tooltipEl);
|
|
6472
|
+
const tooltipWidth = tooltipEl.getBoundingClientRect().width;
|
|
6473
|
+
const tooltipHeight = tooltipEl.getBoundingClientRect().height;
|
|
6474
|
+
const enoughSpaceAbove = spaceAbove > tooltipHeight;
|
|
6475
|
+
const enoughSpaceBelow = spaceBelow > tooltipHeight;
|
|
6476
|
+
// a tooltip should never be closer than 24px to the edge of a screen
|
|
6477
|
+
const enoughSpaceLeft = spaceLeft - 24 > tooltipWidth;
|
|
6478
|
+
const enoughSpaceRight = spaceRight - 24 > tooltipWidth;
|
|
6479
|
+
const swapAbove = (position) => {
|
|
6480
|
+
return !enoughSpaceAbove ? position.replace("top", "bottom") : position;
|
|
6481
|
+
};
|
|
6482
|
+
const swapBelow = (position) => {
|
|
6483
|
+
return !enoughSpaceBelow && enoughSpaceAbove ? position.replace("bottom", "top") : position;
|
|
6484
|
+
};
|
|
6485
|
+
const swapLeft = (position, centeredPosition) => {
|
|
6486
|
+
if (!enoughSpaceLeft && enoughSpaceRight) {
|
|
6487
|
+
position = position.replace("left", "right");
|
|
6488
|
+
}
|
|
6489
|
+
else if (!enoughSpaceLeft && !enoughSpaceRight) {
|
|
6490
|
+
position = centeredPosition;
|
|
6491
|
+
}
|
|
6492
|
+
return position;
|
|
6493
|
+
};
|
|
6494
|
+
const swapRight = (position, centeredPosition) => {
|
|
6495
|
+
if (!enoughSpaceRight && enoughSpaceLeft) {
|
|
6496
|
+
position = position.replace("right", "left");
|
|
6497
|
+
}
|
|
6498
|
+
else if (!enoughSpaceRight && !enoughSpaceLeft) {
|
|
6499
|
+
position = centeredPosition;
|
|
6500
|
+
}
|
|
6501
|
+
return position;
|
|
6502
|
+
};
|
|
6503
|
+
// horizontal checks must occur before vertical checks, because horizontal can affect vertical positioning but not vice versa
|
|
6504
|
+
switch (tPos) {
|
|
6505
|
+
case "left":
|
|
6506
|
+
tPos = swapLeft(tPos, "bottom");
|
|
6507
|
+
case "right":
|
|
6508
|
+
tPos = swapRight(tPos, "bottom");
|
|
6509
|
+
case "top-left":
|
|
6510
|
+
tPos = swapLeft(tPos, "top");
|
|
6511
|
+
tPos = swapAbove(tPos);
|
|
6512
|
+
case "top-right":
|
|
6513
|
+
tPos = swapRight(tPos, "top");
|
|
6514
|
+
tPos = swapAbove(tPos);
|
|
6515
|
+
case "bottom-left":
|
|
6516
|
+
tPos = swapLeft(tPos, "bottom");
|
|
6517
|
+
tPos = swapBelow(tPos);
|
|
6518
|
+
case "bottom-right":
|
|
6519
|
+
tPos = swapRight(tPos, "bottom");
|
|
6520
|
+
tPos = swapBelow(tPos);
|
|
6521
|
+
case "top":
|
|
6522
|
+
tPos = swapAbove(tPos);
|
|
6523
|
+
case "bottom":
|
|
6524
|
+
tPos = swapBelow(tPos);
|
|
6525
|
+
}
|
|
6526
|
+
return tPos;
|
|
6527
|
+
}
|
|
6528
|
+
function hasRoomRight(x, spaceNeeded) {
|
|
6529
|
+
let horizOffset = 0;
|
|
6530
|
+
// if (getTextDir() === "ltr") {
|
|
6531
|
+
if (x.type === "click") {
|
|
6532
|
+
// if it's a mouse event, deal with mouse coords
|
|
6533
|
+
horizOffset = x.clientX;
|
|
6534
|
+
// if it's a focus event, the offset is 0
|
|
6535
|
+
}
|
|
6536
|
+
else if (x.type === "focus") {
|
|
6537
|
+
horizOffset = 0;
|
|
6538
|
+
}
|
|
6539
|
+
else {
|
|
6540
|
+
// otherwise an element was passed, calculate how far it is from the edge of the window
|
|
6541
|
+
let el = x; // re-assignment is for clarity
|
|
6542
|
+
while (el) {
|
|
6543
|
+
if (el.tagName == "BODY") {
|
|
6544
|
+
// deal with browser quirks with body/window/document and page scroll
|
|
6545
|
+
var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
|
|
6546
|
+
horizOffset += el.offsetLeft - xScroll + el.clientLeft;
|
|
6547
|
+
}
|
|
6548
|
+
else {
|
|
6549
|
+
// for all other non-BODY elements
|
|
6550
|
+
horizOffset += el.offsetLeft - el.scrollLeft + el.clientLeft;
|
|
6551
|
+
}
|
|
6552
|
+
el = el.offsetParent;
|
|
6553
|
+
}
|
|
6554
|
+
// }
|
|
6555
|
+
}
|
|
6556
|
+
return window.innerWidth - horizOffset >= spaceNeeded;
|
|
6557
|
+
}
|
|
6558
|
+
function checkForActiveElInShadow(element) {
|
|
6559
|
+
while (element && element.shadowRoot) {
|
|
6560
|
+
element = element.shadowRoot.activeElement;
|
|
6561
|
+
}
|
|
6562
|
+
return element;
|
|
6563
|
+
}
|
|
6564
|
+
function checkForFocusableElInShadow(element) {
|
|
6565
|
+
const selectors = [
|
|
6566
|
+
"button",
|
|
6567
|
+
"a",
|
|
6568
|
+
"input",
|
|
6569
|
+
"select",
|
|
6570
|
+
"textarea",
|
|
6571
|
+
"wm-button",
|
|
6572
|
+
"wm-search",
|
|
6573
|
+
"wm-select",
|
|
6574
|
+
"wm-action-menu",
|
|
6575
|
+
"wm-tab-item",
|
|
6576
|
+
"wm-datepicker",
|
|
6577
|
+
];
|
|
6578
|
+
let focusableEl = element;
|
|
6579
|
+
selectors.forEach((selector) => {
|
|
6580
|
+
if (focusableEl && focusableEl.shadowRoot) {
|
|
6581
|
+
let elInShadow = focusableEl.shadowRoot.querySelector(selector);
|
|
6582
|
+
if (elInShadow) {
|
|
6583
|
+
if (selector.startsWith("wm-")) {
|
|
6584
|
+
focusableEl = checkForFocusableElInShadow(elInShadow);
|
|
6585
|
+
}
|
|
6586
|
+
else {
|
|
6587
|
+
focusableEl = elInShadow;
|
|
6588
|
+
}
|
|
6589
|
+
}
|
|
6590
|
+
}
|
|
6591
|
+
});
|
|
6592
|
+
return focusableEl;
|
|
6593
|
+
}
|
|
6594
|
+
function isFocusable(element) {
|
|
6595
|
+
if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute("tabIndex") !== null)) {
|
|
6596
|
+
return true;
|
|
6597
|
+
}
|
|
6598
|
+
if (element.disabled) {
|
|
6599
|
+
return false;
|
|
6600
|
+
}
|
|
6601
|
+
switch (element.nodeName) {
|
|
6602
|
+
case "A":
|
|
6603
|
+
return !!element.href && element.rel != "ignore";
|
|
6604
|
+
case "INPUT":
|
|
6605
|
+
return element.type != "hidden" && element.type != "file";
|
|
6606
|
+
case "BUTTON":
|
|
6607
|
+
case "SELECT":
|
|
6608
|
+
case "TEXTAREA":
|
|
6609
|
+
case "WM-BUTTON":
|
|
6610
|
+
case "WM-SELECT":
|
|
6611
|
+
case "WM-ACTION-MENU":
|
|
6612
|
+
case "WM-DATEPICKER":
|
|
6613
|
+
case "WM-TIMEPICKER":
|
|
6614
|
+
case "WM-INPUT":
|
|
6615
|
+
case "WM-TAG-INPUT":
|
|
6616
|
+
case "WM-TAB-ITEM":
|
|
6617
|
+
case "WM-SEARCH":
|
|
6618
|
+
return true;
|
|
6619
|
+
default:
|
|
6620
|
+
return false;
|
|
6621
|
+
}
|
|
6622
|
+
}
|
|
6623
|
+
function getFirstFocusableDescendant(element) {
|
|
6624
|
+
if (isFocusable(element)) {
|
|
6625
|
+
return checkForFocusableElInShadow(element);
|
|
6626
|
+
}
|
|
6627
|
+
else if (element.childNodes.length > 0) {
|
|
6628
|
+
element.childNodes.forEach((i) => {
|
|
6629
|
+
const childEl = getFirstFocusableDescendant(i);
|
|
6630
|
+
return childEl && checkForFocusableElInShadow(childEl);
|
|
6631
|
+
});
|
|
6632
|
+
}
|
|
6633
|
+
}
|
|
6634
|
+
function hasValidType(file, types) {
|
|
6635
|
+
const acceptedExtensions = types.split(" ");
|
|
6636
|
+
const parts = file.name && file.name.split(".");
|
|
6637
|
+
const ext = parts && parts.length > 1 && parts[parts.length - 1];
|
|
6638
|
+
return ext
|
|
6639
|
+
? acceptedExtensions.includes(ext.toLowerCase())
|
|
6640
|
+
: // fallback: if we couldn't obtain an extension,
|
|
6641
|
+
// validate based on MIME type...
|
|
6642
|
+
!!file.type
|
|
6643
|
+
? getAcceptedMimeTypesList(acceptedExtensions).includes(file.type)
|
|
6644
|
+
: // ...and if that failed too, accept the file
|
|
6645
|
+
// as it's preferable to accept an invalid file
|
|
6646
|
+
// than refusing a valid one (back-end will take care of what slips through)
|
|
6647
|
+
true;
|
|
6648
|
+
}
|
|
6649
|
+
// takes a string (space separated list of extensions), returns an array of strings (corresponding MIME types)
|
|
6650
|
+
function getAcceptedMimeTypesList(acceptedExtensions) {
|
|
6651
|
+
// this is just a list of common file types (regardless of whether they are/can be valid or not)
|
|
6652
|
+
// front end checks are just a convenience to users, independent of security.
|
|
6653
|
+
// it allows users to be notified of an invalid type as soon as they select the file, rather than when it gets uploaded
|
|
6654
|
+
const lookupTable = {
|
|
6655
|
+
aac: ["audio/aac"],
|
|
6656
|
+
abw: ["application/x-abiword"],
|
|
6657
|
+
arc: ["application/x-freearc"],
|
|
6658
|
+
avi: ["video/x-msvideo"],
|
|
6659
|
+
azw: ["application/vnd.amazon.ebook"],
|
|
6660
|
+
bin: ["application/octet-stream"],
|
|
6661
|
+
bmp: ["image/bmp"],
|
|
6662
|
+
bz: ["application/x-bzip"],
|
|
6663
|
+
bz2: ["application/x-bzip2"],
|
|
6664
|
+
csh: ["application/x-csh"],
|
|
6665
|
+
css: ["text/css"],
|
|
6666
|
+
csv: ["text/csv"],
|
|
6667
|
+
doc: ["application/msword"],
|
|
6668
|
+
docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
|
6669
|
+
eot: ["application/vnd.ms-fontobject"],
|
|
6670
|
+
epub: ["application/epub+zip"],
|
|
6671
|
+
gz: ["application/gzip"],
|
|
6672
|
+
gif: ["image/gif"],
|
|
6673
|
+
htm: ["text/html"],
|
|
6674
|
+
html: ["text/html"],
|
|
6675
|
+
ico: ["image/vnd.microsoft.icon"],
|
|
6676
|
+
ics: ["text/calendar"],
|
|
6677
|
+
jar: ["application/java-archive"],
|
|
6678
|
+
jpeg: ["image/jpeg"],
|
|
6679
|
+
jpg: ["image/jpeg"],
|
|
6680
|
+
js: ["text/javascript"],
|
|
6681
|
+
json: ["application/json"],
|
|
6682
|
+
jsonld: ["application/ld+json"],
|
|
6683
|
+
log: ["text/plain"],
|
|
6684
|
+
mid: ["audio/x-midi"],
|
|
6685
|
+
midi: ["audio/x-midi"],
|
|
6686
|
+
mjs: ["text/javascript"],
|
|
6687
|
+
mp3: ["audio/mpeg"],
|
|
6688
|
+
mpeg: ["video/mpeg"],
|
|
6689
|
+
mpkg: ["application/vnd.apple.installer+xml"],
|
|
6690
|
+
odp: ["application/vnd.oasis.opendocument.presentation"],
|
|
6691
|
+
ods: ["application/vnd.oasis.opendocument.spreadsheet"],
|
|
6692
|
+
odt: ["application/vnd.oasis.opendocument.text"],
|
|
6693
|
+
oga: ["audio/ogg"],
|
|
6694
|
+
ogv: ["video/ogg"],
|
|
6695
|
+
ogx: ["application/ogg"],
|
|
6696
|
+
opus: ["audio/opus"],
|
|
6697
|
+
otf: ["font/otf"],
|
|
6698
|
+
png: ["image/png"],
|
|
6699
|
+
pdf: ["application/pdf"],
|
|
6700
|
+
php: ["application/php"],
|
|
6701
|
+
ppt: ["application/vnd.ms-powerpoint"],
|
|
6702
|
+
pptx: ["application/vnd.openxmlformats-officedocument.presentationml.presentation"],
|
|
6703
|
+
rar: ["application/vnd.rar", "application/x-rar", "application/x-rar-compressed"],
|
|
6704
|
+
rtf: ["application/rtf"],
|
|
6705
|
+
sh: ["application/x-sh"],
|
|
6706
|
+
svg: ["image/svg+xml"],
|
|
6707
|
+
swf: ["application/x-shockwave-flash"],
|
|
6708
|
+
tar: ["application/x-tar"],
|
|
6709
|
+
tif: ["image/tiff"],
|
|
6710
|
+
tiff: ["image/tiff"],
|
|
6711
|
+
ts: ["video/mp2t"],
|
|
6712
|
+
ttf: ["font/ttf"],
|
|
6713
|
+
txt: ["text/plain"],
|
|
6714
|
+
vsd: ["application/vnd.visio"],
|
|
6715
|
+
wav: ["audio/wav"],
|
|
6716
|
+
weba: ["audio/webm"],
|
|
6717
|
+
webm: ["video/webm"],
|
|
6718
|
+
webp: ["image/webp"],
|
|
6719
|
+
woff: ["font/woff"],
|
|
6720
|
+
woff2: ["font/woff2"],
|
|
6721
|
+
xhtml: ["application/xhtml+xml"],
|
|
6722
|
+
xls: ["application/vnd.ms-excel"],
|
|
6723
|
+
xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
|
6724
|
+
xml: ["application/xml", "text/xml"],
|
|
6725
|
+
xul: ["application/vnd.mozilla.xul+xml"],
|
|
6726
|
+
zip: ["application/zip", "application/x-zip-compressed", "multipart/x-zip"],
|
|
6727
|
+
"3gp": ["video/3gpp", "audio/3gpp"],
|
|
6728
|
+
"3g2": ["video/3gpp2", "audio/3gpp2"],
|
|
6729
|
+
"7z": ["application/x-7z-compressed"],
|
|
6730
|
+
};
|
|
6731
|
+
return acceptedExtensions.reduce((acc, ext) => acc.concat(lookupTable[ext]), []);
|
|
6732
|
+
}
|
|
6733
|
+
function snakeCaseToCamelCase(str) {
|
|
6734
|
+
const snakeCaseRegexp = /^([a-z0-9]*)(_[a-z0-9]*)*$/g;
|
|
6735
|
+
if (snakeCaseRegexp.test(str)) {
|
|
6736
|
+
let camelCase = "";
|
|
6737
|
+
let arr = str.split("_");
|
|
6738
|
+
arr.forEach((word, idx) => {
|
|
6739
|
+
camelCase += idx === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1);
|
|
6740
|
+
});
|
|
6741
|
+
return camelCase;
|
|
6742
|
+
}
|
|
6743
|
+
else {
|
|
6744
|
+
return str;
|
|
6745
|
+
}
|
|
6746
|
+
}
|
|
6747
|
+
function getNewIndexToFocus(currentIndex, direction, listLength) {
|
|
6748
|
+
let newIndex = currentIndex;
|
|
6749
|
+
if (direction === "ArrowDown") {
|
|
6750
|
+
newIndex = (currentIndex + 1) % listLength;
|
|
6751
|
+
}
|
|
6752
|
+
if (direction === "ArrowUp") {
|
|
6753
|
+
newIndex = currentIndex === 0 ? listLength - 1 : currentIndex - 1;
|
|
6754
|
+
}
|
|
6755
|
+
return newIndex;
|
|
6756
|
+
}
|
|
6757
|
+
function isRelatedTarget(ev, id) {
|
|
6758
|
+
// used for onBlur events to check the element that has been clicked
|
|
6759
|
+
const ids = id.split(" ");
|
|
6760
|
+
return ev.relatedTarget && ids.includes(ev.relatedTarget.id);
|
|
6761
|
+
}
|
|
6762
|
+
/*
|
|
6763
|
+
* this is going to be needed to solve the extra tabbing on navigator
|
|
6764
|
+
* and for programmatic focus of tabs
|
|
6765
|
+
* Here's a draft, not bug proof, see:
|
|
6766
|
+
* https://stackoverflow.com/a/10730308/3741713
|
|
6767
|
+
|
|
6768
|
+
function getKeyboardFocusableElements(element = document) {
|
|
6769
|
+
const els = Array.from(element.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), wm-search, wm-timepicker, wm-tab-list, wm-tab-item, wm-button, wm-action-menu'));
|
|
6770
|
+
return els.filter((el: Element) => !el.hasAttribute("disabled")) as HTMLElement[];
|
|
6771
|
+
}
|
|
6772
|
+
|
|
6773
|
+
export function getPreviousKeyboardFocusableElement(element: HTMLElement) {
|
|
6774
|
+
const els = getKeyboardFocusableElements();
|
|
6775
|
+
const current = els.indexOf(element);
|
|
6776
|
+
return els[current - 1] as HTMLElement;
|
|
6777
|
+
}
|
|
6778
|
+
|
|
6779
|
+
export function getNextKeyboardFocusableElement(element: HTMLElement) {
|
|
6780
|
+
const els = getKeyboardFocusableElements();
|
|
6781
|
+
const current = els.indexOf(element);
|
|
6782
|
+
return els[current + 1] as HTMLElement;
|
|
6783
|
+
}
|
|
6142
6784
|
*/
|
|
6143
6785
|
|
|
6144
6786
|
export { adjustTooltipPosition as a, getPosition as b, checkForActiveElInShadow as c, debounce as d, isRelatedTarget as e, findParentWithScrollbar as f, generateId as g, checkForFocusableElInShadow as h, intl as i, getFirstFocusableDescendant as j, getNewIndexToFocus as k, shouldOpenUp as l, shouldOpenDown as m, shouldShiftRight as n, shouldShiftLeft as o, hasValidType as p, getTextDir as q, hasRoomRight as r, snakeCaseToCamelCase as s };
|