@ptsecurity/mosaic 17.3.0 → 17.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/autocomplete/autocomplete-trigger.directive.d.ts +1 -0
  2. package/button/button.scss +14 -4
  3. package/checkbox/checkbox.d.ts +6 -6
  4. package/core/animation/animation.d.ts +2 -1
  5. package/core/common-behaviors/checkbox.d.ts +1 -0
  6. package/core/common-behaviors/index.d.ts +1 -0
  7. package/core/forms/index.d.ts +1 -0
  8. package/core/forms/validators.d.ts +22 -0
  9. package/core/locales/en-US.d.ts +17 -0
  10. package/core/locales/es-LA.d.ts +17 -0
  11. package/core/locales/fa-IR.d.ts +17 -0
  12. package/core/locales/index.d.ts +7 -0
  13. package/core/locales/locale-service.d.ts +175 -0
  14. package/core/locales/pt-BR.d.ts +17 -0
  15. package/core/locales/ru-RU.d.ts +17 -0
  16. package/core/locales/tk-TM.d.ts +64 -0
  17. package/core/locales/zh-CN.d.ts +17 -0
  18. package/core/pop-up/constants.d.ts +9 -0
  19. package/core/pop-up/pop-up-trigger.d.ts +25 -9
  20. package/core/pop-up/pop-up.d.ts +3 -3
  21. package/core/styles/theming/_theming.scss +1 -0
  22. package/datepicker/calendar-header.component.d.ts +11 -5
  23. package/datepicker/datepicker-input.directive.d.ts +10 -0
  24. package/dropdown/dropdown-trigger.directive.d.ts +1 -1
  25. package/ellipsis-center/ellipsis-center.directive.d.ts +3 -7
  26. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +13 -5
  27. package/esm2022/button/button.component.mjs +2 -2
  28. package/esm2022/checkbox/checkbox.mjs +5 -5
  29. package/esm2022/code-block/actionbar.component.mjs +1 -1
  30. package/esm2022/core/animation/animation.mjs +2 -1
  31. package/esm2022/core/common-behaviors/checkbox.mjs +2 -0
  32. package/esm2022/core/common-behaviors/index.mjs +2 -1
  33. package/esm2022/core/forms/index.mjs +2 -1
  34. package/esm2022/core/forms/validators.mjs +33 -0
  35. package/esm2022/core/locales/en-US.mjs +19 -2
  36. package/esm2022/core/locales/es-LA.mjs +19 -2
  37. package/esm2022/core/locales/fa-IR.mjs +19 -2
  38. package/esm2022/core/locales/index.mjs +8 -1
  39. package/esm2022/core/locales/locale-service.mjs +39 -3
  40. package/esm2022/core/locales/pt-BR.mjs +19 -2
  41. package/esm2022/core/locales/ru-RU.mjs +19 -2
  42. package/esm2022/core/locales/tk-TM.mjs +63 -0
  43. package/esm2022/core/locales/zh-CN.mjs +19 -2
  44. package/esm2022/core/pop-up/constants.mjs +6 -1
  45. package/esm2022/core/pop-up/pop-up-trigger.mjs +68 -21
  46. package/esm2022/core/pop-up/pop-up.mjs +7 -6
  47. package/esm2022/core/version.mjs +2 -2
  48. package/esm2022/datepicker/calendar-header.component.mjs +40 -10
  49. package/esm2022/datepicker/datepicker-input.directive.mjs +103 -23
  50. package/esm2022/dropdown/dropdown-trigger.directive.mjs +2 -2
  51. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +12 -23
  52. package/esm2022/file-upload/file-upload.mjs +39 -2
  53. package/esm2022/file-upload/file-upload.module.mjs +8 -1
  54. package/esm2022/file-upload/multiple-file-upload.component.mjs +157 -42
  55. package/esm2022/file-upload/single-file-upload.component.mjs +140 -38
  56. package/esm2022/form-field/form-field.mjs +6 -6
  57. package/esm2022/form-field/validate.directive.mjs +5 -2
  58. package/esm2022/input/input-number.mjs +31 -59
  59. package/esm2022/input/input-password.mjs +15 -26
  60. package/esm2022/input/input.mjs +3 -3
  61. package/esm2022/loader-overlay/loader-overlay.component.mjs +10 -8
  62. package/esm2022/modal/modal.component.mjs +3 -3
  63. package/esm2022/modal/modal.directive.mjs +38 -7
  64. package/esm2022/navbar/navbar-item.component.mjs +16 -30
  65. package/esm2022/popover/popover-confirm.component.mjs +11 -20
  66. package/esm2022/popover/popover.component.mjs +27 -29
  67. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  68. package/esm2022/select/select-option.directive.mjs +7 -18
  69. package/esm2022/select/select.component.mjs +9 -6
  70. package/esm2022/sidebar/sidebar.component.mjs +10 -6
  71. package/esm2022/tabs/tab-group.component.mjs +1 -1
  72. package/esm2022/tabs/tab-header.component.mjs +2 -2
  73. package/esm2022/timezone/timezone-option.directive.mjs +7 -18
  74. package/esm2022/title/title.directive.mjs +7 -18
  75. package/esm2022/toggle/toggle.component.mjs +103 -18
  76. package/esm2022/tooltip/tooltip.component.mjs +72 -45
  77. package/esm2022/tree-select/tree-select.component.mjs +8 -6
  78. package/fesm2022/ptsecurity-mosaic-autocomplete.mjs +12 -4
  79. package/fesm2022/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  80. package/fesm2022/ptsecurity-mosaic-button.mjs +2 -2
  81. package/fesm2022/ptsecurity-mosaic-button.mjs.map +1 -1
  82. package/fesm2022/ptsecurity-mosaic-checkbox.mjs +4 -4
  83. package/fesm2022/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  84. package/fesm2022/ptsecurity-mosaic-code-block.mjs +1 -1
  85. package/fesm2022/ptsecurity-mosaic-code-block.mjs.map +1 -1
  86. package/fesm2022/ptsecurity-mosaic-core.mjs +322 -36
  87. package/fesm2022/ptsecurity-mosaic-core.mjs.map +1 -1
  88. package/fesm2022/ptsecurity-mosaic-datepicker.mjs +141 -31
  89. package/fesm2022/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  90. package/fesm2022/ptsecurity-mosaic-dropdown.mjs +1 -1
  91. package/fesm2022/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  92. package/fesm2022/ptsecurity-mosaic-ellipsis-center.mjs +11 -19
  93. package/fesm2022/ptsecurity-mosaic-ellipsis-center.mjs.map +1 -1
  94. package/fesm2022/ptsecurity-mosaic-file-upload.mjs +327 -73
  95. package/fesm2022/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  96. package/fesm2022/ptsecurity-mosaic-form-field.mjs +9 -6
  97. package/fesm2022/ptsecurity-mosaic-form-field.mjs.map +1 -1
  98. package/fesm2022/ptsecurity-mosaic-input.mjs +39 -75
  99. package/fesm2022/ptsecurity-mosaic-input.mjs.map +1 -1
  100. package/fesm2022/ptsecurity-mosaic-loader-overlay.mjs +10 -8
  101. package/fesm2022/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  102. package/fesm2022/ptsecurity-mosaic-modal.mjs +32 -7
  103. package/fesm2022/ptsecurity-mosaic-modal.mjs.map +1 -1
  104. package/fesm2022/ptsecurity-mosaic-navbar.mjs +14 -26
  105. package/fesm2022/ptsecurity-mosaic-navbar.mjs.map +1 -1
  106. package/fesm2022/ptsecurity-mosaic-popover.mjs +33 -39
  107. package/fesm2022/ptsecurity-mosaic-popover.mjs.map +1 -1
  108. package/fesm2022/ptsecurity-mosaic-progress-spinner.mjs +2 -2
  109. package/fesm2022/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  110. package/fesm2022/ptsecurity-mosaic-select.mjs +25 -28
  111. package/fesm2022/ptsecurity-mosaic-select.mjs.map +1 -1
  112. package/fesm2022/ptsecurity-mosaic-sidebar.mjs +8 -4
  113. package/fesm2022/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  114. package/fesm2022/ptsecurity-mosaic-tabs.mjs +3 -3
  115. package/fesm2022/ptsecurity-mosaic-tabs.mjs.map +1 -1
  116. package/fesm2022/ptsecurity-mosaic-timezone.mjs +10 -17
  117. package/fesm2022/ptsecurity-mosaic-timezone.mjs.map +1 -1
  118. package/fesm2022/ptsecurity-mosaic-title.mjs +6 -14
  119. package/fesm2022/ptsecurity-mosaic-title.mjs.map +1 -1
  120. package/fesm2022/ptsecurity-mosaic-toggle.mjs +102 -17
  121. package/fesm2022/ptsecurity-mosaic-toggle.mjs.map +1 -1
  122. package/fesm2022/ptsecurity-mosaic-tooltip.mjs +71 -42
  123. package/fesm2022/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  124. package/fesm2022/ptsecurity-mosaic-tree-select.mjs +7 -5
  125. package/fesm2022/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  126. package/file-upload/_file-upload-theme.scss +23 -13
  127. package/file-upload/file-upload.d.ts +31 -3
  128. package/file-upload/file-upload.module.d.ts +11 -10
  129. package/file-upload/file-upload.scss +8 -1
  130. package/file-upload/multiple-file-upload.component.d.ts +62 -10
  131. package/file-upload/multiple-file-upload.component.scss +0 -8
  132. package/file-upload/single-file-upload.component.d.ts +55 -11
  133. package/file-upload/single-file-upload.component.scss +0 -8
  134. package/form-field/form-field.d.ts +1 -1
  135. package/form-field/validate.directive.d.ts +5 -2
  136. package/input/input-number.d.ts +10 -11
  137. package/input/input-password.d.ts +3 -6
  138. package/input/input.d.ts +1 -1
  139. package/loader-overlay/loader-overlay.component.d.ts +4 -3
  140. package/modal/modal.directive.d.ts +4 -1
  141. package/navbar/navbar-item.component.d.ts +5 -7
  142. package/package.json +8 -8
  143. package/popover/popover-confirm.component.d.ts +3 -6
  144. package/popover/popover.component.d.ts +9 -6
  145. package/prebuilt-themes/dark-theme.css +1 -1
  146. package/prebuilt-themes/default-theme.css +1 -1
  147. package/progress-spinner/progress-spinner.scss +1 -0
  148. package/select/select-option.directive.d.ts +3 -6
  149. package/sidebar/sidebar.component.d.ts +3 -2
  150. package/tabs/tab-header.scss +2 -2
  151. package/timezone/timezone-option.directive.d.ts +3 -6
  152. package/title/title.directive.d.ts +3 -6
  153. package/toggle/_toggle-theme.scss +7 -1
  154. package/toggle/toggle.component.d.ts +23 -6
  155. package/toggle/toggle.scss +23 -0
  156. package/tooltip/tooltip.component.d.ts +25 -13
@@ -1,8 +1,7 @@
1
1
  import { trigger, state, style, transition, animate, group } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, isDevMode, NgModule, Optional, Inject, inject, LOCALE_ID, Injectable, Pipe, Directive, ContentChildren, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, ViewChild, Output, ContentChild, TemplateRef, Version } from '@angular/core';
4
- import * as i2$1 from '@angular/cdk/bidi';
5
- import { BidiModule } from '@angular/cdk/bidi';
3
+ import { InjectionToken, isDevMode, NgModule, Optional, Inject, inject, LOCALE_ID, Injectable, Pipe, Directive, ContentChildren, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, ViewChild, Output, ContentChild, Renderer2, ChangeDetectorRef, TemplateRef, ElementRef, NgZone, ViewContainerRef, Version } from '@angular/core';
4
+ import { BidiModule, Directionality } from '@angular/cdk/bidi';
6
5
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
7
6
  import * as i1 from '@mosaic-design/date-adapter';
8
7
  import { DateAdapter as DateAdapter$1 } from '@mosaic-design/date-adapter';
@@ -13,8 +12,7 @@ import { CommonModule, DOCUMENT } from '@angular/common';
13
12
  import { ENTER, SPACE, TAB, ESCAPE, HOME, END } from '@ptsecurity/cdk/keycodes';
14
13
  import * as i1$1 from '@angular/cdk/a11y';
15
14
  import { takeUntil, distinctUntilChanged, delay } from 'rxjs/operators';
16
- import * as i1$2 from '@angular/cdk/overlay';
17
- import { Overlay } from '@angular/cdk/overlay';
15
+ import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
18
16
  import { ComponentPortal } from '@angular/cdk/portal';
19
17
 
20
18
  const fadeAnimation = trigger('fadeAnimation', [
@@ -31,6 +29,7 @@ var AnimationCurves;
31
29
  AnimationCurves["DecelerationCurve"] = "cubic-bezier(0.0,0.0,0.2,1)";
32
30
  AnimationCurves["AccelerationCurve"] = "cubic-bezier(0.4,0.0,1,1)";
33
31
  AnimationCurves["SharpCurve"] = "cubic-bezier(0.4,0.0,0.6,1)";
32
+ AnimationCurves["EaseInOut"] = "ease-in-out";
34
33
  })(AnimationCurves || (AnimationCurves = {}));
35
34
 
36
35
  /**
@@ -516,7 +515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
516
515
 
517
516
  const enUSLocaleData = {
518
517
  'en-US': {
519
- select: { hiddenItemsText: 'one more' },
518
+ select: { hiddenItemsText: '{{ number }} more' },
520
519
  datepicker: {
521
520
  placeholder: 'yyyy-mm-dd',
522
521
  dateInput: 'yyyy-MM-dd'
@@ -538,13 +537,30 @@ const enUSLocaleData = {
538
537
  groupSeparator: [','],
539
538
  fractionSeparator: '.'
540
539
  }
540
+ },
541
+ fileUpload: {
542
+ single: {
543
+ captionText: 'Drag file here or {{ browseLink }}',
544
+ browseLink: 'choose'
545
+ },
546
+ multiple: {
547
+ captionText: 'Drag here or {{ browseLink }}',
548
+ captionTextWhenSelected: 'Drag more files or {{ browseLink }}',
549
+ captionTextForCompactSize: 'Drag files or {{ browseLink }}',
550
+ browseLink: 'choose',
551
+ title: 'Upload files',
552
+ gridHeaders: {
553
+ file: 'File',
554
+ size: 'Size'
555
+ }
556
+ }
541
557
  }
542
558
  }
543
559
  };
544
560
 
545
561
  const esLALocaleData = {
546
562
  'es-LA': {
547
- select: { hiddenItemsText: 'más' },
563
+ select: { hiddenItemsText: '{{ number }} más' },
548
564
  datepicker: {
549
565
  placeholder: 'dd/mm/aaaa'
550
566
  },
@@ -573,13 +589,30 @@ const esLALocaleData = {
573
589
  groupSeparator: [' ', ' '],
574
590
  fractionSeparator: ','
575
591
  }
592
+ },
593
+ fileUpload: {
594
+ single: {
595
+ captionText: 'Arrastre el archivo aquí o {{ browseLink }}',
596
+ browseLink: 'elija'
597
+ },
598
+ multiple: {
599
+ captionText: 'Arrastre aquí o {{ browseLink }}',
600
+ captionTextWhenSelected: 'Arrastre más archivos aquí o {{ browseLink }}',
601
+ captionTextForCompactSize: 'Arrastre archivos o {{ browseLink }}',
602
+ browseLink: 'elija',
603
+ title: 'Cargue los archivos',
604
+ gridHeaders: {
605
+ file: 'Archivo',
606
+ size: 'Tamaño'
607
+ }
608
+ }
576
609
  }
577
610
  }
578
611
  };
579
612
 
580
613
  const faIRLocaleData = {
581
614
  'fa-IR': {
582
- select: { hiddenItemsText: 'أكثر' },
615
+ select: { hiddenItemsText: '{{ number }} بیشتر' },
583
616
  datepicker: {
584
617
  placeholder: 'روز/ ماه/سال'
585
618
  },
@@ -607,13 +640,30 @@ const faIRLocaleData = {
607
640
  groupSeparator: ['\u066C'],
608
641
  fractionSeparator: '\u066B'
609
642
  }
643
+ },
644
+ fileUpload: {
645
+ single: {
646
+ captionText: 'فایل را به اینجا بکشید یا {{ browseLink }}',
647
+ browseLink: 'انتخاب کنید'
648
+ },
649
+ multiple: {
650
+ captionText: 'به اینجا بکشید یا {{ browseLink }}',
651
+ captionTextWhenSelected: 'فایل های بیشتری را بکشید یا {{ browseLink }}',
652
+ captionTextForCompactSize: 'فایل ها را بکشید یا {{ browseLink }}',
653
+ browseLink: 'انتخاب کنید',
654
+ title: 'فایل ها را آپلود کنید',
655
+ gridHeaders: {
656
+ file: 'فایل',
657
+ size: 'اندازه'
658
+ }
659
+ }
610
660
  }
611
661
  }
612
662
  };
613
663
 
614
664
  const ptBRLocaleData = {
615
665
  'pt-BR': {
616
- select: { hiddenItemsText: 'mais' },
666
+ select: { hiddenItemsText: '{{ number }} mais' },
617
667
  datepicker: {
618
668
  placeholder: 'dd/mm/yyyy'
619
669
  },
@@ -640,13 +690,30 @@ const ptBRLocaleData = {
640
690
  groupSeparator: ['.'],
641
691
  fractionSeparator: ','
642
692
  }
693
+ },
694
+ fileUpload: {
695
+ single: {
696
+ captionText: 'Arrastar o arquivo aqui ou {{ browseLink }}',
697
+ browseLink: 'escolher'
698
+ },
699
+ multiple: {
700
+ captionText: 'Arrastar aqui ou {{ browseLink }}',
701
+ captionTextWhenSelected: 'Arrastar mais arquivos aqui ou {{ browseLink }}',
702
+ captionTextForCompactSize: 'Arrastar arquivos ou {{ browseLink }}',
703
+ browseLink: 'escolher',
704
+ title: 'Carregar arquivos',
705
+ gridHeaders: {
706
+ file: 'Arquivo',
707
+ size: 'Tamanho'
708
+ }
709
+ }
643
710
  }
644
711
  }
645
712
  };
646
713
 
647
714
  const ruRULocaleData = {
648
715
  'ru-RU': {
649
- select: { hiddenItemsText: 'еще' },
716
+ select: { hiddenItemsText: 'еще {{ number }}' },
650
717
  datepicker: {
651
718
  placeholder: 'дд.мм.гггг',
652
719
  dateInput: 'dd.MM.yyyy'
@@ -671,13 +738,93 @@ const ruRULocaleData = {
671
738
  fractionSeparator: ',',
672
739
  startFormattingFrom: 4
673
740
  }
741
+ },
742
+ fileUpload: {
743
+ single: {
744
+ captionText: 'Перетащите файл или {{ browseLink }}',
745
+ browseLink: 'выберите'
746
+ },
747
+ multiple: {
748
+ captionText: 'Перетащите сюда или {{ browseLink }}',
749
+ captionTextWhenSelected: 'Перетащите еще или {{ browseLink }}',
750
+ captionTextForCompactSize: 'Перетащите файлы или {{ browseLink }}',
751
+ browseLink: 'выберите',
752
+ title: 'Загрузите файлы',
753
+ gridHeaders: {
754
+ file: 'Файл',
755
+ size: 'Размер'
756
+ }
757
+ }
758
+ }
759
+ }
760
+ };
761
+
762
+ const tkTMLocaleData = {
763
+ 'tk-TM': {
764
+ select: { hiddenItemsText: 'ýene {{ number }}' },
765
+ datepicker: {
766
+ placeholder: 'gg.aa.ýý.'
767
+ },
768
+ timepicker: {
769
+ placeholder: {
770
+ full: 'ss:mm:seksek',
771
+ short: 'ss:mm'
772
+ }
773
+ },
774
+ formatters: {
775
+ number: {
776
+ rounding: {
777
+ separator: ' ',
778
+ groupSeparator: '',
779
+ thousand: 'M',
780
+ million: 'Mn',
781
+ billion: 'Mr',
782
+ trillion: 'Tn'
783
+ }
784
+ }
785
+ },
786
+ input: {
787
+ number: {
788
+ groupSeparator: [' '],
789
+ fractionSeparator: ','
790
+ }
791
+ },
792
+ codeBlock: {
793
+ softWrapOnTooltip: 'Sözler boýunça geçirmäni işjeňleşdirmek',
794
+ softWrapOffTooltip: 'Sözler boýunça geçirmäni öçürmek',
795
+ downloadTooltip: 'Ýüklemek',
796
+ copiedTooltip: '✓ Göçürildi',
797
+ copyTooltip: 'Göçürmek',
798
+ viewAllText: 'Hemmesini görkezmek',
799
+ viewLessText: 'Ýygyrmak',
800
+ openExternalSystemTooltip: 'Daşarky ulgamda açmak'
801
+ },
802
+ timezone: {
803
+ searchPlaceholder: 'Şäher ýa-da sagat guşagy'
804
+ },
805
+ fileUpload: {
806
+ single: {
807
+ captionText: 'Faýly geçiriň ýa-da {{ browseLink }} ',
808
+ browseLink: 'saýlaň'
809
+ },
810
+ multiple: {
811
+ captionText: 'Şu ýere geçiriň ýa-da {{ browseLink }}',
812
+ captionTextWhenSelected: 'Ýene geçiriň ýa-da {{ browseLink }}',
813
+ captionTextForCompactSize: 'Faýllary geçiriň ýa-da {{ browseLink }}',
814
+ browseLink: 'saýlaň',
815
+ title: 'Faýl ýükläň',
816
+ gridHeaders: {
817
+ file: 'Faýl',
818
+ size: 'Ölçegi'
819
+ }
820
+ }
674
821
  }
675
822
  }
676
823
  };
677
824
 
678
825
  const znCNLocaleData = {
679
826
  'zh-CN': {
680
- select: { hiddenItemsText: '更多的' },
827
+ select: { hiddenItemsText: '另外 {{ number }} 个' },
681
828
  datepicker: {
682
829
  placeholder: '年/月/日'
683
830
  },
@@ -703,6 +850,23 @@ const znCNLocaleData = {
703
850
  groupSeparator: [','],
704
851
  fractionSeparator: '.'
705
852
  }
853
+ },
854
+ fileUpload: {
855
+ single: {
856
+ captionText: '将文件拖到此处或{{ browseLink }}',
857
+ browseLink: '选择'
858
+ },
859
+ multiple: {
860
+ captionText: '拖到此处或{{ browseLink }}',
861
+ captionTextWhenSelected: '拖动更多文件或{{ browseLink }}',
862
+ captionTextForCompactSize: '拖动文件或{{ browseLink }}',
863
+ browseLink: '选择',
864
+ title: '上传文件',
865
+ gridHeaders: {
866
+ file: '文件',
867
+ size: '大小'
868
+ }
869
+ }
706
870
  }
707
871
  }
708
872
  };
@@ -717,14 +881,16 @@ function MC_DEFAULT_LOCALE_DATA_FACTORY() {
717
881
  { id: 'es-LA', name: 'Español' },
718
882
  { id: 'pt-BR', name: 'Português' },
719
883
  { id: 'ru-RU', name: 'Русский' },
720
- { id: 'fa-IR', name: 'فارسی' }
884
+ { id: 'fa-IR', name: 'فارسی' },
885
+ { id: 'tk-TM', name: 'Türkmen' }
721
886
  ],
722
887
  ...ruRULocaleData,
723
888
  ...enUSLocaleData,
724
889
  ...esLALocaleData,
725
890
  ...faIRLocaleData,
726
891
  ...ptBRLocaleData,
727
- ...znCNLocaleData
892
+ ...znCNLocaleData,
893
+ ...tkTMLocaleData
728
894
  };
729
895
  }
730
896
  const MC_LOCALE_DATA = new InjectionToken('MC_LOCALE_DATA', { providedIn: 'root', factory: MC_DEFAULT_LOCALE_DATA_FACTORY });
@@ -767,6 +933,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
767
933
  type: Inject,
768
934
  args: [MC_LOCALE_DATA]
769
935
  }] }] });
936
+ /**
937
+ * Function that returns a string representation of a number without localized separators
938
+ */
939
+ function normalizeNumber(value, customConfig) {
940
+ if (value === null || value === undefined) {
941
+ return '';
942
+ }
943
+ const { groupSeparator, fractionSeparator } = customConfig;
944
+ const groupSeparatorRegexp = new RegExp(`[${groupSeparator.join('')}]`, 'g');
945
+ const fractionSeparatorRegexp = new RegExp(`\\${fractionSeparator}`, 'g');
946
+ return value.toString()
947
+ .replace(groupSeparatorRegexp, '')
948
+ .replace(fractionSeparatorRegexp, '.');
949
+ }
950
+ /**
951
+ * Function that parse string and return a number. The string can be in any locale.
952
+ */
953
+ function checkAndNormalizeLocalizedNumber(num) {
954
+ if (num === null || num === undefined) {
955
+ return null;
956
+ }
957
+ /* if some locale input config satisfies pasted number, try to normalise with selected locale config */
958
+ let numberOutput = null;
959
+ const locales = MC_DEFAULT_LOCALE_DATA_FACTORY();
960
+ for (const config of locales.items.map(({ id }) => locales[id].input.number)) {
961
+ const normalized = +normalizeNumber(num, config);
962
+ if (!Number.isNaN(normalized)) {
963
+ numberOutput = normalized;
964
+ break;
965
+ }
966
+ }
967
+ return numberOutput;
968
+ }
770
969
 
771
970
  class McLocaleServiceModule {
772
971
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McLocaleServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -1293,6 +1492,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
1293
1492
  }]
1294
1493
  }] });
1295
1494
 
1495
+ /** Provides a set of validators for file-related form controls. */
1496
+ class FileValidators {
1497
+ /**
1498
+ * Validator that checks if the file size is less than or equal to the provided `maxSize`.
1499
+ *
1500
+ * @param maxSize - The maximum allowed file size in bytes.
1501
+ *
1502
+ * @returns A ValidatorFn function that checks the file size.
1503
+ *
1504
+ * ## Usage:
1505
+ *
1506
+ * ```typescript
1507
+ * const control = new FormControl(null, [FileValidators.maxFileSize(1024 * 1024)]); // 1MB
1508
+ * control.setValue(FILE_LESS_OR_EQUAL_THAN_1MB);
1509
+ * console.log(control.errors); // null
1510
+ * control.setValue(FILE_MORE_THAN_1MB);
1511
+ * console.log(control.errors); // {maxFileSize: { max: 1048576, actual: FILE_MORE_THAN_1MB.size }}
1512
+ * ```
1513
+ */
1514
+ static maxFileSize(maxSize) {
1515
+ return ({ value }) => {
1516
+ if (!value) {
1517
+ return null;
1518
+ }
1519
+ const size = value instanceof File ? value.size : value.file.size;
1520
+ if (size > maxSize) {
1521
+ return { maxFileSize: { max: maxSize, actual: size } };
1522
+ }
1523
+ return null;
1524
+ };
1525
+ }
1526
+ }
1527
+
1296
1528
  /**
1297
1529
  * Injection token that can be used to inject an instances of `McFormField`. It serves
1298
1530
  * as alternative token to the actual `McFormField` class which would cause unnecessary
@@ -2167,6 +2399,10 @@ function objectValues(object) {
2167
2399
  return object === null ? [] : baseValues(object, Object.keys(object));
2168
2400
  }
2169
2401
 
2402
+ /**
2403
+ * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.
2404
+ */
2405
+ const MC_PARENT_POPUP = new InjectionToken('mc-parent-popup');
2170
2406
  var PopUpPlacements;
2171
2407
  (function (PopUpPlacements) {
2172
2408
  PopUpPlacements["Top"] = "top";
@@ -2206,11 +2442,12 @@ var PopUpSizes;
2206
2442
 
2207
2443
  // tslint:disable-next-line:naming-convention
2208
2444
  class McPopUp {
2209
- constructor(changeDetectorRef) {
2210
- this.changeDetectorRef = changeDetectorRef;
2445
+ constructor() {
2211
2446
  this.classMap = {};
2212
2447
  this.visibility = PopUpVisibility.Initial;
2213
2448
  this.visibleChange = new EventEmitter();
2449
+ this.renderer = inject(Renderer2);
2450
+ this.changeDetectorRef = inject(ChangeDetectorRef);
2214
2451
  /** Subject for notifying that the tooltip has been hidden from the view */
2215
2452
  this.onHideSubject = new Subject();
2216
2453
  this.closeOnInteraction = false;
@@ -2294,31 +2531,63 @@ class McPopUp {
2294
2531
  this.hide(0);
2295
2532
  }
2296
2533
  }
2297
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McPopUp, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
2534
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McPopUp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2298
2535
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: McPopUp, ngImport: i0 }); }
2299
2536
  }
2300
2537
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McPopUp, decorators: [{
2301
2538
  type: Directive
2302
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
2539
+ }] });
2303
2540
 
2304
2541
  // tslint:disable: no-unbound-method
2542
+ const getOffset = ({ originX, overlayX, originY, overlayY }, { width, height }, arrowOffset) => {
2543
+ const offset = {};
2544
+ // tslint:disable-next-line:no-magic-numbers
2545
+ const elementWidthHalf = width / 2;
2546
+ // tslint:disable-next-line:no-magic-numbers
2547
+ const elementHeightHalf = height / 2;
2548
+ // alignment should be applied only if the element is small
2549
+ if (arrowOffset > elementWidthHalf) {
2550
+ const PADDING = arrowOffset - elementWidthHalf;
2551
+ if (originX === overlayX) {
2552
+ if (originX === 'start') {
2553
+ offset.offsetX = -PADDING;
2554
+ }
2555
+ if (originX === 'end') {
2556
+ offset.offsetX = PADDING;
2557
+ }
2558
+ }
2559
+ }
2560
+ // alignment should be applied only if the element is small
2561
+ if (arrowOffset > elementHeightHalf) {
2562
+ const PADDING = arrowOffset - elementHeightHalf;
2563
+ if (originY === overlayY) {
2564
+ if (originY === 'top') {
2565
+ offset.offsetY = -PADDING;
2566
+ }
2567
+ if (originY === 'bottom') {
2568
+ offset.offsetY = PADDING;
2569
+ }
2570
+ }
2571
+ }
2572
+ return offset;
2573
+ };
2305
2574
  // tslint:disable-next-line:naming-convention
2306
2575
  class McPopUpTrigger {
2307
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
2308
- this.overlay = overlay;
2309
- this.elementRef = elementRef;
2310
- this.ngZone = ngZone;
2311
- this.scrollDispatcher = scrollDispatcher;
2312
- this.hostView = hostView;
2313
- this.scrollStrategy = scrollStrategy;
2314
- this.direction = direction;
2576
+ constructor() {
2315
2577
  this.isOpen = false;
2316
2578
  this.enterDelay = 0;
2317
2579
  this.leaveDelay = 0;
2580
+ this.overlay = inject(Overlay);
2581
+ this.elementRef = inject(ElementRef);
2582
+ this.ngZone = inject(NgZone);
2583
+ this.scrollDispatcher = inject(ScrollDispatcher);
2584
+ this.hostView = inject(ViewContainerRef);
2585
+ this.direction = inject(Directionality, { optional: true });
2318
2586
  this.placement = PopUpPlacements.Top;
2319
2587
  this.placementPriority = null;
2320
2588
  this.visible = false;
2321
2589
  this.listeners = new Map();
2590
+ this.availablePositions = POSITION_MAP;
2322
2591
  this.destroyed = new Subject();
2323
2592
  this.detach = () => {
2324
2593
  if (this.overlayRef?.hasAttached()) {
@@ -2350,7 +2619,6 @@ class McPopUpTrigger {
2350
2619
  this.removeEventListener = (listener, event) => {
2351
2620
  this.elementRef.nativeElement.removeEventListener(event, listener);
2352
2621
  };
2353
- this.availablePositions = POSITION_MAP;
2354
2622
  }
2355
2623
  ngOnInit() {
2356
2624
  this.initListeners();
@@ -2438,7 +2706,7 @@ class McPopUpTrigger {
2438
2706
  return this.overlayRef;
2439
2707
  }
2440
2708
  // Create connected position strategy that listens for scroll events to reposition.
2441
- const strategy = this.overlay
2709
+ this.strategy = this.overlay
2442
2710
  .position()
2443
2711
  .flexibleConnectedTo(this.elementRef)
2444
2712
  .withTransformOriginOn(this.originSelector)
@@ -2446,13 +2714,13 @@ class McPopUpTrigger {
2446
2714
  .withPositions([...EXTENDED_OVERLAY_POSITIONS])
2447
2715
  .withLockedPosition()
2448
2716
  .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.elementRef));
2449
- strategy.positionChanges
2717
+ this.strategy.positionChanges
2450
2718
  .pipe(takeUntil(this.destroyed))
2451
2719
  .subscribe(this.onPositionChange);
2452
2720
  this.overlayRef = this.overlay.create({
2453
2721
  ...this.overlayConfig,
2454
- direction: this.direction,
2455
- positionStrategy: strategy,
2722
+ direction: this.direction || undefined,
2723
+ positionStrategy: this.strategy,
2456
2724
  scrollStrategy: this.scrollStrategy()
2457
2725
  });
2458
2726
  this.subscribeOnClosingActions();
@@ -2461,6 +2729,9 @@ class McPopUpTrigger {
2461
2729
  .subscribe(this.detach);
2462
2730
  return this.overlayRef;
2463
2731
  }
2732
+ resetOrigin() {
2733
+ this.strategy.setOrigin(this.elementRef);
2734
+ }
2464
2735
  initListeners() {
2465
2736
  this.clearListeners();
2466
2737
  if (this.trigger.includes(PopUpTriggers.Click)) {
@@ -2493,12 +2764,21 @@ class McPopUpTrigger {
2493
2764
  this.overlayRef = this.createOverlay();
2494
2765
  this.subscribeOnClosingActions();
2495
2766
  const position = this.overlayRef.getConfig().positionStrategy
2496
- .withPositions(this.getPrioritizedPositions())
2767
+ .withPositions(this.getAdjustedPositions())
2497
2768
  .withPush(true);
2498
2769
  if (reapplyPosition) {
2499
2770
  setTimeout(() => position.reapplyLastPosition());
2500
2771
  }
2501
2772
  }
2773
+ /**
2774
+ * Returns a list of positions that are aligned with the element's dimensions and offsets.
2775
+ */
2776
+ getAdjustedPositions() {
2777
+ return this.getPrioritizedPositions().map((pos) => ({
2778
+ ...pos,
2779
+ ...getOffset(pos, this.elementRef.nativeElement.getBoundingClientRect(), this.arrowOffset)
2780
+ }));
2781
+ }
2502
2782
  getPriorityPlacementStrategy(value) {
2503
2783
  const result = [];
2504
2784
  const possiblePositions = Object.keys(this.availablePositions);
@@ -2527,12 +2807,18 @@ class McPopUpTrigger {
2527
2807
  createListener(name, listener) {
2528
2808
  return [
2529
2809
  name,
2530
- () => {
2810
+ (event) => {
2531
2811
  this.triggerName = name;
2812
+ this.saveMouseEvent(event);
2532
2813
  return listener.call(this);
2533
2814
  }
2534
2815
  ];
2535
2816
  }
2817
+ saveMouseEvent(event) {
2818
+ if (this.triggerName === 'mouseenter') {
2819
+ this.mouseEvent = event;
2820
+ }
2821
+ }
2536
2822
  subscribeOnClosingActions() {
2537
2823
  this.closingActionsSubscription?.unsubscribe();
2538
2824
  this.closingActionsSubscription = this.closingActions()
@@ -2545,12 +2831,12 @@ class McPopUpTrigger {
2545
2831
  this.hide();
2546
2832
  });
2547
2833
  }
2548
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McPopUpTrigger, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
2834
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McPopUpTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2549
2835
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: McPopUpTrigger, ngImport: i0 }); }
2550
2836
  }
2551
2837
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McPopUpTrigger, decorators: [{
2552
2838
  type: Directive
2553
- }], ctorParameters: () => [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined }, { type: i2$1.Directionality }] });
2839
+ }] });
2554
2840
 
2555
2841
  const selectEvents = 'selectEvents';
2556
2842
 
@@ -2872,11 +3158,11 @@ const validationTooltipShowDelay = 10;
2872
3158
  const validationTooltipHideDelay = 3000;
2873
3159
  const MC_VALIDATION = new InjectionToken('McUseValidation', { factory: () => ({ useValidation: true }) });
2874
3160
 
2875
- const VERSION = new Version('17.3.0+sha-140375c');
3161
+ const VERSION = new Version('17.4.0+sha-0f6e593');
2876
3162
 
2877
3163
  /**
2878
3164
  * Generated bundle index. Do not edit.
2879
3165
  */
2880
3166
 
2881
- export { AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterPipe, AnimationCurves, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, DateAdapter, DateFormatter, EXTENDED_OVERLAY_POSITIONS, ErrorStateMatcher, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, MC_CUSTOM_SCROLL_STRATEGY_PROVIDER, MC_DATE_FORMATS, MC_DATE_LOCALE, MC_DATE_LOCALE_FACTORY, MC_DEFAULT_LOCALE_DATA_FACTORY, MC_DEFAULT_LOCALE_ID, MC_FORM_FIELD_REF, MC_LABEL_GLOBAL_OPTIONS, MC_LOCALE_DATA, MC_LOCALE_ID, MC_LOCALE_SERVICE, MC_NUMBER_FORMATTER_DEFAULT_OPTIONS, MC_NUMBER_FORMATTER_OPTIONS, MC_OPTION_ACTION_PARENT, MC_OPTION_PARENT_COMPONENT, MC_PARENT_ANIMATION_COMPONENT, MC_SANITY_CHECKS, MC_SELECT_SCROLL_STRATEGY, MC_SELECT_SCROLL_STRATEGY_PROVIDER, MC_TITLE_TEXT_REF, MC_VALIDATION, McCommonModule, McDataSizeModule, McDataSizePipe, McDecimalPipe, McForm, McFormElement, McFormattersModule, McFormsModule, McHighlightModule, McHighlightPipe, McLine, McLineModule, McLineSetter, McLocaleService, McLocaleServiceModule, McMeasureScrollbarService, McOptgroup, McOptgroupBase, McOptgroupMixinBase, McOption, McOptionActionBase, McOptionActionComponent, McOptionActionMixinBase, McOptionBase, McOptionModule, McOptionSelectionChange, McPopUp, McPopUpTrigger, McPseudoCheckbox, McPseudoCheckboxBase, McPseudoCheckboxMixinBase, McPseudoCheckboxModule, McRoundDecimalPipe, McSelectFooter, McSelectMatcher, McSelectSearch, McSelectSearchEmptyResult, McSelectTrigger, McTableNumberPipe, McVirtualOption, MeasurementSystem, MultipleMode, NUMBER_FORMAT_REGEXP, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterPipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterPipe, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, ShowOnDirtyErrorStateMatcher, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, ThemePalette, VERSION, countGroupLabelsBeforeOption, escapeRegExp, fadeAnimation, formatDataSize, getHumanizedBytes, getMcSelectDynamicMultipleError, getMcSelectNonArrayValueError, getMcSelectNonFunctionValueError, getOptionScrollPosition, isBoolean, isWithin, mcSelectAnimations, mcSelectScrollStrategyProviderFactory, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, selectEvents, sizeUnitsConfig, toBoolean, validationTooltipHideDelay, validationTooltipShowDelay };
3167
+ export { AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterPipe, AnimationCurves, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, DateAdapter, DateFormatter, EXTENDED_OVERLAY_POSITIONS, ErrorStateMatcher, FileValidators, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, MC_CUSTOM_SCROLL_STRATEGY_PROVIDER, MC_DATE_FORMATS, MC_DATE_LOCALE, MC_DATE_LOCALE_FACTORY, MC_DEFAULT_LOCALE_DATA_FACTORY, MC_DEFAULT_LOCALE_ID, MC_FORM_FIELD_REF, MC_LABEL_GLOBAL_OPTIONS, MC_LOCALE_DATA, MC_LOCALE_ID, MC_LOCALE_SERVICE, MC_NUMBER_FORMATTER_DEFAULT_OPTIONS, MC_NUMBER_FORMATTER_OPTIONS, MC_OPTION_ACTION_PARENT, MC_OPTION_PARENT_COMPONENT, MC_PARENT_ANIMATION_COMPONENT, MC_PARENT_POPUP, MC_SANITY_CHECKS, MC_SELECT_SCROLL_STRATEGY, MC_SELECT_SCROLL_STRATEGY_PROVIDER, MC_TITLE_TEXT_REF, MC_VALIDATION, McCommonModule, McDataSizeModule, McDataSizePipe, McDecimalPipe, McForm, McFormElement, McFormattersModule, McFormsModule, McHighlightModule, McHighlightPipe, McLine, McLineModule, McLineSetter, McLocaleService, McLocaleServiceModule, McMeasureScrollbarService, McOptgroup, McOptgroupBase, McOptgroupMixinBase, McOption, McOptionActionBase, McOptionActionComponent, McOptionActionMixinBase, McOptionBase, McOptionModule, McOptionSelectionChange, McPopUp, McPopUpTrigger, McPseudoCheckbox, McPseudoCheckboxBase, McPseudoCheckboxMixinBase, McPseudoCheckboxModule, McRoundDecimalPipe, McSelectFooter, McSelectMatcher, McSelectSearch, McSelectSearchEmptyResult, McSelectTrigger, McTableNumberPipe, McVirtualOption, MeasurementSystem, MultipleMode, NUMBER_FORMAT_REGEXP, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterPipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterPipe, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, ShowOnDirtyErrorStateMatcher, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, ThemePalette, VERSION, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, enUSLocaleData, esLALocaleData, escapeRegExp, faIRLocaleData, fadeAnimation, formatDataSize, getHumanizedBytes, getMcSelectDynamicMultipleError, getMcSelectNonArrayValueError, getMcSelectNonFunctionValueError, getOptionScrollPosition, isBoolean, isWithin, mcSelectAnimations, mcSelectScrollStrategyProviderFactory, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, ptBRLocaleData, ruRULocaleData, selectEvents, sizeUnitsConfig, tkTMLocaleData, toBoolean, validationTooltipHideDelay, validationTooltipShowDelay, znCNLocaleData };
2882
3168
  //# sourceMappingURL=ptsecurity-mosaic-core.mjs.map