@bravura/ui 6.1.0 → 7.0.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 (128) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +58 -57
  3. package/alert/index.d.ts +126 -3
  4. package/alert/testing/index.d.ts +28 -5
  5. package/behavior/index.d.ts +231 -3
  6. package/clip-note/index.d.ts +125 -3
  7. package/common/index.d.ts +24 -3
  8. package/currency-input/index.d.ts +69 -3
  9. package/decimal-input/index.d.ts +39 -3
  10. package/discrete-input/index.d.ts +139 -3
  11. package/fesm2022/bravura-ui-alert.mjs +18 -21
  12. package/fesm2022/bravura-ui-alert.mjs.map +1 -1
  13. package/fesm2022/bravura-ui-behavior.mjs +18 -18
  14. package/fesm2022/bravura-ui-behavior.mjs.map +1 -1
  15. package/fesm2022/bravura-ui-clip-note.mjs +10 -10
  16. package/fesm2022/bravura-ui-clip-note.mjs.map +1 -1
  17. package/fesm2022/bravura-ui-common.mjs +5 -6
  18. package/fesm2022/bravura-ui-common.mjs.map +1 -1
  19. package/fesm2022/bravura-ui-currency-input.mjs +7 -7
  20. package/fesm2022/bravura-ui-currency-input.mjs.map +1 -1
  21. package/fesm2022/bravura-ui-decimal-input.mjs +7 -7
  22. package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -1
  23. package/fesm2022/bravura-ui-discrete-input.mjs +10 -11
  24. package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -1
  25. package/fesm2022/bravura-ui-file-upload.mjs +18 -18
  26. package/fesm2022/bravura-ui-file-upload.mjs.map +1 -1
  27. package/fesm2022/bravura-ui-form-field.mjs +10 -10
  28. package/fesm2022/bravura-ui-form-field.mjs.map +1 -1
  29. package/fesm2022/bravura-ui-icon-font.mjs +7 -7
  30. package/fesm2022/bravura-ui-icon-font.mjs.map +1 -1
  31. package/fesm2022/bravura-ui-panel.mjs +16 -16
  32. package/fesm2022/bravura-ui-panel.mjs.map +1 -1
  33. package/fesm2022/bravura-ui-phone-number.mjs +13 -13
  34. package/fesm2022/bravura-ui-phone-number.mjs.map +1 -1
  35. package/fesm2022/bravura-ui-radio-panel.mjs +12 -14
  36. package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -1
  37. package/fesm2022/bravura-ui-selection-panel.mjs +11 -11
  38. package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -1
  39. package/fesm2022/bravura-ui-skeletons.mjs +10 -10
  40. package/fesm2022/bravura-ui-skeletons.mjs.map +1 -1
  41. package/fesm2022/bravura-ui-stepper.mjs +18 -18
  42. package/fesm2022/bravura-ui-stepper.mjs.map +1 -1
  43. package/fesm2022/bravura-ui-tooltip.mjs +13 -13
  44. package/fesm2022/bravura-ui-tooltip.mjs.map +1 -1
  45. package/file-upload/index.d.ts +200 -3
  46. package/form-field/index.d.ts +49 -3
  47. package/icon-font/index.d.ts +79 -3
  48. package/index.d.ts +3 -5
  49. package/package.json +24 -24
  50. package/panel/index.d.ts +107 -3
  51. package/phone-number/index.d.ts +108 -3
  52. package/radio-panel/index.d.ts +71 -3
  53. package/radio-panel/testing/index.d.ts +32 -5
  54. package/selection-panel/index.d.ts +149 -3
  55. package/skeletons/index.d.ts +79 -3
  56. package/stepper/index.d.ts +106 -3
  57. package/tooltip/index.d.ts +83 -3
  58. package/alert/alert-container.component.d.ts +0 -71
  59. package/alert/alert-message.component.d.ts +0 -47
  60. package/alert/alert.module.d.ts +0 -14
  61. package/alert/public-api.d.ts +0 -1
  62. package/alert/testing/test-api.d.ts +0 -24
  63. package/behavior/await.directive.d.ts +0 -71
  64. package/behavior/behavior.module.d.ts +0 -17
  65. package/behavior/observe-content-class.directive.d.ts +0 -29
  66. package/behavior/public-api.d.ts +0 -5
  67. package/behavior/sizing-monitor.directive.d.ts +0 -23
  68. package/behavior/sizing.directive.d.ts +0 -98
  69. package/clip-note/clip-note.component.d.ts +0 -45
  70. package/clip-note/clip-note.directive.d.ts +0 -69
  71. package/clip-note/clip-note.module.d.ts +0 -19
  72. package/clip-note/public-api.d.ts +0 -1
  73. package/common/common-utils.d.ts +0 -11
  74. package/common/common.module.d.ts +0 -11
  75. package/common/public-api.d.ts +0 -2
  76. package/currency-input/currency-input.directive.d.ts +0 -62
  77. package/currency-input/currency-input.module.d.ts +0 -10
  78. package/currency-input/public-api.d.ts +0 -1
  79. package/decimal-input/decimal-input.directive.d.ts +0 -32
  80. package/decimal-input/decimal-input.module.d.ts +0 -10
  81. package/decimal-input/public-api.d.ts +0 -1
  82. package/discrete-input/discrete-input.component.d.ts +0 -128
  83. package/discrete-input/discrete-input.module.d.ts +0 -11
  84. package/discrete-input/public-api.d.ts +0 -2
  85. package/file-upload/file-upload.component.d.ts +0 -148
  86. package/file-upload/file-upload.module.d.ts +0 -14
  87. package/file-upload/file-upload.service.d.ts +0 -42
  88. package/file-upload/public-api.d.ts +0 -6
  89. package/form-field/form-field.component.d.ts +0 -39
  90. package/form-field/form-field.module.d.ts +0 -13
  91. package/form-field/public-api.d.ts +0 -2
  92. package/icon-font/icon-font.module.d.ts +0 -12
  93. package/icon-font/icon.directive.d.ts +0 -46
  94. package/icon-font/public-api.d.ts +0 -3
  95. package/icon-font/utilities.d.ts +0 -20
  96. package/panel/panel-section.component.d.ts +0 -15
  97. package/panel/panel.component.d.ts +0 -60
  98. package/panel/panel.module.d.ts +0 -16
  99. package/panel/public-api.d.ts +0 -1
  100. package/panel/tinted.directive.d.ts +0 -26
  101. package/phone-number/phone-number.directive.d.ts +0 -66
  102. package/phone-number/phone-number.module.d.ts +0 -17
  103. package/phone-number/phone-number.pipe.d.ts +0 -13
  104. package/phone-number/phone-number.validator.d.ts +0 -31
  105. package/phone-number/public-api.d.ts +0 -1
  106. package/public-api.d.ts +0 -1
  107. package/radio-panel/public-api.d.ts +0 -3
  108. package/radio-panel/radio-panel-item.component.d.ts +0 -22
  109. package/radio-panel/radio-panel.component.d.ts +0 -38
  110. package/radio-panel/radio-panel.module.d.ts +0 -15
  111. package/radio-panel/testing/test-api.d.ts +0 -27
  112. package/selection-panel/public-api.d.ts +0 -3
  113. package/selection-panel/selection-panel-item.component.d.ts +0 -77
  114. package/selection-panel/selection-panel.directive.d.ts +0 -67
  115. package/selection-panel/selection-panel.module.d.ts +0 -13
  116. package/skeletons/public-api.d.ts +0 -3
  117. package/skeletons/skeleton-loader-presets.directive.d.ts +0 -23
  118. package/skeletons/skeleton-loader.component.d.ts +0 -44
  119. package/skeletons/skeletons.module.d.ts +0 -16
  120. package/stepper/public-api.d.ts +0 -3
  121. package/stepper/step-label-top.directive.d.ts +0 -17
  122. package/stepper/stepper-animation.d.ts +0 -6
  123. package/stepper/stepper.component.d.ts +0 -75
  124. package/stepper/stepper.module.d.ts +0 -17
  125. package/tooltip/public-api.d.ts +0 -3
  126. package/tooltip/tooltip.component.d.ts +0 -26
  127. package/tooltip/tooltip.directive.d.ts +0 -48
  128. package/tooltip/tooltip.module.d.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-clip-note.mjs","sources":["../../../projects/ui/clip-note/clip-note.component.ts","../../../projects/ui/clip-note/clip-note.component.html","../../../projects/ui/clip-note/clip-note.directive.ts","../../../projects/ui/clip-note/clip-note.module.ts","../../../projects/ui/clip-note/bravura-ui-clip-note.ts"],"sourcesContent":["import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tEmbeddedViewRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tTemplateRef,\r\n\tViewChild,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'bui-clip-note',\r\n\ttemplateUrl: './clip-note.component.html',\r\n\tstyleUrls: ['./clip-note.component.scss'],\r\n\thost: { class: 'bui-clip-note bui-host' },\r\n\tanimations: [\r\n\t\ttrigger('buttonAnimation', [\r\n\t\t\tstate('*', style({ width: '36px', minWidth: 0, padding: 0 })),\r\n\t\t\tstate('active', style({})),\r\n\t\t\ttransition('inactive <=> active', [\r\n\t\t\t\tgroup([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),\r\n\t\t\t\tquery('@buttonIconAnimation', animateChild())\r\n\t\t\t])\r\n\t\t]),\r\n\t\ttrigger('buttonTextAnimation', [\r\n\t\t\tstate('inactive', style({ opacity: 0, width: 0 })),\r\n\t\t\tstate('active', style({ opacity: 1 })),\r\n\t\t\ttransition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),\r\n\t\t\ttransition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))\r\n\t\t]),\r\n\t\ttrigger('buttonIconAnimation', [\r\n\t\t\tstate('active-ltr', style({ transform: 'rotate(-90deg)' })),\r\n\t\t\tstate('active-rtl', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-ltr', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-rtl', style({ transform: 'rotate(270deg)' })),\r\n\t\t\tstate('inactive', style({})),\r\n\t\t\ttransition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\r\n\t\t]),\r\n\t\ttrigger('panelAnimation', [\r\n\t\t\tstate('open', style({})),\r\n\t\t\tstate('closed-rtl', style({ transform: 'scale(0) translate(-80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\tstate('closed-ltr', style({ transform: 'scale(0) translate(80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\ttransition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))\r\n\t\t])\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteComponent implements OnInit, OnDestroy {\r\n\tbuttonText = '';\r\n\r\n\tget buttonState(): string {\r\n\t\tif (this._hovering || this.panelState === 'open') {\r\n\t\t\treturn 'active';\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tget buttonIconState(): string {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\treturn `open-${this.direction}`;\r\n\t\t}\r\n\t\tif (this.buttonState === 'active') {\r\n\t\t\treturn `active-${this.direction}`;\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tpanelState: 'open' | 'closed-ltr' | 'closed-rtl' = 'closed-ltr';\r\n\r\n\tdirection = 'ltr';\r\n\t_contentView?: EmbeddedViewRef<any>;\r\n\t_content?: string;\r\n\t_color: ThemePalette;\r\n\t_buttonAnimating = false;\r\n\t_icon?: string;\r\n\t_hasContent = false;\r\n\r\n\treadonly opened = new EventEmitter<void>();\r\n\treadonly closed = new EventEmitter<void>();\r\n\r\n\tprivate _hovering = false;\r\n\tprivate _destroyed$ = new Subject<void>();\r\n\tprivate _toggleQueue: boolean[] = [];\r\n\r\n\t@ViewChild('viewDiv', { static: true, read: ElementRef })\r\n\tprivate _viewDiv!: ElementRef<HTMLDivElement>;\r\n\r\n\t@ViewChild('noteViewRef', { static: true, read: ViewContainerRef })\r\n\tprivate _noteViewRef!: ViewContainerRef;\r\n\r\n\t@ViewChild('fallbackTemplate', { static: true })\r\n\tprivate _fallbackTemplate!: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\tprivate _cd: ChangeDetectorRef,\r\n\t\tprivate _dir: Directionality,\r\n\t\t@Host() private _elemRef: ElementRef<HTMLElement>\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tconst changeDir = () => {\r\n\t\t\tthis.direction = this._dir.value;\r\n\t\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t};\r\n\t\tthis._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(changeDir);\r\n\t\tchangeDir();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._destroyed$.next();\r\n\t\tthis._destroyed$.complete();\r\n\t}\r\n\r\n\t_mouseOverButton(hovering: boolean) {\r\n\t\tif (this._hovering !== hovering) {\r\n\t\t\tthis._hovering = hovering;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tthis.panelState = this.panelState === `closed-${this.direction}` ? 'open' : (`closed-${this.direction}` as any);\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_scheduleToggle() {\r\n\t\tif (this._buttonAnimating) {\r\n\t\t\tthis._toggleQueue.push(true);\r\n\t\t} else {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t_checkToggle() {\r\n\t\tif (this._toggleQueue.pop()) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.panelState = 'open';\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\t_emit() {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\tthis.opened.emit();\r\n\t\t} else {\r\n\t\t\tthis.closed.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t_contentChanged(content?: string | TemplateRef<any>) {\r\n\t\tlet template: TemplateRef<any>;\r\n\r\n\t\tif (content instanceof TemplateRef) {\r\n\t\t\ttemplate = content;\r\n\t\t} else {\r\n\t\t\ttemplate = this._fallbackTemplate;\r\n\t\t\tthis._content = content;\r\n\t\t}\r\n\t\tthis._noteViewRef.clear();\r\n\t\tconst context = {};\r\n\t\tthis._contentView = this._noteViewRef.createEmbeddedView(template, context);\r\n\t\tthis._checkContent(true);\r\n\t}\r\n\r\n\t_checkContent(initial?: boolean) {\r\n\t\tthis._contentView?.detectChanges();\r\n\t\tthis._hasContent = !!this._viewDiv.nativeElement.textContent?.trim();\r\n\t\tconst classList = this._elemRef.nativeElement.classList;\r\n\t\tconst cls = 'bui-clip-note-hidden';\r\n\t\tconst cls1 = 'bui-clip-note-reveal';\r\n\t\tif (this._hasContent) {\r\n\t\t\tclassList.remove(cls);\r\n\t\t\tif (!initial && this.panelState !== 'open') {\r\n\t\t\t\tclassList.add(cls1);\r\n\t\t\t}\r\n\t\t\tthis._elemRef.nativeElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\r\n\t\t} else {\r\n\t\t\tclassList.add(cls);\r\n\t\t\tclassList.remove(cls1);\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t}\r\n\r\n\t_assignColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonText(text: string) {\r\n\t\tthis.buttonText = text;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonIcon(icon?: string) {\r\n\t\tthis._icon = icon;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n}\r\n","<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\">&nbsp; {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n","import {\r\n\tAfterViewInit,\r\n\tComponentRef,\r\n\tDirective,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tOutput,\r\n\tTemplateRef,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\n\r\nexport interface ClipNoteDefaultConfig {\r\n\tcolor: ThemePalette;\r\n\tcaption: string;\r\n}\r\n\r\n/** Used to provide default config for clip notes. */\r\nexport const CLIP_NOTE_DEFAULT_CONFIG = new InjectionToken<ClipNoteDefaultConfig>('bui-clip-note.default-config', {\r\n\tfactory: () => ({ color: 'primary', caption: 'More info' })\r\n});\r\n\r\n/**\r\n * A clip note consists of a toggle button and a floating 'notepad' element, attached to the top end of the host element's\r\n * viewable area. The 'notepad' normally collapses away and only reveals itself when the toggle button is active.\r\n *\r\n * The toggle button clips on the edge of the host element and expands to display the full caption when hovered. It hides itself\r\n * automatically when there is no content provided via the `buiClipNote` property of the directive.\r\n *\r\n * The clip note component is suitable for large page container elements with visible boundaries. It can present contextual\r\n * information regarding and in addition to the content displayed in the main view area.\r\n *\r\n * The properties `buiClipNoteColor` and `buiClipNoteCaption` customise the appearance of the clip note, the default values of which\r\n * can optionally be provided by the `ClipNoteModule.forConfig()` method.\r\n *\r\n */\r\n@Directive({\r\n\tselector: '[buiClipNote]',\r\n\texportAs: 'buiClipNote',\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteDirective implements AfterViewInit {\r\n\t/**\r\n\t * Provide content to the clip note's floating notepad element.\r\n\t * It accepts a `string` of HTML content or a `TemplateRef` object.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNote(): string | TemplateRef<any> | undefined {\r\n\t\treturn this._content;\r\n\t}\r\n\tset buiClipNote(note: string | TemplateRef<any> | undefined) {\r\n\t\tthis._content = note;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._processContent();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the theme color alias.\r\n\t * @default 'primary'\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteColor(): ThemePalette {\r\n\t\treturn this._color;\r\n\t}\r\n\tset buiClipNoteColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the icon on the toggle button. With this property specified, the animation on the icon\r\n\t * will not be active.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteIcon(): string | undefined {\r\n\t\treturn this._icon;\r\n\t}\r\n\tset buiClipNoteIcon(icon: string | undefined) {\r\n\t\tthis._icon = icon;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The caption of the toggle button when expanded.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteCaption(): string {\r\n\t\treturn this._caption;\r\n\t}\r\n\tset buiClipNoteCaption(text: string) {\r\n\t\tthis._caption = text;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Emits when the panel opens */\r\n\t@Output()\r\n\treadonly buiClipNoteOpened = new EventEmitter<void>();\r\n\r\n\t/** Emits when the panel closes */\r\n\t@Output()\r\n\treadonly buiClipNoteClosed = new EventEmitter<void>();\r\n\r\n\tprivate _content?: string | TemplateRef<any>;\r\n\tprivate _color: ThemePalette = 'primary';\r\n\tprivate _compRef!: ComponentRef<ClipNoteComponent>;\r\n\tprivate _caption: string;\r\n\tprivate _icon?: string;\r\n\r\n\tconstructor(\r\n\t\t@Host() private _elementRef: ElementRef<HTMLElement>,\r\n\t\tprivate _vc: ViewContainerRef,\r\n\t\t@Inject(CLIP_NOTE_DEFAULT_CONFIG) _config: ClipNoteDefaultConfig\r\n\t) {\r\n\t\tthis._caption = _config.caption;\r\n\t\tthis._color = _config.color;\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._compRef = this._vc.createComponent(ClipNoteComponent);\r\n\t\t\tconst childElement: HTMLElement = this._compRef.location.nativeElement;\r\n\t\t\tconst element = this._elementRef.nativeElement;\r\n\t\t\telement.style.position = 'relative';\r\n\t\t\telement.appendChild(childElement);\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t\tthis._compRef.instance.opened.subscribe(this.buiClipNoteOpened.next.bind(this.buiClipNoteOpened));\r\n\t\t\tthis._compRef.instance.closed.subscribe(this.buiClipNoteClosed.next.bind(this.buiClipNoteClosed));\r\n\t\t\tthis._processContent();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._compRef.destroy();\r\n\t}\r\n\r\n\t/** Open the note panel */\r\n\topen() {\r\n\t\tthis._compRef.instance.open();\r\n\t}\r\n\r\n\t/** Close the note panel */\r\n\tclose() {\r\n\t\tthis._compRef.instance.close();\r\n\t}\r\n\r\n\tprivate _processContent() {\r\n\t\tthis._compRef.instance._contentChanged(this._content);\r\n\t}\r\n}\r\n","import { BidiModule } from '@angular/cdk/bidi';\r\nimport { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BuiCommonModule } from '@bravura/ui/common';\r\nimport { IconFontModule } from '@bravura/ui/icon-font';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\nimport { ClipNoteDefaultConfig, ClipNoteDirective, CLIP_NOTE_DEFAULT_CONFIG } from './clip-note.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [ClipNoteComponent, ClipNoteDirective],\r\n\timports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule],\r\n\texports: [ClipNoteDirective]\r\n})\r\nexport class ClipNoteModule {\r\n\tstatic forConfig(config: ClipNoteDefaultConfig): ModuleWithProviders<ClipNoteModule> {\r\n\t\treturn {\r\n\t\t\tngModule: ClipNoteModule,\r\n\t\t\tproviders: [{ provide: CLIP_NOTE_DEFAULT_CONFIG, useValue: config }]\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport { ClipNoteDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-clip-note.mjs","sources":["../../../projects/ui/clip-note/clip-note.component.ts","../../../projects/ui/clip-note/clip-note.component.html","../../../projects/ui/clip-note/clip-note.directive.ts","../../../projects/ui/clip-note/clip-note.module.ts","../../../projects/ui/clip-note/bravura-ui-clip-note.ts"],"sourcesContent":["import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tEmbeddedViewRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tTemplateRef,\r\n\tViewChild,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'bui-clip-note',\r\n\ttemplateUrl: './clip-note.component.html',\r\n\tstyleUrls: ['./clip-note.component.scss'],\r\n\thost: { class: 'bui-clip-note bui-host' },\r\n\tanimations: [\r\n\t\ttrigger('buttonAnimation', [\r\n\t\t\tstate('*', style({ width: '36px', minWidth: 0, padding: 0 })),\r\n\t\t\tstate('active', style({})),\r\n\t\t\ttransition('inactive <=> active', [\r\n\t\t\t\tgroup([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),\r\n\t\t\t\tquery('@buttonIconAnimation', animateChild())\r\n\t\t\t])\r\n\t\t]),\r\n\t\ttrigger('buttonTextAnimation', [\r\n\t\t\tstate('inactive', style({ opacity: 0, width: 0 })),\r\n\t\t\tstate('active', style({ opacity: 1 })),\r\n\t\t\ttransition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),\r\n\t\t\ttransition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))\r\n\t\t]),\r\n\t\ttrigger('buttonIconAnimation', [\r\n\t\t\tstate('active-ltr', style({ transform: 'rotate(-90deg)' })),\r\n\t\t\tstate('active-rtl', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-ltr', style({ transform: 'rotate(90deg)' })),\r\n\t\t\tstate('open-rtl', style({ transform: 'rotate(270deg)' })),\r\n\t\t\tstate('inactive', style({})),\r\n\t\t\ttransition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\r\n\t\t]),\r\n\t\ttrigger('panelAnimation', [\r\n\t\t\tstate('open', style({})),\r\n\t\t\tstate('closed-rtl', style({ transform: 'scale(0) translate(-80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\tstate('closed-ltr', style({ transform: 'scale(0) translate(80%, -70%)', padding: 0, opacity: 0 })),\r\n\t\t\ttransition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))\r\n\t\t])\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteComponent implements OnInit, OnDestroy {\r\n\tbuttonText = '';\r\n\r\n\tget buttonState(): string {\r\n\t\tif (this._hovering || this.panelState === 'open') {\r\n\t\t\treturn 'active';\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tget buttonIconState(): string {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\treturn `open-${this.direction}`;\r\n\t\t}\r\n\t\tif (this.buttonState === 'active') {\r\n\t\t\treturn `active-${this.direction}`;\r\n\t\t}\r\n\t\treturn 'inactive';\r\n\t}\r\n\r\n\tpanelState: 'open' | 'closed-ltr' | 'closed-rtl' = 'closed-ltr';\r\n\r\n\tdirection = 'ltr';\r\n\t_contentView?: EmbeddedViewRef<any>;\r\n\t_content?: string;\r\n\t_color: ThemePalette;\r\n\t_buttonAnimating = false;\r\n\t_icon?: string;\r\n\t_hasContent = false;\r\n\r\n\treadonly opened = new EventEmitter<void>();\r\n\treadonly closed = new EventEmitter<void>();\r\n\r\n\tprivate _hovering = false;\r\n\tprivate _destroyed$ = new Subject<void>();\r\n\tprivate _toggleQueue: boolean[] = [];\r\n\r\n\t@ViewChild('viewDiv', { static: true, read: ElementRef })\r\n\tprivate _viewDiv!: ElementRef<HTMLDivElement>;\r\n\r\n\t@ViewChild('noteViewRef', { static: true, read: ViewContainerRef })\r\n\tprivate _noteViewRef!: ViewContainerRef;\r\n\r\n\t@ViewChild('fallbackTemplate', { static: true })\r\n\tprivate _fallbackTemplate!: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\tprivate _cd: ChangeDetectorRef,\r\n\t\tprivate _dir: Directionality,\r\n\t\t@Host() private _elemRef: ElementRef<HTMLElement>\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tconst changeDir = () => {\r\n\t\t\tthis.direction = this._dir.value;\r\n\t\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t};\r\n\t\tthis._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(changeDir);\r\n\t\tchangeDir();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._destroyed$.next();\r\n\t\tthis._destroyed$.complete();\r\n\t}\r\n\r\n\t_mouseOverButton(hovering: boolean) {\r\n\t\tif (this._hovering !== hovering) {\r\n\t\t\tthis._hovering = hovering;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tthis.panelState = this.panelState === `closed-${this.direction}` ? 'open' : (`closed-${this.direction}` as any);\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_scheduleToggle() {\r\n\t\tif (this._buttonAnimating) {\r\n\t\t\tthis._toggleQueue.push(true);\r\n\t\t} else {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t_checkToggle() {\r\n\t\tif (this._toggleQueue.pop()) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.panelState = 'open';\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.panelState = `closed-${this.direction}` as any;\r\n\t\tthis._cd.markForCheck();\r\n\t\tthis._emit();\r\n\t}\r\n\r\n\t_emit() {\r\n\t\tif (this.panelState === 'open') {\r\n\t\t\tthis.opened.emit();\r\n\t\t} else {\r\n\t\t\tthis.closed.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t_contentChanged(content?: string | TemplateRef<any>) {\r\n\t\tlet template: TemplateRef<any>;\r\n\r\n\t\tif (content instanceof TemplateRef) {\r\n\t\t\ttemplate = content;\r\n\t\t} else {\r\n\t\t\ttemplate = this._fallbackTemplate;\r\n\t\t\tthis._content = content;\r\n\t\t}\r\n\t\tthis._noteViewRef.clear();\r\n\t\tconst context = {};\r\n\t\tthis._contentView = this._noteViewRef.createEmbeddedView(template, context);\r\n\t\tthis._checkContent(true);\r\n\t}\r\n\r\n\t_checkContent(initial?: boolean) {\r\n\t\tthis._contentView?.detectChanges();\r\n\t\tthis._hasContent = !!this._viewDiv.nativeElement.textContent?.trim();\r\n\t\tconst classList = this._elemRef.nativeElement.classList;\r\n\t\tconst cls = 'bui-clip-note-hidden';\r\n\t\tconst cls1 = 'bui-clip-note-reveal';\r\n\t\tif (this._hasContent) {\r\n\t\t\tclassList.remove(cls);\r\n\t\t\tif (!initial && this.panelState !== 'open') {\r\n\t\t\t\tclassList.add(cls1);\r\n\t\t\t}\r\n\t\t\tthis._elemRef.nativeElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\r\n\t\t} else {\r\n\t\t\tclassList.add(cls);\r\n\t\t\tclassList.remove(cls1);\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t}\r\n\r\n\t_assignColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonText(text: string) {\r\n\t\tthis.buttonText = text;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t_assignButtonIcon(icon?: string) {\r\n\t\tthis._icon = icon;\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n}\r\n","<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\">&nbsp; {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n","import {\r\n\tAfterViewInit,\r\n\tComponentRef,\r\n\tDirective,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHost,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tOutput,\r\n\tTemplateRef,\r\n\tViewContainerRef\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\n\r\nexport interface ClipNoteDefaultConfig {\r\n\tcolor: ThemePalette;\r\n\tcaption: string;\r\n}\r\n\r\n/** Used to provide default config for clip notes. */\r\nexport const CLIP_NOTE_DEFAULT_CONFIG = new InjectionToken<ClipNoteDefaultConfig>('bui-clip-note.default-config', {\r\n\tfactory: () => ({ color: 'primary', caption: 'More info' })\r\n});\r\n\r\n/**\r\n * A clip note consists of a toggle button and a floating 'notepad' element, attached to the top end of the host element's\r\n * viewable area. The 'notepad' normally collapses away and only reveals itself when the toggle button is active.\r\n *\r\n * The toggle button clips on the edge of the host element and expands to display the full caption when hovered. It hides itself\r\n * automatically when there is no content provided via the `buiClipNote` property of the directive.\r\n *\r\n * The clip note component is suitable for large page container elements with visible boundaries. It can present contextual\r\n * information regarding and in addition to the content displayed in the main view area.\r\n *\r\n * The properties `buiClipNoteColor` and `buiClipNoteCaption` customise the appearance of the clip note, the default values of which\r\n * can optionally be provided by the `ClipNoteModule.forConfig()` method.\r\n *\r\n */\r\n@Directive({\r\n\tselector: '[buiClipNote]',\r\n\texportAs: 'buiClipNote',\r\n\tstandalone: false\r\n})\r\nexport class ClipNoteDirective implements AfterViewInit {\r\n\t/**\r\n\t * Provide content to the clip note's floating notepad element.\r\n\t * It accepts a `string` of HTML content or a `TemplateRef` object.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNote(): string | TemplateRef<any> | undefined {\r\n\t\treturn this._content;\r\n\t}\r\n\tset buiClipNote(note: string | TemplateRef<any> | undefined) {\r\n\t\tthis._content = note;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._processContent();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the theme color alias.\r\n\t * @default 'primary'\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteColor(): ThemePalette {\r\n\t\treturn this._color;\r\n\t}\r\n\tset buiClipNoteColor(color: ThemePalette) {\r\n\t\tthis._color = color;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Customise the icon on the toggle button. With this property specified, the animation on the icon\r\n\t * will not be active.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteIcon(): string | undefined {\r\n\t\treturn this._icon;\r\n\t}\r\n\tset buiClipNoteIcon(icon: string | undefined) {\r\n\t\tthis._icon = icon;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The caption of the toggle button when expanded.\r\n\t */\r\n\t@Input()\r\n\tget buiClipNoteCaption(): string {\r\n\t\treturn this._caption;\r\n\t}\r\n\tset buiClipNoteCaption(text: string) {\r\n\t\tthis._caption = text;\r\n\t\tif (this._compRef) {\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Emits when the panel opens */\r\n\t@Output()\r\n\treadonly buiClipNoteOpened = new EventEmitter<void>();\r\n\r\n\t/** Emits when the panel closes */\r\n\t@Output()\r\n\treadonly buiClipNoteClosed = new EventEmitter<void>();\r\n\r\n\tprivate _content?: string | TemplateRef<any>;\r\n\tprivate _color: ThemePalette = 'primary';\r\n\tprivate _compRef!: ComponentRef<ClipNoteComponent>;\r\n\tprivate _caption: string;\r\n\tprivate _icon?: string;\r\n\r\n\tconstructor(\r\n\t\t@Host() private _elementRef: ElementRef<HTMLElement>,\r\n\t\tprivate _vc: ViewContainerRef,\r\n\t\t@Inject(CLIP_NOTE_DEFAULT_CONFIG) _config: ClipNoteDefaultConfig\r\n\t) {\r\n\t\tthis._caption = _config.caption;\r\n\t\tthis._color = _config.color;\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._compRef = this._vc.createComponent(ClipNoteComponent);\r\n\t\t\tconst childElement: HTMLElement = this._compRef.location.nativeElement;\r\n\t\t\tconst element = this._elementRef.nativeElement;\r\n\t\t\telement.style.position = 'relative';\r\n\t\t\telement.appendChild(childElement);\r\n\t\t\tthis._compRef.instance._assignColor(this._color);\r\n\t\t\tthis._compRef.instance._assignButtonText(this._caption);\r\n\t\t\tthis._compRef.instance._assignButtonIcon(this._icon);\r\n\t\t\tthis._compRef.instance.opened.subscribe(this.buiClipNoteOpened.next.bind(this.buiClipNoteOpened));\r\n\t\t\tthis._compRef.instance.closed.subscribe(this.buiClipNoteClosed.next.bind(this.buiClipNoteClosed));\r\n\t\t\tthis._processContent();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._compRef.destroy();\r\n\t}\r\n\r\n\t/** Open the note panel */\r\n\topen() {\r\n\t\tthis._compRef.instance.open();\r\n\t}\r\n\r\n\t/** Close the note panel */\r\n\tclose() {\r\n\t\tthis._compRef.instance.close();\r\n\t}\r\n\r\n\tprivate _processContent() {\r\n\t\tthis._compRef.instance._contentChanged(this._content);\r\n\t}\r\n}\r\n","import { BidiModule } from '@angular/cdk/bidi';\r\nimport { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BuiCommonModule } from '@bravura/ui/common';\r\nimport { IconFontModule } from '@bravura/ui/icon-font';\r\nimport { ClipNoteComponent } from './clip-note.component';\r\nimport { ClipNoteDefaultConfig, ClipNoteDirective, CLIP_NOTE_DEFAULT_CONFIG } from './clip-note.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [ClipNoteComponent, ClipNoteDirective],\r\n\timports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule],\r\n\texports: [ClipNoteDirective]\r\n})\r\nexport class ClipNoteModule {\r\n\tstatic forConfig(config: ClipNoteDefaultConfig): ModuleWithProviders<ClipNoteModule> {\r\n\t\treturn {\r\n\t\t\tngModule: ClipNoteModule,\r\n\t\t\tproviders: [{ provide: CLIP_NOTE_DEFAULT_CONFIG, useValue: config }]\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport { ClipNoteDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import * as i1 from '@angular/cdk/bidi';
2
2
  import { BidiModule } from '@angular/cdk/bidi';
3
- import { DOCUMENT } from '@angular/common';
4
3
  import * as i0 from '@angular/core';
5
- import { Optional, SkipSelf, Inject, NgModule } from '@angular/core';
4
+ import { DOCUMENT, Optional, SkipSelf, Inject, NgModule } from '@angular/core';
6
5
 
7
6
  function generateID() {
8
7
  return Math.round(Math.random() * Math.pow(2, 50)).toString(36);
@@ -66,11 +65,11 @@ class BuiCommonModule {
66
65
  observer.observe(document.body, { attributes: true });
67
66
  }
68
67
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BuiCommonModule, deps: [{ token: i1.Directionality }, { token: BuiCommonModule, optional: true, skipSelf: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.NgModule }); }
70
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: BuiCommonModule, imports: [BidiModule], exports: [BidiModule] }); }
71
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BuiCommonModule, imports: [BidiModule, BidiModule] }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BuiCommonModule, deps: [{ token: i1.Directionality }, { token: BuiCommonModule, optional: true, skipSelf: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.NgModule }); }
69
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: BuiCommonModule, imports: [BidiModule], exports: [BidiModule] }); }
70
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BuiCommonModule, imports: [BidiModule, BidiModule] }); }
72
71
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BuiCommonModule, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BuiCommonModule, decorators: [{
74
73
  type: NgModule,
75
74
  args: [{
76
75
  declarations: [],
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-common.mjs","sources":["../../../projects/ui/common/common-utils.ts","../../../projects/ui/common/common.module.ts","../../../projects/ui/common/bravura-ui-common.ts"],"sourcesContent":["export function generateID() {\r\n\treturn Math.round(Math.random() * Math.pow(2, 50)).toString(36);\r\n}\r\n\r\nexport function isElementInViewport(el: HTMLElement) {\r\n\tconst rect = el.getBoundingClientRect();\r\n\r\n\treturn (\r\n\t\trect.top >= 0 &&\r\n\t\trect.left >= 0 &&\r\n\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n}\r\n\r\n/**\r\n * Uses canvas.measureText to compute and return the width of the given text of given font in pixels.\r\n *\r\n * @param {String} text The text to be rendered.\r\n * @param el the element used to compute the font styles\r\n *\r\n * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\r\n */\r\nexport function getTextWidth(text: string, el: HTMLElement = document.body): number {\r\n\tfunction getCssStyle(element: HTMLElement, prop: string) {\r\n\t\treturn window.getComputedStyle(element, null).getPropertyValue(prop);\r\n\t}\r\n\r\n\tconst fontWeight = getCssStyle(el, 'font-weight') || 'normal';\r\n\tconst fontSize = getCssStyle(el, 'font-size') || '16px';\r\n\tconst fontFamily = getCssStyle(el, 'font-family') || 'Arial';\r\n\r\n\tconst font = `${fontWeight} ${fontSize} ${fontFamily}`;\r\n\r\n\t// re-use canvas object for better performance\r\n\tconst canvas = (getTextWidth as any).canvas || ((getTextWidth as any).canvas = document.createElement('canvas'));\r\n\tconst context = canvas.getContext('2d');\r\n\tcontext.font = font;\r\n\tconst metrics = context.measureText(text);\r\n\treturn Math.round(metrics.width);\r\n}\r\n","import { BidiModule, Direction, Directionality } from '@angular/cdk/bidi';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Inject, NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\r\nconst RTL_LOCALE_PATTERN =\r\n\t/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\r\n\r\n/** Resolves a string value to a specific direction. */\r\nexport function _resolveDirectionality(rawValue: string): Direction {\r\n\tconst value = rawValue?.toLowerCase() || '';\r\n\r\n\tif (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\r\n\t\treturn RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\r\n\t}\r\n\r\n\treturn value === 'rtl' ? 'rtl' : 'ltr';\r\n}\r\n\r\n@NgModule({\r\n\tdeclarations: [],\r\n\timports: [BidiModule],\r\n\texports: [BidiModule]\r\n})\r\nexport class BuiCommonModule {\r\n\tconstructor(\r\n\t\tdir: Directionality,\r\n\t\t@Optional()\r\n\t\t@SkipSelf()\r\n\t\tthisModule: BuiCommonModule,\r\n\t\t@Inject(DOCUMENT) document: Document\r\n\t) {\r\n\t\tif (!thisModule) {\r\n\t\t\tconst observer = new MutationObserver(() => {\r\n\t\t\t\tconst attr = document.documentElement.getAttribute('dir') || document.body.getAttribute('dir');\r\n\t\t\t\tif (attr && dir.value !== attr) {\r\n\t\t\t\t\tconst d = _resolveDirectionality(attr);\r\n\t\t\t\t\tdir.change.emit(d);\r\n\t\t\t\t\tif (Object.getOwnPropertyNames(dir).includes('value')) {\r\n\t\t\t\t\t\t(dir as any).value = d;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetTimeout(() => dir.change.emit(d));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tobserver.observe(document.documentElement, { attributes: true });\r\n\t\t\tobserver.observe(document.body, { attributes: true });\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-common.mjs","sources":["../../../projects/ui/common/common-utils.ts","../../../projects/ui/common/common.module.ts","../../../projects/ui/common/bravura-ui-common.ts"],"sourcesContent":["export function generateID() {\r\n\treturn Math.round(Math.random() * Math.pow(2, 50)).toString(36);\r\n}\r\n\r\nexport function isElementInViewport(el: HTMLElement) {\r\n\tconst rect = el.getBoundingClientRect();\r\n\r\n\treturn (\r\n\t\trect.top >= 0 &&\r\n\t\trect.left >= 0 &&\r\n\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n}\r\n\r\n/**\r\n * Uses canvas.measureText to compute and return the width of the given text of given font in pixels.\r\n *\r\n * @param {String} text The text to be rendered.\r\n * @param el the element used to compute the font styles\r\n *\r\n * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\r\n */\r\nexport function getTextWidth(text: string, el: HTMLElement = document.body): number {\r\n\tfunction getCssStyle(element: HTMLElement, prop: string) {\r\n\t\treturn window.getComputedStyle(element, null).getPropertyValue(prop);\r\n\t}\r\n\r\n\tconst fontWeight = getCssStyle(el, 'font-weight') || 'normal';\r\n\tconst fontSize = getCssStyle(el, 'font-size') || '16px';\r\n\tconst fontFamily = getCssStyle(el, 'font-family') || 'Arial';\r\n\r\n\tconst font = `${fontWeight} ${fontSize} ${fontFamily}`;\r\n\r\n\t// re-use canvas object for better performance\r\n\tconst canvas = (getTextWidth as any).canvas || ((getTextWidth as any).canvas = document.createElement('canvas'));\r\n\tconst context = canvas.getContext('2d');\r\n\tcontext.font = font;\r\n\tconst metrics = context.measureText(text);\r\n\treturn Math.round(metrics.width);\r\n}\r\n","import { BidiModule, Direction, Directionality } from '@angular/cdk/bidi';\n\nimport { Inject, NgModule, Optional, SkipSelf, DOCUMENT } from '@angular/core';\n\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN =\n\t/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n\n/** Resolves a string value to a specific direction. */\nexport function _resolveDirectionality(rawValue: string): Direction {\n\tconst value = rawValue?.toLowerCase() || '';\n\n\tif (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n\t\treturn RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n\t}\n\n\treturn value === 'rtl' ? 'rtl' : 'ltr';\n}\n\n@NgModule({\n\tdeclarations: [],\n\timports: [BidiModule],\n\texports: [BidiModule]\n})\nexport class BuiCommonModule {\n\tconstructor(\n\t\tdir: Directionality,\n\t\t@Optional()\n\t\t@SkipSelf()\n\t\tthisModule: BuiCommonModule,\n\t\t@Inject(DOCUMENT) document: Document\n\t) {\n\t\tif (!thisModule) {\n\t\t\tconst observer = new MutationObserver(() => {\n\t\t\t\tconst attr = document.documentElement.getAttribute('dir') || document.body.getAttribute('dir');\n\t\t\t\tif (attr && dir.value !== attr) {\n\t\t\t\t\tconst d = _resolveDirectionality(attr);\n\t\t\t\t\tdir.change.emit(d);\n\t\t\t\t\tif (Object.getOwnPropertyNames(dir).includes('value')) {\n\t\t\t\t\t\t(dir as any).value = d;\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(() => dir.change.emit(d));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(document.documentElement, { attributes: true });\n\t\t\tobserver.observe(document.body, { attributes: true });\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -222,10 +222,10 @@ class CurrencyInputDirective {
222
222
  const decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;
223
223
  return this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;
224
224
  }
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CurrencyInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }, { token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
226
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: CurrencyInputDirective, isStandalone: false, selector: "input[buiCurrencyInput],input[currencyCode],input[data-type=currency]", inputs: { allowNegative: "allowNegative", currencyCode: "currencyCode", baseUnitOnly: "baseUnitOnly", format: "format" }, host: { listeners: { "input": "onInput()", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }], usesOnChanges: true, ngImport: i0 }); }
225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CurrencyInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }, { token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
226
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CurrencyInputDirective, isStandalone: false, selector: "input[buiCurrencyInput],input[currencyCode],input[data-type=currency]", inputs: { allowNegative: "allowNegative", currencyCode: "currencyCode", baseUnitOnly: "baseUnitOnly", format: "format" }, host: { listeners: { "input": "onInput()", "focus": "onFocus()", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }], usesOnChanges: true, ngImport: i0 }); }
227
227
  }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CurrencyInputDirective, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CurrencyInputDirective, decorators: [{
229
229
  type: Directive,
230
230
  args: [{
231
231
  selector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',
@@ -277,11 +277,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
277
277
  }] } });
278
278
 
279
279
  class CurrencyInputModule {
280
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CurrencyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
281
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: CurrencyInputModule, declarations: [CurrencyInputDirective], imports: [CommonModule], exports: [CurrencyInputDirective] }); }
282
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CurrencyInputModule, imports: [CommonModule] }); }
280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CurrencyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
281
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CurrencyInputModule, declarations: [CurrencyInputDirective], imports: [CommonModule], exports: [CurrencyInputDirective] }); }
282
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CurrencyInputModule, imports: [CommonModule] }); }
283
283
  }
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CurrencyInputModule, decorators: [{
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CurrencyInputModule, decorators: [{
285
285
  type: NgModule,
286
286
  args: [{
287
287
  declarations: [CurrencyInputDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-currency-input.mjs","sources":["../../../projects/ui/currency-input/currency-input.directive.ts","../../../projects/ui/currency-input/currency-input.module.ts","../../../projects/ui/currency-input/bravura-ui-currency-input.ts"],"sourcesContent":["import { DecimalPipe, getCurrencySymbol } from '@angular/common';\r\nimport {\r\n\tDEFAULT_CURRENCY_CODE,\r\n\tDirective,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInject,\r\n\tInput,\r\n\tLOCALE_ID,\r\n\tOnChanges,\r\n\tOnInit,\r\n\tOptional,\r\n\tRenderer2,\r\n\tSelf,\r\n\tɵfindLocaleData\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatFormField, MAT_FORM_FIELD } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { noop } from 'rxjs';\r\n\r\n/* tslint:disable:no-empty */\r\nexport const noop_consumer = (_: any) => {};\r\n\r\n/**\r\n * This directive will enhance an input element to format the numbers entered to a currency amount.\r\n */\r\n@Directive({\r\n\tselector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',\r\n\tproviders: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }],\r\n\tstandalone: false\r\n})\r\nexport class CurrencyInputDirective implements OnInit, OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * true to allow negative input, otherwise false\r\n\t * Default to false.\r\n\t */\r\n\t@Input()\r\n\tallowNegative: boolean = false;\r\n\r\n\t/**\r\n\t * Provide the currency code to format the entered amount.\r\n\t * Uses angular token DEFAULT_CURRENCY_CODE by default.\r\n\t */\r\n\t@Input()\r\n\tcurrencyCode: string = '';\r\n\r\n\t/**\r\n\t * true if no decimal digits allowed, otherwise false.\r\n\t * Default to false.\r\n\t */\r\n\t@Input()\r\n\tbaseUnitOnly = false;\r\n\r\n\t/**\r\n\t * The format the of the amount either in wide or narrow.\r\n\t */\r\n\t@Input()\r\n\tformat: 'narrow' | 'wide' = 'wide';\r\n\r\n\t@HostBinding('placeholder')\r\n\tprivate placeholder: string = '';\r\n\r\n\t@HostBinding('autocomplete')\r\n\tprivate autocomplete = 'off';\r\n\r\n\t@HostBinding('type')\r\n\tprivate type = 'text';\r\n\r\n\t@HostBinding('attr.inputmode')\r\n\tprivate inputMode = 'decimal';\r\n\r\n\tprivate change = noop_consumer;\r\n\tprivate onTouch = noop;\r\n\tprivate _safari: boolean;\r\n\tprivate _symbol: string = '$';\r\n\tprivate _decimalPipe!: DecimalPipe;\r\n\r\n\tprivate _ds = '.'; // decimal separator\r\n\tprivate _trailing = false;\r\n\r\n\tconstructor(\r\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\r\n\t\tprivate _renderer: Renderer2,\r\n\t\t@Inject(LOCALE_ID) private _locale: string,\r\n\t\t@Inject(DEFAULT_CURRENCY_CODE) private _defaultCurrencyCode: string,\r\n\t\t@Optional() @Inject(MAT_FORM_FIELD) private _field?: MatFormField\r\n\t) {\r\n\t\tconst userAgent = navigator.userAgent;\r\n\t\tthis._safari = !userAgent.match(/Firefox/i) && !userAgent.match(/Chrome/i) && !!userAgent.match(/safari/i);\r\n\t\tthis._currencyUpdated();\r\n\t}\r\n\r\n\tngOnInit() {}\r\n\r\n\tngOnChanges(): void {\r\n\t\tthis._currencyUpdated();\r\n\t\tthis.onInput();\r\n\t}\r\n\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tthis._formatCurrency(this._el, false, true);\r\n\t}\r\n\r\n\t@HostListener('focus')\r\n\tonFocus() {\r\n\t\tthis._formatCurrency(this._el, false, true);\r\n\t}\r\n\r\n\t@HostListener('blur')\r\n\tonblur() {\r\n\t\tthis.onTouch();\r\n\t\tthis._formatCurrency(this._el, true, false);\r\n\t}\r\n\r\n\twriteValue(value: any) {\r\n\t\tvalue = this._decimalPipe.transform(value);\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n\t\tthis._formatCurrency(this._el, true, false);\r\n\t}\r\n\r\n\tregisterOnChange(fn: any) {\r\n\t\tthis.change = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any) {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tprivate _updatePlaceholder() {\r\n\t\tthis.placeholder = this.placeholder || this._0Text;\r\n\t\tif (this._field?._control instanceof MatInput) {\r\n\t\t\tthis._field._control.placeholder = this.placeholder;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _currencyUpdated() {\r\n\t\tthis.currencyCode = this.currencyCode || this._defaultCurrencyCode;\r\n\t\tthis._symbol = getCurrencySymbol(this.currencyCode, this.format, this._locale) || '$';\r\n\t\tconst localeData = ɵfindLocaleData(this._locale);\r\n\t\tthis._ds = localeData[13][0];\r\n\t\tthis._decimalPipe = new DecimalPipe(this._locale);\r\n\t\tconst curFormat: string = localeData[14][2];\r\n\t\tthis._trailing = curFormat.indexOf('¤') > 0;\r\n\t\tthis._updatePlaceholder();\r\n\t}\r\n\r\n\tprivate _formatCurrency(input: ElementRef<HTMLInputElement>, blur: boolean, focus: boolean) {\r\n\t\t// appends $ to value, validates decimal side\r\n\t\t// and puts cursor back in right position.\r\n\t\t// get input value\r\n\t\tlet input_val = input.nativeElement.value;\r\n\r\n\t\t// don't validate empty input\r\n\t\tif (input_val === '') {\r\n\t\t\tthis.change(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst minus = this.allowNegative ? '-' : '';\r\n\r\n\t\t// remove non digit values except currency symbol, decimal separator and hypen\r\n\t\tconst reg = new RegExp(`[^0-9${minus}${this._symbol}${this._ds}]`, 'g');\r\n\r\n\t\tlet sanitiseValue = input_val.replace(reg, '');\r\n\r\n\t\tif (sanitiseValue === '' || sanitiseValue === this._symbol) {\r\n\t\t\tthis.change(null);\r\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '');\r\n\t\t\treturn;\r\n\t\t} else if (\r\n\t\t\t(this.allowNegative && sanitiseValue === `-${this._symbol}`) ||\r\n\t\t\tsanitiseValue === '-' ||\r\n\t\t\tsanitiseValue === '--'\r\n\t\t) {\r\n\t\t\tthis.change(null);\r\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '-');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst negative = this.allowNegative && input_val.indexOf('-') >= 0;\r\n\r\n\t\t// original length\r\n\t\tconst original_len = input_val.length;\r\n\r\n\t\t// initial caret position\r\n\t\tlet caret_pos = input.nativeElement.selectionStart;\r\n\r\n\t\tinput_val = input_val.replace(RegExp(`[^0-9${minus}${this._ds}]`, 'g'), '').replace(/^\\.\\./, '');\r\n\t\t// check for decimal\r\n\t\tif (input_val.indexOf(this._ds) >= 0) {\r\n\t\t\t// get position of first decimal\r\n\t\t\t// this prevents multiple decimals from\r\n\t\t\t// being entered\r\n\t\t\tlet decimal_pos = input_val.indexOf(this._ds);\r\n\r\n\t\t\t// split number by decimal point\r\n\t\t\tlet left_side = input_val.substring(0, decimal_pos);\r\n\t\t\tlet right_side = input_val.substring(decimal_pos);\r\n\r\n\t\t\t// add commas to left side of number\r\n\t\t\tleft_side = this._formatNumber(left_side, blur) || '';\r\n\r\n\t\t\t// no value append a zero for decimal values\r\n\t\t\tif (!left_side.length) {\r\n\t\t\t\tleft_side = '0';\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.baseUnitOnly) {\r\n\t\t\t\t// validate right side\r\n\t\t\t\tright_side = right_side.replace(/\\D/g, '');\r\n\r\n\t\t\t\t// Limit decimal to only 2 digits\r\n\t\t\t\tlet v = Number(`0.${right_side}`);\r\n\t\t\t\tif (v) {\r\n\t\t\t\t\tconst length = right_side.length > 1 ? 2 : 1;\r\n\t\t\t\t\tright_side = v.toFixed(length).substring(2, 4);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// On blur make sure 2 numbers after decimal\r\n\t\t\t\tif (blur) {\r\n\t\t\t\t\tright_side += '00';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tright_side = right_side.substring(0, 2);\r\n\r\n\t\t\t\t// join number by .\r\n\t\t\t\tinput_val = left_side + this._ds + right_side;\r\n\t\t\t} else {\r\n\t\t\t\tinput_val = left_side;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tinput_val = this._formatNumber(input_val, blur);\r\n\r\n\t\t\t// final formatting\r\n\t\t\tif (blur && !this.baseUnitOnly) {\r\n\t\t\t\tinput_val += `${this._ds}00`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst numStr = input_val;\r\n\t\t// append the currency symbol\r\n\t\tif (!this._safari || !focus) {\r\n\t\t\tif (this._trailing) {\r\n\t\t\t\tinput_val = input_val + ' ' + this._symbol;\r\n\t\t\t} else {\r\n\t\t\t\tinput_val = this._symbol + input_val;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (negative) {\r\n\t\t\t// append the hypen back to the value if a negative value was entered\r\n\t\t\tinput_val = `-${input_val}`;\r\n\t\t}\r\n\r\n\t\tconst num = this._convert((negative ? '-' : '') + numStr);\r\n\r\n\t\t// update control value first with the number\r\n\t\tthis.change(Number(num));\r\n\r\n\t\tif (blur && num === 0) {\r\n\t\t\tinput_val = this._0Text;\r\n\t\t}\r\n\r\n\t\t// update dom with the formatted value\r\n\t\tthis._renderer.setProperty(input.nativeElement, 'value', input_val);\r\n\t\t// put caret back in the right position\r\n\t\tlet updated_len = input_val.length;\r\n\t\tif (caret_pos) {\r\n\t\t\tcaret_pos = updated_len - original_len + caret_pos;\r\n\t\t\tif (input_val.substring(caret_pos - this._symbol.length) === this._symbol && this._trailing) {\r\n\t\t\t\tcaret_pos -= this._symbol.length + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!this._safari) {\r\n\t\t\tinput.nativeElement.setSelectionRange(caret_pos, caret_pos);\r\n\t\t}\r\n\t}\r\n\r\n\t// format the number into currency format\r\n\tprivate _formatNumber(n: string, blur: boolean = false) {\r\n\t\t// format number 1000000 to 1,234,567\r\n\t\tn = n.replace(/\\D/g, '');\r\n\t\tif (blur) {\r\n\t\t\tn = n.replace(/^0+/, '');\r\n\t\t}\r\n\t\treturn this._decimalPipe.transform(n, '1.0-0') as string;\r\n\t}\r\n\r\n\tprivate _convert(input: string): number {\r\n\t\tconst val = input\r\n\t\t\t.replace(this._ds, 'd')\r\n\t\t\t.replace(/[^0-9d-]/g, '')\r\n\t\t\t.replace('d', '.');\r\n\t\treturn parseFloat(val);\r\n\t}\r\n\r\n\tprivate get _0Text(): string {\r\n\t\tconst decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;\r\n\t\treturn this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CurrencyInputDirective } from './currency-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [CurrencyInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [CurrencyInputDirective]\r\n})\r\nexport class CurrencyInputModule {}\r\n\r\nexport { CurrencyInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵfindLocaleData"],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-currency-input.mjs","sources":["../../../projects/ui/currency-input/currency-input.directive.ts","../../../projects/ui/currency-input/currency-input.module.ts","../../../projects/ui/currency-input/bravura-ui-currency-input.ts"],"sourcesContent":["import { DecimalPipe, getCurrencySymbol } from '@angular/common';\r\nimport {\r\n\tDEFAULT_CURRENCY_CODE,\r\n\tDirective,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInject,\r\n\tInput,\r\n\tLOCALE_ID,\r\n\tOnChanges,\r\n\tOnInit,\r\n\tOptional,\r\n\tRenderer2,\r\n\tSelf,\r\n\tɵfindLocaleData\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatFormField, MAT_FORM_FIELD } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { noop } from 'rxjs';\r\n\r\n/* tslint:disable:no-empty */\r\nexport const noop_consumer = (_: any) => {};\r\n\r\n/**\r\n * This directive will enhance an input element to format the numbers entered to a currency amount.\r\n */\r\n@Directive({\r\n\tselector: 'input[buiCurrencyInput],input[currencyCode],input[data-type=currency]',\r\n\tproviders: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CurrencyInputDirective), multi: true }],\r\n\tstandalone: false\r\n})\r\nexport class CurrencyInputDirective implements OnInit, OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * true to allow negative input, otherwise false\r\n\t * Default to false.\r\n\t */\r\n\t@Input()\r\n\tallowNegative: boolean = false;\r\n\r\n\t/**\r\n\t * Provide the currency code to format the entered amount.\r\n\t * Uses angular token DEFAULT_CURRENCY_CODE by default.\r\n\t */\r\n\t@Input()\r\n\tcurrencyCode: string = '';\r\n\r\n\t/**\r\n\t * true if no decimal digits allowed, otherwise false.\r\n\t * Default to false.\r\n\t */\r\n\t@Input()\r\n\tbaseUnitOnly = false;\r\n\r\n\t/**\r\n\t * The format the of the amount either in wide or narrow.\r\n\t */\r\n\t@Input()\r\n\tformat: 'narrow' | 'wide' = 'wide';\r\n\r\n\t@HostBinding('placeholder')\r\n\tprivate placeholder: string = '';\r\n\r\n\t@HostBinding('autocomplete')\r\n\tprivate autocomplete = 'off';\r\n\r\n\t@HostBinding('type')\r\n\tprivate type = 'text';\r\n\r\n\t@HostBinding('attr.inputmode')\r\n\tprivate inputMode = 'decimal';\r\n\r\n\tprivate change = noop_consumer;\r\n\tprivate onTouch = noop;\r\n\tprivate _safari: boolean;\r\n\tprivate _symbol: string = '$';\r\n\tprivate _decimalPipe!: DecimalPipe;\r\n\r\n\tprivate _ds = '.'; // decimal separator\r\n\tprivate _trailing = false;\r\n\r\n\tconstructor(\r\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\r\n\t\tprivate _renderer: Renderer2,\r\n\t\t@Inject(LOCALE_ID) private _locale: string,\r\n\t\t@Inject(DEFAULT_CURRENCY_CODE) private _defaultCurrencyCode: string,\r\n\t\t@Optional() @Inject(MAT_FORM_FIELD) private _field?: MatFormField\r\n\t) {\r\n\t\tconst userAgent = navigator.userAgent;\r\n\t\tthis._safari = !userAgent.match(/Firefox/i) && !userAgent.match(/Chrome/i) && !!userAgent.match(/safari/i);\r\n\t\tthis._currencyUpdated();\r\n\t}\r\n\r\n\tngOnInit() {}\r\n\r\n\tngOnChanges(): void {\r\n\t\tthis._currencyUpdated();\r\n\t\tthis.onInput();\r\n\t}\r\n\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tthis._formatCurrency(this._el, false, true);\r\n\t}\r\n\r\n\t@HostListener('focus')\r\n\tonFocus() {\r\n\t\tthis._formatCurrency(this._el, false, true);\r\n\t}\r\n\r\n\t@HostListener('blur')\r\n\tonblur() {\r\n\t\tthis.onTouch();\r\n\t\tthis._formatCurrency(this._el, true, false);\r\n\t}\r\n\r\n\twriteValue(value: any) {\r\n\t\tvalue = this._decimalPipe.transform(value);\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n\t\tthis._formatCurrency(this._el, true, false);\r\n\t}\r\n\r\n\tregisterOnChange(fn: any) {\r\n\t\tthis.change = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any) {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tprivate _updatePlaceholder() {\r\n\t\tthis.placeholder = this.placeholder || this._0Text;\r\n\t\tif (this._field?._control instanceof MatInput) {\r\n\t\t\tthis._field._control.placeholder = this.placeholder;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _currencyUpdated() {\r\n\t\tthis.currencyCode = this.currencyCode || this._defaultCurrencyCode;\r\n\t\tthis._symbol = getCurrencySymbol(this.currencyCode, this.format, this._locale) || '$';\r\n\t\tconst localeData = ɵfindLocaleData(this._locale);\r\n\t\tthis._ds = localeData[13][0];\r\n\t\tthis._decimalPipe = new DecimalPipe(this._locale);\r\n\t\tconst curFormat: string = localeData[14][2];\r\n\t\tthis._trailing = curFormat.indexOf('¤') > 0;\r\n\t\tthis._updatePlaceholder();\r\n\t}\r\n\r\n\tprivate _formatCurrency(input: ElementRef<HTMLInputElement>, blur: boolean, focus: boolean) {\r\n\t\t// appends $ to value, validates decimal side\r\n\t\t// and puts cursor back in right position.\r\n\t\t// get input value\r\n\t\tlet input_val = input.nativeElement.value;\r\n\r\n\t\t// don't validate empty input\r\n\t\tif (input_val === '') {\r\n\t\t\tthis.change(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst minus = this.allowNegative ? '-' : '';\r\n\r\n\t\t// remove non digit values except currency symbol, decimal separator and hypen\r\n\t\tconst reg = new RegExp(`[^0-9${minus}${this._symbol}${this._ds}]`, 'g');\r\n\r\n\t\tlet sanitiseValue = input_val.replace(reg, '');\r\n\r\n\t\tif (sanitiseValue === '' || sanitiseValue === this._symbol) {\r\n\t\t\tthis.change(null);\r\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '');\r\n\t\t\treturn;\r\n\t\t} else if (\r\n\t\t\t(this.allowNegative && sanitiseValue === `-${this._symbol}`) ||\r\n\t\t\tsanitiseValue === '-' ||\r\n\t\t\tsanitiseValue === '--'\r\n\t\t) {\r\n\t\t\tthis.change(null);\r\n\t\t\tthis._renderer.setProperty(input.nativeElement, 'value', '-');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst negative = this.allowNegative && input_val.indexOf('-') >= 0;\r\n\r\n\t\t// original length\r\n\t\tconst original_len = input_val.length;\r\n\r\n\t\t// initial caret position\r\n\t\tlet caret_pos = input.nativeElement.selectionStart;\r\n\r\n\t\tinput_val = input_val.replace(RegExp(`[^0-9${minus}${this._ds}]`, 'g'), '').replace(/^\\.\\./, '');\r\n\t\t// check for decimal\r\n\t\tif (input_val.indexOf(this._ds) >= 0) {\r\n\t\t\t// get position of first decimal\r\n\t\t\t// this prevents multiple decimals from\r\n\t\t\t// being entered\r\n\t\t\tlet decimal_pos = input_val.indexOf(this._ds);\r\n\r\n\t\t\t// split number by decimal point\r\n\t\t\tlet left_side = input_val.substring(0, decimal_pos);\r\n\t\t\tlet right_side = input_val.substring(decimal_pos);\r\n\r\n\t\t\t// add commas to left side of number\r\n\t\t\tleft_side = this._formatNumber(left_side, blur) || '';\r\n\r\n\t\t\t// no value append a zero for decimal values\r\n\t\t\tif (!left_side.length) {\r\n\t\t\t\tleft_side = '0';\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.baseUnitOnly) {\r\n\t\t\t\t// validate right side\r\n\t\t\t\tright_side = right_side.replace(/\\D/g, '');\r\n\r\n\t\t\t\t// Limit decimal to only 2 digits\r\n\t\t\t\tlet v = Number(`0.${right_side}`);\r\n\t\t\t\tif (v) {\r\n\t\t\t\t\tconst length = right_side.length > 1 ? 2 : 1;\r\n\t\t\t\t\tright_side = v.toFixed(length).substring(2, 4);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// On blur make sure 2 numbers after decimal\r\n\t\t\t\tif (blur) {\r\n\t\t\t\t\tright_side += '00';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tright_side = right_side.substring(0, 2);\r\n\r\n\t\t\t\t// join number by .\r\n\t\t\t\tinput_val = left_side + this._ds + right_side;\r\n\t\t\t} else {\r\n\t\t\t\tinput_val = left_side;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tinput_val = this._formatNumber(input_val, blur);\r\n\r\n\t\t\t// final formatting\r\n\t\t\tif (blur && !this.baseUnitOnly) {\r\n\t\t\t\tinput_val += `${this._ds}00`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst numStr = input_val;\r\n\t\t// append the currency symbol\r\n\t\tif (!this._safari || !focus) {\r\n\t\t\tif (this._trailing) {\r\n\t\t\t\tinput_val = input_val + ' ' + this._symbol;\r\n\t\t\t} else {\r\n\t\t\t\tinput_val = this._symbol + input_val;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (negative) {\r\n\t\t\t// append the hypen back to the value if a negative value was entered\r\n\t\t\tinput_val = `-${input_val}`;\r\n\t\t}\r\n\r\n\t\tconst num = this._convert((negative ? '-' : '') + numStr);\r\n\r\n\t\t// update control value first with the number\r\n\t\tthis.change(Number(num));\r\n\r\n\t\tif (blur && num === 0) {\r\n\t\t\tinput_val = this._0Text;\r\n\t\t}\r\n\r\n\t\t// update dom with the formatted value\r\n\t\tthis._renderer.setProperty(input.nativeElement, 'value', input_val);\r\n\t\t// put caret back in the right position\r\n\t\tlet updated_len = input_val.length;\r\n\t\tif (caret_pos) {\r\n\t\t\tcaret_pos = updated_len - original_len + caret_pos;\r\n\t\t\tif (input_val.substring(caret_pos - this._symbol.length) === this._symbol && this._trailing) {\r\n\t\t\t\tcaret_pos -= this._symbol.length + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!this._safari) {\r\n\t\t\tinput.nativeElement.setSelectionRange(caret_pos, caret_pos);\r\n\t\t}\r\n\t}\r\n\r\n\t// format the number into currency format\r\n\tprivate _formatNumber(n: string, blur: boolean = false) {\r\n\t\t// format number 1000000 to 1,234,567\r\n\t\tn = n.replace(/\\D/g, '');\r\n\t\tif (blur) {\r\n\t\t\tn = n.replace(/^0+/, '');\r\n\t\t}\r\n\t\treturn this._decimalPipe.transform(n, '1.0-0') as string;\r\n\t}\r\n\r\n\tprivate _convert(input: string): number {\r\n\t\tconst val = input\r\n\t\t\t.replace(this._ds, 'd')\r\n\t\t\t.replace(/[^0-9d-]/g, '')\r\n\t\t\t.replace('d', '.');\r\n\t\treturn parseFloat(val);\r\n\t}\r\n\r\n\tprivate get _0Text(): string {\r\n\t\tconst decimalStr = this.baseUnitOnly ? '' : `${this._ds}00`;\r\n\t\treturn this._trailing ? `0${decimalStr} ${this._symbol}` : `${this._symbol}0${decimalStr}`;\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { CurrencyInputDirective } from './currency-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [CurrencyInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [CurrencyInputDirective]\r\n})\r\nexport class CurrencyInputModule {}\r\n\r\nexport { CurrencyInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵfindLocaleData"],"mappings":"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"}
@@ -79,13 +79,13 @@ class DecimalInputDirective {
79
79
  }
80
80
  this._renderer.setProperty(this._el.nativeElement, 'value', newValue);
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
83
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: DecimalInputDirective, isStandalone: false, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: DecimalInputDirective, isStandalone: false, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
84
84
  DecimalPipe,
85
85
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
86
86
  ], usesOnChanges: true, ngImport: i0 }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DecimalInputDirective, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DecimalInputDirective, decorators: [{
89
89
  type: Directive,
90
90
  args: [{
91
91
  selector: 'input[buiDecimalInput]',
@@ -123,11 +123,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
123
123
  }] } });
124
124
 
125
125
  class DecimalInputModule {
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
127
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] }); }
128
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] }); }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DecimalInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
127
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: DecimalInputModule, declarations: [DecimalInputDirective], imports: [CommonModule], exports: [DecimalInputDirective] }); }
128
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DecimalInputModule, imports: [CommonModule] }); }
129
129
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DecimalInputModule, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DecimalInputModule, decorators: [{
131
131
  type: NgModule,
132
132
  args: [{
133
133
  declarations: [DecimalInputDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-decimal-input.mjs","sources":["../../../projects/ui/decimal-input/decimal-input.directive.ts","../../../projects/ui/decimal-input/decimal-input.module.ts","../../../projects/ui/decimal-input/bravura-ui-decimal-input.ts"],"sourcesContent":["import { DecimalPipe } from '@angular/common';\r\nimport {\r\n\tDirective,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInput,\r\n\tOnChanges,\r\n\tRenderer2,\r\n\tSelf\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { noop } from 'rxjs';\r\n\r\n/* tslint:disable:no-empty */\r\nexport const noop_consumer = (_: any) => {};\r\n\r\n/**\r\n * This directive will enhance an input element to format the numbers entered to a decimal amount.\r\n */\r\n@Directive({\r\n\tselector: 'input[buiDecimalInput]',\r\n\tproviders: [\r\n\t\tDecimalPipe,\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }\r\n\t],\r\n\tstandalone: false\r\n})\r\nexport class DecimalInputDirective implements OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * number of decimal places allowed\r\n\t */\r\n\t@Input()\r\n\tbuiDecimalInput: number = 2;\r\n\r\n\t@HostBinding('placeholder')\r\n\tprivate placeholder: string = '';\r\n\r\n\t@HostBinding('autocomplete')\r\n\tprivate autocomplete = 'off';\r\n\r\n\t@HostBinding('type')\r\n\tprivate type = 'number';\r\n\r\n\t@HostBinding('attr.inputmode')\r\n\tprivate inputMode = 'decimal';\r\n\r\n\tprivate change = noop_consumer;\r\n\tprivate onTouch = noop;\r\n\r\n\tconstructor(\r\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\r\n\t\tprivate _renderer: Renderer2\r\n\t) {}\r\n\r\n\tngOnChanges(): void {\r\n\t\tthis.buiDecimalInput = this.buiDecimalInput || 2;\r\n\t\tthis.onInput();\r\n\t}\r\n\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tconst value = this._el.nativeElement.value;\r\n\r\n\t\tconst decimalPart = value.split('.')[1];\r\n\r\n\t\tif (decimalPart && decimalPart.length > this.buiDecimalInput) {\r\n\t\t\tconst indexOfPeriod = value.indexOf('.');\r\n\t\t\tconst newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput + 1);\r\n\t\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\r\n\t\t}\r\n\t\tconst resolvedValue = this._el.nativeElement.value;\r\n\t\tthis.change(\r\n\t\t\tresolvedValue === '' || resolvedValue === null || resolvedValue === undefined ? null : Number(resolvedValue)\r\n\t\t);\r\n\t}\r\n\r\n\t@HostListener('keypress', ['$event'])\r\n\tonKeypress(evt: KeyboardEvent) {\r\n\t\tconst target = evt.target as HTMLInputElement;\r\n\t\tconst value = target.value;\r\n\t\tconst isSpace = evt.key === ' ';\r\n\r\n\t\tif (\r\n\t\t\tisSpace ||\r\n\t\t\t(!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||\r\n\t\t\t(evt.key === '.' && value.indexOf('.') > 0)\r\n\t\t) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener('blur')\r\n\tonblur() {\r\n\t\tthis.onTouch();\r\n\t\tthis._resetDecimalPlaces();\r\n\t}\r\n\r\n\twriteValue(value: any) {\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n\t\tthis._resetDecimalPlaces();\r\n\t}\r\n\r\n\tregisterOnChange(fn: any) {\r\n\t\tthis.change = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any) {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tprivate _resetDecimalPlaces() {\r\n\t\tconst value = this._el.nativeElement.value;\r\n\t\tif (value === '' || value === null || value === undefined) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst splitValues = value.split('.');\r\n\t\tlet newValue = '';\r\n\t\tif (splitValues[1] && splitValues[1].length > this.buiDecimalInput) {\r\n\t\t\tnewValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput);\r\n\t\t} else {\r\n\t\t\tthis.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;\r\n\t\t\tnewValue = Number(value).toFixed(this.buiDecimalInput);\r\n\t\t}\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { DecimalInputDirective } from './decimal-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [DecimalInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [DecimalInputDirective]\r\n})\r\nexport class DecimalInputModule {}\r\nexport { DecimalInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-decimal-input.mjs","sources":["../../../projects/ui/decimal-input/decimal-input.directive.ts","../../../projects/ui/decimal-input/decimal-input.module.ts","../../../projects/ui/decimal-input/bravura-ui-decimal-input.ts"],"sourcesContent":["import { DecimalPipe } from '@angular/common';\r\nimport {\r\n\tDirective,\r\n\tElementRef,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tHostListener,\r\n\tInput,\r\n\tOnChanges,\r\n\tRenderer2,\r\n\tSelf\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { noop } from 'rxjs';\r\n\r\n/* tslint:disable:no-empty */\r\nexport const noop_consumer = (_: any) => {};\r\n\r\n/**\r\n * This directive will enhance an input element to format the numbers entered to a decimal amount.\r\n */\r\n@Directive({\r\n\tselector: 'input[buiDecimalInput]',\r\n\tproviders: [\r\n\t\tDecimalPipe,\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }\r\n\t],\r\n\tstandalone: false\r\n})\r\nexport class DecimalInputDirective implements OnChanges, ControlValueAccessor {\r\n\t/**\r\n\t * number of decimal places allowed\r\n\t */\r\n\t@Input()\r\n\tbuiDecimalInput: number = 2;\r\n\r\n\t@HostBinding('placeholder')\r\n\tprivate placeholder: string = '';\r\n\r\n\t@HostBinding('autocomplete')\r\n\tprivate autocomplete = 'off';\r\n\r\n\t@HostBinding('type')\r\n\tprivate type = 'number';\r\n\r\n\t@HostBinding('attr.inputmode')\r\n\tprivate inputMode = 'decimal';\r\n\r\n\tprivate change = noop_consumer;\r\n\tprivate onTouch = noop;\r\n\r\n\tconstructor(\r\n\t\t@Self() private _el: ElementRef<HTMLInputElement>,\r\n\t\tprivate _renderer: Renderer2\r\n\t) {}\r\n\r\n\tngOnChanges(): void {\r\n\t\tthis.buiDecimalInput = this.buiDecimalInput || 2;\r\n\t\tthis.onInput();\r\n\t}\r\n\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tconst value = this._el.nativeElement.value;\r\n\r\n\t\tconst decimalPart = value.split('.')[1];\r\n\r\n\t\tif (decimalPart && decimalPart.length > this.buiDecimalInput) {\r\n\t\t\tconst indexOfPeriod = value.indexOf('.');\r\n\t\t\tconst newValue = value.substring(0, indexOfPeriod + this.buiDecimalInput + 1);\r\n\t\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\r\n\t\t}\r\n\t\tconst resolvedValue = this._el.nativeElement.value;\r\n\t\tthis.change(\r\n\t\t\tresolvedValue === '' || resolvedValue === null || resolvedValue === undefined ? null : Number(resolvedValue)\r\n\t\t);\r\n\t}\r\n\r\n\t@HostListener('keypress', ['$event'])\r\n\tonKeypress(evt: KeyboardEvent) {\r\n\t\tconst target = evt.target as HTMLInputElement;\r\n\t\tconst value = target.value;\r\n\t\tconst isSpace = evt.key === ' ';\r\n\r\n\t\tif (\r\n\t\t\tisSpace ||\r\n\t\t\t(!['.', '-'].includes(evt.key) && isNaN(Number(evt.key))) ||\r\n\t\t\t(evt.key === '.' && value.indexOf('.') > 0)\r\n\t\t) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener('blur')\r\n\tonblur() {\r\n\t\tthis.onTouch();\r\n\t\tthis._resetDecimalPlaces();\r\n\t}\r\n\r\n\twriteValue(value: any) {\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n\t\tthis._resetDecimalPlaces();\r\n\t}\r\n\r\n\tregisterOnChange(fn: any) {\r\n\t\tthis.change = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any) {\r\n\t\tthis.onTouch = fn;\r\n\t}\r\n\r\n\tprivate _resetDecimalPlaces() {\r\n\t\tconst value = this._el.nativeElement.value;\r\n\t\tif (value === '' || value === null || value === undefined) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst splitValues = value.split('.');\r\n\t\tlet newValue = '';\r\n\t\tif (splitValues[1] && splitValues[1].length > this.buiDecimalInput) {\r\n\t\t\tnewValue = value.substring(0, splitValues[0].length + 1 + this.buiDecimalInput);\r\n\t\t} else {\r\n\t\t\tthis.buiDecimalInput = this.buiDecimalInput < 0 ? 0 : this.buiDecimalInput;\r\n\t\t\tnewValue = Number(value).toFixed(this.buiDecimalInput);\r\n\t\t}\r\n\t\tthis._renderer.setProperty(this._el.nativeElement, 'value', newValue);\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { DecimalInputDirective } from './decimal-input.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [DecimalInputDirective],\r\n\timports: [CommonModule],\r\n\texports: [DecimalInputDirective]\r\n})\r\nexport class DecimalInputModule {}\r\nexport { DecimalInputDirective };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAeA;AACO,MAAM,aAAa,GAAG,CAAC,CAAM,KAAM,GAAC;AAE3C;;AAEG;MASU,qBAAqB,CAAA;IAsBjC,WACiB,CAAA,GAAiC,EACzC,SAAoB,EAAA;QADZ,IAAG,CAAA,GAAA,GAAH,GAAG;QACX,IAAS,CAAA,SAAA,GAAT,SAAS;AAvBlB;;AAEG;QAEH,IAAe,CAAA,eAAA,GAAW,CAAC;QAGnB,IAAW,CAAA,WAAA,GAAW,EAAE;QAGxB,IAAY,CAAA,YAAA,GAAG,KAAK;QAGpB,IAAI,CAAA,IAAA,GAAG,QAAQ;QAGf,IAAS,CAAA,SAAA,GAAG,SAAS;QAErB,IAAM,CAAA,MAAA,GAAG,aAAa;QACtB,IAAO,CAAA,OAAA,GAAG,IAAI;;IAOtB,WAAW,GAAA;QACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE;;IAIf,OAAO,GAAA;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK;QAE1C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE;YAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxC,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC;;QAEtE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK;QAClD,IAAI,CAAC,MAAM,CACV,aAAa,KAAK,EAAE,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAC5G;;AAIF,IAAA,UAAU,CAAC,GAAkB,EAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAA0B;AAC7C,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC1B,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG;AAE/B,QAAA,IACC,OAAO;aACN,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,aAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAC1C;YACD,GAAG,CAAC,cAAc,EAAE;;;IAKtB,MAAM,GAAA;QACL,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,mBAAmB,EAAE;;AAG3B,IAAA,UAAU,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC;QAClE,IAAI,CAAC,mBAAmB,EAAE;;AAG3B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;;AAGjB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGV,mBAAmB,GAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK;AAC1C,QAAA,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YAC1D;;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACpC,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE;YACnE,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;;aACzE;AACN,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe;AAC1E,YAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;;AAEvD,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC;;+GAhG1D,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EANtB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACV,WAAW;AACX,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI;AAC/F,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGW,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE;wBACV,WAAW;AACX,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,IAAI;AAC/F,qBAAA;AACD,oBAAA,UAAU,EAAE;AACZ,iBAAA;;0BAwBE;;sBAnBD;;sBAGA,WAAW;uBAAC,aAAa;;sBAGzB,WAAW;uBAAC,cAAc;;sBAG1B,WAAW;uBAAC,MAAM;;sBAGlB,WAAW;uBAAC,gBAAgB;;sBAgB5B,YAAY;uBAAC,OAAO;;sBAiBpB,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;sBAenC,YAAY;uBAAC,MAAM;;;MCpFR,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAJf,YAAA,EAAA,CAAA,qBAAqB,CAC1B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHpB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,qBAAqB;AAC/B,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -1,11 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ElementRef, Input, ViewChildren, Optional, Inject, Self, Component, NgModule } from '@angular/core';
3
- import * as i4 from '@angular/common';
4
3
  import { CommonModule } from '@angular/common';
5
4
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
5
  import * as i2 from '@angular/forms';
7
6
  import { UntypedFormControl, Validators, UntypedFormArray, UntypedFormGroup, ReactiveFormsModule } from '@angular/forms';
8
- import * as i5 from '@angular/material/form-field';
7
+ import * as i4 from '@angular/material/form-field';
9
8
  import { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';
10
9
  import { Subject } from 'rxjs';
11
10
  import * as i1 from '@angular/cdk/a11y';
@@ -267,15 +266,15 @@ class DiscreteInputComponent {
267
266
  event.preventDefault();
268
267
  this.onContainerClick();
269
268
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DiscreteInputComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: MAT_FORM_FIELD, optional: true }, { token: i2.NgControl, optional: true, self: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DiscreteInputComponent, isStandalone: false, selector: "bui-discrete-input", inputs: { type: "type", separator: "separator", accept: "accept", userAriaDescribedBy: ["aria-describedby", "userAriaDescribedBy"], autocomplete: "autocomplete", sizeSpec: "sizeSpec", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { classAttribute: "bui-discrete-input bui-host" }, providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], viewQueries: [{ propertyName: "inputParts", predicate: ["part"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\r\n\trole=\"group\"\r\n\tclass=\"bui-discrete-input-container\"\r\n\t[formGroup]=\"group\"\r\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\r\n>\r\n\t<ng-container [formArrayName]=\"'parts'\">\r\n\t\t<ng-template ngFor [ngForOf]=\"parts.controls\" let-p let-i=\"index\">\r\n\t\t\t<input\r\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\r\n\t\t\t\t[formControlName]=\"i\"\r\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\r\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\r\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\r\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\r\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\r\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\r\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\r\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\r\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\r\n\t\t\t\t#part\r\n\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t(paste)=\"_onPaste($event)\"\r\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\r\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\r\n\t\t\t\tautocapitalize=\"none\"\r\n\t\t\t/>\r\n\t\t\t<span *ngIf=\"_separatorRequired(i)\" class=\"bui-discrete-input-spacer\">{{ separator }}</span>\r\n\t\t</ng-template>\r\n\t</ng-container>\r\n</div>\r\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit;color:currentColor;caret-color:auto}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-element[type=number]{-moz-appearance:textfield}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] }); }
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DiscreteInputComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: MAT_FORM_FIELD, optional: true }, { token: i2.NgControl, optional: true, self: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component }); }
270
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: DiscreteInputComponent, isStandalone: false, selector: "bui-discrete-input", inputs: { type: "type", separator: "separator", accept: "accept", userAriaDescribedBy: ["aria-describedby", "userAriaDescribedBy"], autocomplete: "autocomplete", sizeSpec: "sizeSpec", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { classAttribute: "bui-discrete-input bui-host" }, providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], viewQueries: [{ propertyName: "inputParts", predicate: ["part"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t@for (p of parts.controls; track p; let i = $index) {\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t@if (_separatorRequired(i)) {\n\t\t\t\t<span class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t\t}\n\t\t}\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit;color:currentColor;caret-color:auto}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-element[type=number]{-moz-appearance:textfield}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] }); }
272
271
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DiscreteInputComponent, decorators: [{
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DiscreteInputComponent, decorators: [{
274
273
  type: Component,
275
274
  args: [{ selector: 'bui-discrete-input', providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], host: {
276
275
  class: 'bui-discrete-input bui-host'
277
- }, standalone: false, template: "<div\r\n\trole=\"group\"\r\n\tclass=\"bui-discrete-input-container\"\r\n\t[formGroup]=\"group\"\r\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\r\n>\r\n\t<ng-container [formArrayName]=\"'parts'\">\r\n\t\t<ng-template ngFor [ngForOf]=\"parts.controls\" let-p let-i=\"index\">\r\n\t\t\t<input\r\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\r\n\t\t\t\t[formControlName]=\"i\"\r\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\r\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\r\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\r\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\r\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\r\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\r\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\r\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\r\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\r\n\t\t\t\t#part\r\n\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t(paste)=\"_onPaste($event)\"\r\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\r\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\r\n\t\t\t\tautocapitalize=\"none\"\r\n\t\t\t/>\r\n\t\t\t<span *ngIf=\"_separatorRequired(i)\" class=\"bui-discrete-input-spacer\">{{ separator }}</span>\r\n\t\t</ng-template>\r\n\t</ng-container>\r\n</div>\r\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit;color:currentColor;caret-color:auto}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-element[type=number]{-moz-appearance:textfield}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"] }]
278
- }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i5.MatFormField, decorators: [{
276
+ }, standalone: false, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t@for (p of parts.controls; track p; let i = $index) {\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i, $event)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\t[attr.inputmode]=\"type === 'number' ? 'decimal' : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t@if (_separatorRequired(i)) {\n\t\t\t\t<span class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t\t}\n\t\t}\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit;color:currentColor;caret-color:auto}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-element[type=number]{-moz-appearance:textfield}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"] }]
277
+ }], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i4.MatFormField, decorators: [{
279
278
  type: Optional
280
279
  }, {
281
280
  type: Inject,
@@ -315,11 +314,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
315
314
  }] } });
316
315
 
317
316
  class DiscreteInputModule {
318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DiscreteInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
319
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: DiscreteInputModule, declarations: [DiscreteInputComponent], imports: [CommonModule, MatFormFieldModule, ReactiveFormsModule, A11yModule], exports: [DiscreteInputComponent] }); }
320
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DiscreteInputModule, imports: [CommonModule, MatFormFieldModule, ReactiveFormsModule, A11yModule] }); }
317
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DiscreteInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
318
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: DiscreteInputModule, declarations: [DiscreteInputComponent], imports: [CommonModule, MatFormFieldModule, ReactiveFormsModule, A11yModule], exports: [DiscreteInputComponent] }); }
319
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DiscreteInputModule, imports: [CommonModule, MatFormFieldModule, ReactiveFormsModule, A11yModule] }); }
321
320
  }
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DiscreteInputModule, decorators: [{
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DiscreteInputModule, decorators: [{
323
322
  type: NgModule,
324
323
  args: [{
325
324
  declarations: [DiscreteInputComponent],