@theseam/ui-common 0.4.13 → 0.4.15

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 (139) hide show
  1. package/buttons/public-api.d.ts +1 -0
  2. package/buttons/testing/anchor-badge-button.harness.d.ts +16 -0
  3. package/buttons/testing/anchor-button.harness.d.ts +16 -0
  4. package/buttons/testing/badge-button.harness.d.ts +15 -0
  5. package/buttons/testing/base-badge-button.harness.d.ts +15 -0
  6. package/buttons/testing/base-button.harness.d.ts +19 -0
  7. package/buttons/testing/button.harness.d.ts +15 -0
  8. package/buttons/testing/index.d.ts +5 -0
  9. package/buttons/testing/toggle-button.harness.d.ts +21 -0
  10. package/checkbox/checkbox.component.d.ts +1 -1
  11. package/checkbox/checkbox.module.d.ts +2 -3
  12. package/datatable/datatable.module.d.ts +1 -1
  13. package/esm2020/buttons/button/button.component.mjs +2 -1
  14. package/esm2020/buttons/public-api.mjs +2 -1
  15. package/esm2020/buttons/testing/anchor-badge-button.harness.mjs +18 -0
  16. package/esm2020/buttons/testing/anchor-button.harness.mjs +18 -0
  17. package/esm2020/buttons/testing/badge-button.harness.mjs +14 -0
  18. package/esm2020/buttons/testing/base-badge-button.harness.mjs +29 -0
  19. package/esm2020/buttons/testing/base-button.harness.mjs +41 -0
  20. package/esm2020/buttons/testing/button.harness.mjs +16 -0
  21. package/esm2020/buttons/testing/index.mjs +6 -0
  22. package/esm2020/buttons/testing/toggle-button.harness.mjs +25 -0
  23. package/esm2020/checkbox/checkbox.component.mjs +8 -3
  24. package/esm2020/checkbox/checkbox.module.mjs +5 -12
  25. package/esm2020/datatable/datatable.module.mjs +5 -5
  26. package/esm2020/form-field/form-field.component.mjs +4 -4
  27. package/esm2020/framework/schema-form/index.mjs +2 -1
  28. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +6 -3
  29. package/esm2020/framework/schema-form/schema-form-framework.mjs +62 -7
  30. package/esm2020/framework/schema-form/schema-form-widget.mjs +2 -0
  31. package/esm2020/framework/schema-form/schema-form.module.mjs +1 -8
  32. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +21 -11
  33. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +20 -0
  34. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +17 -8
  35. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +14 -5
  36. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +19 -9
  37. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +21 -13
  38. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +30 -18
  39. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +48 -0
  40. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +57 -0
  41. package/esm2020/google-maps/google-maps/google-maps.component.mjs +9 -2
  42. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +2 -1
  43. package/esm2020/menu/public-api.mjs +5 -1
  44. package/esm2020/menu/testing/menu-footer.harness.mjs +28 -0
  45. package/esm2020/menu/testing/menu-header.harness.mjs +23 -0
  46. package/esm2020/menu/testing/menu-item.harness.mjs +59 -0
  47. package/esm2020/menu/testing/menu.harness.mjs +163 -0
  48. package/esm2020/menu/testing/utils.mjs +13 -0
  49. package/esm2020/story-helpers/args-to-tpl.mjs +83 -0
  50. package/esm2020/story-helpers/public-api.mjs +2 -2
  51. package/esm2020/tel-input/public-api.mjs +2 -1
  52. package/esm2020/tel-input/tel-input/tel-input.component.mjs +22 -10
  53. package/esm2020/tel-input/tel-input.directive.mjs +12 -13
  54. package/esm2020/tel-input/tel-input.module.mjs +10 -9
  55. package/esm2020/tel-input/testing/tel-input.harness.mjs +49 -0
  56. package/esm2020/testing/harnesses/ng-select-dropdown.harness.mjs +39 -0
  57. package/esm2020/testing/harnesses/ng-select-option.harness.mjs +26 -0
  58. package/esm2020/testing/harnesses/ng-select.harness.mjs +104 -0
  59. package/esm2020/testing/public-api.mjs +4 -1
  60. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +1 -1
  61. package/fesm2015/theseam-ui-common-buttons.mjs +181 -3
  62. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  63. package/fesm2015/theseam-ui-common-checkbox.mjs +12 -14
  64. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  65. package/fesm2015/theseam-ui-common-datatable.mjs +4 -4
  66. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  67. package/fesm2015/theseam-ui-common-form-field.mjs +3 -3
  68. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  69. package/fesm2015/theseam-ui-common-framework.mjs +248 -164
  70. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  71. package/fesm2015/theseam-ui-common-google-maps.mjs +10 -1
  72. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  73. package/fesm2015/theseam-ui-common-menu.mjs +329 -3
  74. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  75. package/fesm2015/theseam-ui-common-story-helpers.mjs +86 -1
  76. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2015/theseam-ui-common-tel-input.mjs +105 -29
  78. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  79. package/fesm2015/theseam-ui-common-testing.mjs +197 -1
  80. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  81. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  82. package/fesm2020/theseam-ui-common-buttons.mjs +154 -2
  83. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  84. package/fesm2020/theseam-ui-common-checkbox.mjs +12 -14
  85. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  86. package/fesm2020/theseam-ui-common-datatable.mjs +4 -4
  87. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  88. package/fesm2020/theseam-ui-common-form-field.mjs +3 -3
  89. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  90. package/fesm2020/theseam-ui-common-framework.mjs +236 -162
  91. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  92. package/fesm2020/theseam-ui-common-google-maps.mjs +9 -1
  93. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  94. package/fesm2020/theseam-ui-common-menu.mjs +275 -2
  95. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  96. package/fesm2020/theseam-ui-common-story-helpers.mjs +84 -1
  97. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  98. package/fesm2020/theseam-ui-common-tel-input.mjs +89 -29
  99. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  100. package/fesm2020/theseam-ui-common-testing.mjs +165 -1
  101. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  102. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  103. package/framework/schema-form/index.d.ts +1 -0
  104. package/framework/schema-form/schema-form-framework.d.ts +12 -1
  105. package/framework/schema-form/schema-form-widget.d.ts +61 -0
  106. package/framework/schema-form/schema-form.module.d.ts +1 -2
  107. package/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.d.ts +12 -11
  108. package/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.d.ts +12 -0
  109. package/framework/schema-form-controls/schema-form-input/schema-form-input.component.d.ts +10 -9
  110. package/framework/schema-form-controls/schema-form-number/schema-form-number.component.d.ts +8 -7
  111. package/framework/schema-form-controls/schema-form-select/schema-form-select.component.d.ts +10 -9
  112. package/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.d.ts +10 -9
  113. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +10 -9
  114. package/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.d.ts +23 -0
  115. package/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.d.ts +32 -0
  116. package/google-maps/google-maps/google-maps.component.d.ts +2 -1
  117. package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +1 -0
  118. package/menu/menu-footer-action/menu-footer-action.component.d.ts +1 -1
  119. package/menu/public-api.d.ts +4 -0
  120. package/menu/testing/menu-footer.harness.d.ts +22 -0
  121. package/menu/testing/menu-header.harness.d.ts +18 -0
  122. package/menu/testing/menu-item.harness.d.ts +37 -0
  123. package/menu/testing/menu.harness.d.ts +74 -0
  124. package/menu/testing/utils.d.ts +5 -0
  125. package/package.json +1 -1
  126. package/story-helpers/args-to-tpl.d.ts +25 -0
  127. package/story-helpers/public-api.d.ts +1 -0
  128. package/tel-input/public-api.d.ts +1 -0
  129. package/tel-input/tel-input/tel-input.component.d.ts +2 -2
  130. package/tel-input/tel-input.directive.d.ts +1 -1
  131. package/tel-input/tel-input.module.d.ts +7 -7
  132. package/tel-input/testing/tel-input.harness.d.ts +19 -0
  133. package/testing/harnesses/ng-select-dropdown.harness.d.ts +23 -0
  134. package/testing/harnesses/ng-select-option.harness.d.ts +18 -0
  135. package/testing/harnesses/ng-select.harness.d.ts +50 -0
  136. package/testing/public-api.d.ts +3 -0
  137. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +10 -10
  138. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +0 -79
  139. package/framework/schema-form-controls/schema-form-controls.module.d.ts +0 -20
@@ -1,7 +1,7 @@
1
1
  import { __awaiter, __decorate } from 'tslib';
2
2
  import { ComponentHarness } from '@angular/cdk/testing';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, Input, InjectionToken, Component, ChangeDetectionStrategy, Optional, Inject, Self, HostBinding, forwardRef, ContentChild, ContentChildren, NgModule } from '@angular/core';
4
+ import { Directive, Input, InjectionToken, Component, ChangeDetectionStrategy, Optional, Inject, Self, HostBinding, ContentChild, ContentChildren, NgModule } from '@angular/core';
5
5
  import { InputBoolean } from '@theseam/ui-common/core';
6
6
  import * as i1 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
@@ -495,7 +495,7 @@ TheSeamFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
495
495
  TheSeamFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamFormFieldComponent, selector: "seam-form-field", inputs: { inline: "inline", label: "label", labelPosition: "labelPosition", labelClass: "labelClass", maxErrors: "maxErrors", numPaddingErrors: "numPaddingErrors", labelId: "labelId", helpText: "helpText", helpTextId: "helpTextId" }, host: { properties: { "style.display": "this._displayStyle" } }, providers: [
496
496
  {
497
497
  provide: FORM_FIELD_COMPONENT,
498
- useClass: forwardRef(() => TheSeamFormFieldComponent),
498
+ useExisting: TheSeamFormFieldComponent,
499
499
  }
500
500
  ], queries: [{ propertyName: "helpTextTpl", first: true, predicate: FormFieldHelpTextDirective, descendants: true, static: true }, { propertyName: "labelTpl", first: true, predicate: FormFieldLabelTplDirective, descendants: true, static: true }, { propertyName: "contentInput", first: true, predicate: InputDirective, descendants: true, static: true }, { propertyName: "fieldErrors", predicate: FormFieldErrorDirective }], ngImport: i0, template: "<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [".seam-form-field-inline{display:flex;flex-direction:row}.seam-form-field-inline .control-label{margin-bottom:0;display:flex;flex-direction:column;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.FormFieldErrorListComponent, selector: "seam-form-field-error-list", inputs: ["errors", "showValidatorName", "numPaddingErrors", "listItemTpls", "maxErrors", "control", "showErrors"] }, { kind: "directive", type: i3.ElemResizedDirective, selector: "[seamElemResized]", outputs: ["seamElemResized"] }, { kind: "component", type: i3.PasswordInputRevealComponent, selector: "seam-password-input-reveal", inputs: ["inputRef", "passwordVisible"] }, { kind: "component", type: FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
501
501
  __decorate([
@@ -506,7 +506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
506
506
  args: [{ selector: 'seam-form-field', providers: [
507
507
  {
508
508
  provide: FORM_FIELD_COMPONENT,
509
- useClass: forwardRef(() => TheSeamFormFieldComponent),
509
+ useExisting: TheSeamFormFieldComponent,
510
510
  }
511
511
  ], template: "<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [".seam-form-field-inline{display:flex;flex-direction:row}.seam-form-field-inline .control-label{margin-bottom:0;display:flex;flex-direction:column;justify-content:center}\n"] }]
512
512
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _displayStyle: [{
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-form-field.mjs","sources":["../../../projects/ui-common/form-field/testing/form-field-required-indicator.harness.ts","../../../projects/ui-common/form-field/form-field-error.directive.ts","../../../projects/ui-common/form-field/form-field-help-text.directive.ts","../../../projects/ui-common/form-field/form-field-label-tpl.directive.ts","../../../projects/ui-common/form-field/form-field-tokens.ts","../../../projects/ui-common/form-field/form-field-required-indicator.component.ts","../../../projects/ui-common/form-field/input.directive.ts","../../../projects/ui-common/form-field/form-field.component.ts","../../../projects/ui-common/form-field/form-field.component.html","../../../projects/ui-common/form-field/form-field.module.ts","../../../projects/ui-common/form-field/theseam-ui-common-form-field.ts"],"sourcesContent":["import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class TheSeamFormFieldRequiredIndicatorHarness extends ComponentHarness {\n static hostSelector = 'seam-form-field-required-indicator'\n\n public async isIndicatorVisible() {\n return (await (await this.host()).text()) === '*'\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Directive, Input, TemplateRef } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamFormFieldError]'\n})\nexport class FormFieldErrorDirective {\n static ngAcceptInputType_external: BooleanInput\n\n @Input()\n get validatorName(): string | undefined | null { return this._validatorName || this.seamFormFieldError }\n set validatorName(value: string | undefined | null) { this._validatorName = value }\n private _validatorName: string | undefined | null\n\n @Input() seamFormFieldError: string | undefined | null\n\n @Input() @InputBoolean() external = false\n\n constructor(public template: TemplateRef<any>) {}\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamFormFieldHelpText]'\n})\nexport class FormFieldHelpTextDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamFormFieldLabelTpl]'\n})\nexport class FormFieldLabelTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nexport const FORM_FIELD_COMPONENT = new InjectionToken<any>('FORM_FIELD_COMPONENT')\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { FORM_FIELD_COMPONENT } from './form-field-tokens'\n\n@Component({\n selector: 'seam-form-field-required-indicator',\n template: `\n <ng-container *ngIf=\"_formField?.contentInput; else noControl\">\n <ng-container *ngIf=\"_formField?.contentInput?.required\">*</ng-container>\n </ng-container>\n <ng-template #noControl>\n <ng-container *ngIf=\"required\">*</ng-container>\n </ng-template>\n `,\n styles: [],\n host: {\n 'class': 'text-danger'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldRequiredIndicatorComponent {\n static ngAcceptInputType_required: BooleanInput\n\n /** Used if a form control is not found. */\n @Input() @InputBoolean() required = false\n\n constructor(\n @Optional() @Inject(FORM_FIELD_COMPONENT) public readonly _formField: any\n ) { }\n\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Directive, DoCheck, ElementRef, HostBinding, Input, Optional, Self } from '@angular/core'\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms'\nimport { Subject } from 'rxjs'\n\nimport { NgSelectComponent } from '@ng-select/ng-select'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { toggleAttribute } from '@theseam/ui-common/utils'\n\n// NOTE: Partially based on mat-input: https://github.com/angular/material2/blob/master/src/lib/input/input.ts\n\nlet nextUniqueId = 0\n\n@Directive({\n // TODO: Consider removing restriction and instead adding a dev warning. A few\n // inputs in the app need to be changed for this first.\n selector: 'input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]',\n exportAs: 'seamInput',\n})\nexport class InputDirective implements DoCheck {\n static ngAcceptInputType_required: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_readonly: BooleanInput\n\n protected _uid = `lib-input-${nextUniqueId++}`\n\n // TODO: Remove this being added to all seamInput elements or break this\n // directive up. Some elements in our app already have worked around this\n // class being there, so some refactoring will be required before removal.\n @HostBinding('class.form-control') _isFormControl = true\n @HostBinding('class.form-control-sm') get _isFormControlSmall() {\n return this._isFormControl && this.seamInputSize === 'sm'\n }\n @HostBinding('class.is-invalid') get _isInvalid() {\n return this.ngControl && this.ngControl.invalid && (this.ngControl.dirty || this.ngControl.touched)\n }\n\n @HostBinding('attr.id') get _attrId() { return this._isNgSelect() ? undefined : this.id }\n @HostBinding('attr.placeholder') get _attrPlaceholder() { return this.placeholder }\n @HostBinding('attr.aria-describedby') ariaDescribedBy: string | undefined\n\n @Input() seamInputSize: 'sm' | 'normal' = 'normal'\n\n @Input()\n get id(): string | undefined | null { return this._id }\n set id(value: string | undefined | null) { this._id = value || this._uid }\n protected _id: string | undefined | null\n\n /** Input type of the element. */\n @Input()\n get type(): string | undefined | null { return this._type }\n set type(value: string | undefined | null) {\n this._type = value || 'text'\n // this._validateType()\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if ((!this._isTextarea() && !this._isNgSelect()) /* && getSupportedInputTypes().has(this._type) */) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type\n }\n }\n protected _type: string | undefined | null = 'text'\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string | undefined | null\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input() @InputBoolean() required = false\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled\n }\n return this._disabled\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value)\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false\n this.stateChanges.next()\n }\n }\n protected _disabled = false\n\n focused = false\n\n readonly stateChanges: Subject<void> = new Subject<void>()\n\n // @Input()\n // get value(): string { return this._inputValueAccessor.value; }\n // set value(value: string) {\n // if (value !== this.value) {\n // this._inputValueAccessor.value = value;\n // this.stateChanges.next();\n // }\n // }\n\n /** Whether the element is readonly. */\n @Input() @InputBoolean() readonly = false\n\n constructor(\n public _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() private _parentForm: NgForm,\n @Optional() private _parentFormGroup: FormGroupDirective,\n // 3rd party support\n @Optional() private _ngSelect: NgSelectComponent\n ) {\n // Force setter to be called in case id was not specified.\n // eslint-disable-next-line no-self-assign\n this.id = this.id\n\n if (!this._shouldHaveFormControlCssClass()) {\n this._isFormControl = false\n }\n }\n\n ngDoCheck() {\n if (this._isNgSelect()) {\n this._ngSelect.labelForId = this.id\n this._ngSelect.setDisabledState(this.disabled)\n } else {\n toggleAttribute(this._elementRef.nativeElement, 'required', this.required)\n toggleAttribute(this._elementRef.nativeElement, 'disabled', this.disabled)\n }\n }\n\n /** Should only be textual inputs, but initially our app added to all form controls. */\n protected _shouldHaveFormControlCssClass() {\n return !this._isSeamCheckbox() &&\n !this._isRadioInput() &&\n !this._isNgbRadioGroup() &&\n !this._isTelInput() &&\n !this._isQuillEditor()\n }\n\n /** Determines if the component host is a textarea. */\n protected _isTextarea() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'textarea'\n }\n\n /** Determines if the component host is a ng-select. */\n protected _isNgSelect() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'ng-select'\n }\n\n /** Determines if the component host is a seam-checkbox. */\n protected _isSeamCheckbox() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'seam-checkbox'\n }\n\n /** Determines if the component host is a radio input. */\n protected _isRadioInput() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'input' &&\n this._elementRef.nativeElement.type.toLowerCase() === 'radio'\n }\n\n protected _isNgbRadioGroup() {\n return this._elementRef.nativeElement.getAttribute('ngbRadioGroup') !== null\n }\n\n protected _isTelInput() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'seam-tel-input'\n }\n\n protected _isQuillEditor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'quill-editor'\n }\n\n /** Make sure the input is a supported type. */\n // protected _validateType() {\n // if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n // throw getMatInputUnsupportedTypeError(this._type)\n // }\n // }\n\n /** Focuses the input. */\n focus(): void {\n this._elementRef.nativeElement.focus()\n }\n\n /** Unfocuses the input. */\n blur(): void {\n this._elementRef.nativeElement.blur()\n }\n\n setValue(value: any) {\n if (this.ngControl) {\n const control = this.ngControl.control\n if (control) {\n control.setValue(value)\n }\n }\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList\n} from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, ReplaySubject, Subscription } from 'rxjs'\nimport { distinctUntilChanged, filter, map, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { IErrorRecord } from '@theseam/ui-common/form-field-error'\n\nimport { FormFieldErrorDirective } from './form-field-error.directive'\nimport { FormFieldHelpTextDirective } from './form-field-help-text.directive'\nimport { FormFieldLabelTplDirective } from './form-field-label-tpl.directive'\nimport { FORM_FIELD_COMPONENT } from './form-field-tokens'\nimport { InputDirective } from './input.directive'\n\nlet nextLabelUniqueId = 0\n\n/**\n * Should wrap all form controls.\n */\n@Component({\n selector: 'seam-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n providers: [\n {\n provide: FORM_FIELD_COMPONENT,\n useClass: forwardRef(() => TheSeamFormFieldComponent),\n }\n ],\n})\nexport class TheSeamFormFieldComponent implements OnInit, OnDestroy {\n static ngAcceptInputType_inline: BooleanInput\n\n private readonly _helpTextStrSubject = new BehaviorSubject<string | undefined>(undefined)\n private readonly _helpTextTplSubject = new BehaviorSubject<FormFieldHelpTextDirective | undefined>(undefined)\n private readonly _contentInputSubject = new BehaviorSubject<InputDirective | undefined>(undefined)\n\n /** @ignore */\n protected _labelUid = `seam-label-${nextLabelUniqueId++}`\n\n /** @ignore */\n protected _helpTextUid = `seam-help-text-${nextLabelUniqueId++}`\n\n /** @ignore */\n public _errorPadding = '0px'\n\n /** @ignore */\n @HostBinding('style.display') get _displayStyle() { return this.inline ? 'inline-block' : 'block' }\n\n /**\n * Used to declare an inline element.\n *\n * NOTE: Not well tested or supported, so it may have some issues currently\n * and could change.\n */\n @Input() @InputBoolean() inline = false\n\n /** Add a text label for the form control. */\n @Input() label: string | undefined | null\n\n /**\n * The label can be on top or inline.\n *\n * > Only supports `ltr` direction, so inline will only place the label on the\n * > left.\n */\n @Input() labelPosition: 'top' | 'inline' = 'top'\n\n /**\n * CSS class to add to the label element.\n *\n * Accepts a single space separated string of classes, like the html class\n * attribute.\n */\n @Input() labelClass: string | undefined | null\n\n /** Max errors to display. */\n @Input() maxErrors = -1\n\n /**\n * A padding error is an always allocated space equivalent to a single line\n * error string.\n */\n @Input() numPaddingErrors = 1\n\n /**\n * `id` attribute to add to the label element. This should not be needed in\n * most situations, because a unique id will be generated if not provided.\n */\n @Input()\n get labelId(): string | undefined | null { return this._labelId }\n set labelId(value: string | undefined | null) { this._labelId = value || this._labelUid }\n /** @ignore */\n protected _labelId: string | undefined | null\n\n /**\n * Help text added below the control.\n */\n @Input()\n get helpText(): string | undefined | null { return this._helpTextStrSubject.value }\n set helpText(value: string | undefined | null) {\n this._helpTextStrSubject.next(value || undefined)\n }\n\n /**\n * `id` attribute to add to the label element. This should not be needed in\n * most situations, because a unique id will be generated if not provided.\n */\n @Input()\n get helpTextId(): string | undefined | null { return this._helpTextId }\n set helpTextId(value: string | undefined | null) { this._helpTextId = value || this._helpTextUid }\n /** @ignore */\n protected _helpTextId: string | undefined | null\n\n /** @ignore */\n @ContentChild(FormFieldHelpTextDirective, { static: true })\n get helpTextTpl(): FormFieldLabelTplDirective | undefined { return this._helpTextTplSubject.value }\n set helpTextTpl(value: FormFieldLabelTplDirective | undefined) {\n this._helpTextTplSubject.next(value || undefined)\n }\n\n /** @ignore */\n @ContentChild(FormFieldLabelTplDirective, { static: true }) labelTpl?: FormFieldLabelTplDirective\n\n /** @ignore */\n @ContentChild(InputDirective, { static: true })\n get contentInput(): InputDirective | undefined { return this._contentInputSubject.value }\n set contentInput(value: InputDirective | undefined) { this._contentInputSubject.next(value || undefined) }\n\n /** @ignore */\n @ContentChildren(FormFieldErrorDirective)\n get fieldErrors() { return this._fieldErrors }\n set fieldErrors(value: QueryList<FormFieldErrorDirective[]> | undefined | null) {\n this._fieldErrors = value\n\n if (this._sub) { this._sub.unsubscribe() }\n if (this.fieldErrors) {\n this._sub = this.fieldErrors.changes\n .pipe(startWith(this.fieldErrors))\n .pipe(map(v => v.toArray() as FormFieldErrorDirective[]))\n .pipe(tap(v => {\n const records: IErrorRecord[] = []\n for (const item of v) {\n if (item.validatorName) {\n records.push({\n validatorName: item.validatorName,\n error: null,\n template: item.template,\n external: item.external\n })\n }\n }\n this._fieldErrorsSubject2.next(records)\n }))\n .subscribe(v => this._fieldErrorsSubject.next(v))\n }\n }\n /** @ignore */\n private _fieldErrors: QueryList<FormFieldErrorDirective[]> | undefined | null\n /** @ignore */\n private _sub?: Subscription\n\n /** @ignore */\n private readonly _fieldErrorsSubject = new ReplaySubject<FormFieldErrorDirective[]>(1)\n /** @ignore */\n public readonly fieldErrors$: Observable<FormFieldErrorDirective[]> = this._fieldErrorsSubject.asObservable()\n\n /** @ignore */\n private readonly _fieldErrorsSubject2 = new ReplaySubject<IErrorRecord[]>(1)\n /** @ignore */\n public readonly fieldErrors2$: Observable<IErrorRecord[]> = this._fieldErrorsSubject2.asObservable()\n\n get isPasswordInput() {\n return this.contentInput && this.contentInput.type && this.contentInput.type === 'password'\n }\n get passwordInputElement() {\n return this.contentInput && this.contentInput._elementRef && this.contentInput._elementRef.nativeElement\n }\n\n get hasHelpText() { return !!this._helpTextStrSubject.value || !!this._helpTextTplSubject.value }\n // get hasHelpText() { return !!this.helpText || !!this._helpTextTpl }\n\n private _helpTextSub = Subscription.EMPTY\n\n /** @ignore */\n constructor(\n private readonly _elementRef: ElementRef\n ) { }\n\n /** @ignore */\n ngOnInit() {\n this._helpTextSub = this._contentInputSubject.pipe(\n filter(contentInput => !!contentInput),\n switchMap(contentInput => combineLatest([\n this._helpTextStrSubject,\n this._helpTextTplSubject\n ]).pipe(\n map(() => this.hasHelpText),\n distinctUntilChanged(),\n tap(() => {\n if (contentInput) {\n contentInput.ariaDescribedBy = this._helpTextId || undefined\n }\n })\n ))\n ).subscribe()\n }\n\n /** @ignore */\n ngOnDestroy() {\n this._sub?.unsubscribe()\n this._helpTextSub?.unsubscribe()\n }\n\n /** @ignore */\n public isValidatorMatch(validatorName: string, tplValidatorName: string, errors: any): boolean {\n const tplValidatorNames = tplValidatorName.split(' ')\n\n for (let i = 0; i < tplValidatorNames.length; i++) {\n const name = tplValidatorNames[i]\n if (name === validatorName && i === 0) {\n return true\n }\n }\n\n return false\n }\n\n /** @ignore */\n public _labelElemResized(labelElem: HTMLLabelElement) {\n if (labelElem) {\n this._errorPadding = `${labelElem.getBoundingClientRect().width}px`\n } else {\n this._errorPadding = '0px'\n }\n }\n\n public getElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n}\n","<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { TheSeamFormFieldErrorModule } from '@theseam/ui-common/form-field-error'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\n\nimport { FormFieldErrorDirective } from './form-field-error.directive'\nimport { FormFieldHelpTextDirective } from './form-field-help-text.directive'\nimport { FormFieldLabelTplDirective } from './form-field-label-tpl.directive'\nimport { FormFieldRequiredIndicatorComponent } from './form-field-required-indicator.component'\nimport { TheSeamFormFieldComponent } from './form-field.component'\nimport { InputDirective } from './input.directive'\n\n@NgModule({\n declarations: [\n TheSeamFormFieldComponent,\n InputDirective,\n FormFieldErrorDirective,\n FormFieldLabelTplDirective,\n FormFieldRequiredIndicatorComponent,\n FormFieldHelpTextDirective\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TheSeamFormFieldErrorModule,\n TheSeamSharedModule\n ],\n exports: [\n TheSeamFormFieldComponent,\n InputDirective,\n FormFieldErrorDirective,\n FormFieldLabelTplDirective,\n FormFieldRequiredIndicatorComponent,\n FormFieldHelpTextDirective\n ]\n})\nexport class TheSeamFormFieldModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i4.FormFieldRequiredIndicatorComponent"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-form-field.mjs","sources":["../../../projects/ui-common/form-field/testing/form-field-required-indicator.harness.ts","../../../projects/ui-common/form-field/form-field-error.directive.ts","../../../projects/ui-common/form-field/form-field-help-text.directive.ts","../../../projects/ui-common/form-field/form-field-label-tpl.directive.ts","../../../projects/ui-common/form-field/form-field-tokens.ts","../../../projects/ui-common/form-field/form-field-required-indicator.component.ts","../../../projects/ui-common/form-field/input.directive.ts","../../../projects/ui-common/form-field/form-field.component.ts","../../../projects/ui-common/form-field/form-field.component.html","../../../projects/ui-common/form-field/form-field.module.ts","../../../projects/ui-common/form-field/theseam-ui-common-form-field.ts"],"sourcesContent":["import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class TheSeamFormFieldRequiredIndicatorHarness extends ComponentHarness {\n static hostSelector = 'seam-form-field-required-indicator'\n\n public async isIndicatorVisible() {\n return (await (await this.host()).text()) === '*'\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Directive, Input, TemplateRef } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamFormFieldError]'\n})\nexport class FormFieldErrorDirective {\n static ngAcceptInputType_external: BooleanInput\n\n @Input()\n get validatorName(): string | undefined | null { return this._validatorName || this.seamFormFieldError }\n set validatorName(value: string | undefined | null) { this._validatorName = value }\n private _validatorName: string | undefined | null\n\n @Input() seamFormFieldError: string | undefined | null\n\n @Input() @InputBoolean() external = false\n\n constructor(public template: TemplateRef<any>) {}\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamFormFieldHelpText]'\n})\nexport class FormFieldHelpTextDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamFormFieldLabelTpl]'\n})\nexport class FormFieldLabelTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nexport const FORM_FIELD_COMPONENT = new InjectionToken<any>('FORM_FIELD_COMPONENT')\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { FORM_FIELD_COMPONENT } from './form-field-tokens'\n\n@Component({\n selector: 'seam-form-field-required-indicator',\n template: `\n <ng-container *ngIf=\"_formField?.contentInput; else noControl\">\n <ng-container *ngIf=\"_formField?.contentInput?.required\">*</ng-container>\n </ng-container>\n <ng-template #noControl>\n <ng-container *ngIf=\"required\">*</ng-container>\n </ng-template>\n `,\n styles: [],\n host: {\n 'class': 'text-danger'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldRequiredIndicatorComponent {\n static ngAcceptInputType_required: BooleanInput\n\n /** Used if a form control is not found. */\n @Input() @InputBoolean() required = false\n\n constructor(\n @Optional() @Inject(FORM_FIELD_COMPONENT) public readonly _formField: any\n ) { }\n\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Directive, DoCheck, ElementRef, HostBinding, Input, Optional, Self } from '@angular/core'\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms'\nimport { Subject } from 'rxjs'\n\nimport { NgSelectComponent } from '@ng-select/ng-select'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { toggleAttribute } from '@theseam/ui-common/utils'\n\n// NOTE: Partially based on mat-input: https://github.com/angular/material2/blob/master/src/lib/input/input.ts\n\nlet nextUniqueId = 0\n\n@Directive({\n // TODO: Consider removing restriction and instead adding a dev warning. A few\n // inputs in the app need to be changed for this first.\n selector: 'input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]',\n exportAs: 'seamInput',\n})\nexport class InputDirective implements DoCheck {\n static ngAcceptInputType_required: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_readonly: BooleanInput\n\n protected _uid = `lib-input-${nextUniqueId++}`\n\n // TODO: Remove this being added to all seamInput elements or break this\n // directive up. Some elements in our app already have worked around this\n // class being there, so some refactoring will be required before removal.\n @HostBinding('class.form-control') _isFormControl = true\n @HostBinding('class.form-control-sm') get _isFormControlSmall() {\n return this._isFormControl && this.seamInputSize === 'sm'\n }\n @HostBinding('class.is-invalid') get _isInvalid() {\n return this.ngControl && this.ngControl.invalid && (this.ngControl.dirty || this.ngControl.touched)\n }\n\n @HostBinding('attr.id') get _attrId() { return this._isNgSelect() ? undefined : this.id }\n @HostBinding('attr.placeholder') get _attrPlaceholder() { return this.placeholder }\n @HostBinding('attr.aria-describedby') ariaDescribedBy: string | undefined\n\n @Input() seamInputSize: 'sm' | 'normal' = 'normal'\n\n @Input()\n get id(): string | undefined | null { return this._id }\n set id(value: string | undefined | null) { this._id = value || this._uid }\n protected _id: string | undefined | null\n\n /** Input type of the element. */\n @Input()\n get type(): string | undefined | null { return this._type }\n set type(value: string | undefined | null) {\n this._type = value || 'text'\n // this._validateType()\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if ((!this._isTextarea() && !this._isNgSelect()) /* && getSupportedInputTypes().has(this._type) */) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type\n }\n }\n protected _type: string | undefined | null = 'text'\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string | undefined | null\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input() @InputBoolean() required = false\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled\n }\n return this._disabled\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value)\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false\n this.stateChanges.next()\n }\n }\n protected _disabled = false\n\n focused = false\n\n readonly stateChanges: Subject<void> = new Subject<void>()\n\n // @Input()\n // get value(): string { return this._inputValueAccessor.value; }\n // set value(value: string) {\n // if (value !== this.value) {\n // this._inputValueAccessor.value = value;\n // this.stateChanges.next();\n // }\n // }\n\n /** Whether the element is readonly. */\n @Input() @InputBoolean() readonly = false\n\n constructor(\n public _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() private _parentForm: NgForm,\n @Optional() private _parentFormGroup: FormGroupDirective,\n // 3rd party support\n @Optional() private _ngSelect: NgSelectComponent\n ) {\n // Force setter to be called in case id was not specified.\n // eslint-disable-next-line no-self-assign\n this.id = this.id\n\n if (!this._shouldHaveFormControlCssClass()) {\n this._isFormControl = false\n }\n }\n\n ngDoCheck() {\n if (this._isNgSelect()) {\n this._ngSelect.labelForId = this.id\n this._ngSelect.setDisabledState(this.disabled)\n } else {\n toggleAttribute(this._elementRef.nativeElement, 'required', this.required)\n toggleAttribute(this._elementRef.nativeElement, 'disabled', this.disabled)\n }\n }\n\n /** Should only be textual inputs, but initially our app added to all form controls. */\n protected _shouldHaveFormControlCssClass() {\n return !this._isSeamCheckbox() &&\n !this._isRadioInput() &&\n !this._isNgbRadioGroup() &&\n !this._isTelInput() &&\n !this._isQuillEditor()\n }\n\n /** Determines if the component host is a textarea. */\n protected _isTextarea() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'textarea'\n }\n\n /** Determines if the component host is a ng-select. */\n protected _isNgSelect() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'ng-select'\n }\n\n /** Determines if the component host is a seam-checkbox. */\n protected _isSeamCheckbox() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'seam-checkbox'\n }\n\n /** Determines if the component host is a radio input. */\n protected _isRadioInput() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'input' &&\n this._elementRef.nativeElement.type.toLowerCase() === 'radio'\n }\n\n protected _isNgbRadioGroup() {\n return this._elementRef.nativeElement.getAttribute('ngbRadioGroup') !== null\n }\n\n protected _isTelInput() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'seam-tel-input'\n }\n\n protected _isQuillEditor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'quill-editor'\n }\n\n /** Make sure the input is a supported type. */\n // protected _validateType() {\n // if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n // throw getMatInputUnsupportedTypeError(this._type)\n // }\n // }\n\n /** Focuses the input. */\n focus(): void {\n this._elementRef.nativeElement.focus()\n }\n\n /** Unfocuses the input. */\n blur(): void {\n this._elementRef.nativeElement.blur()\n }\n\n setValue(value: any) {\n if (this.ngControl) {\n const control = this.ngControl.control\n if (control) {\n control.setValue(value)\n }\n }\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList\n} from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, ReplaySubject, Subscription } from 'rxjs'\nimport { distinctUntilChanged, filter, map, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { IErrorRecord } from '@theseam/ui-common/form-field-error'\n\nimport { FormFieldErrorDirective } from './form-field-error.directive'\nimport { FormFieldHelpTextDirective } from './form-field-help-text.directive'\nimport { FormFieldLabelTplDirective } from './form-field-label-tpl.directive'\nimport { FORM_FIELD_COMPONENT } from './form-field-tokens'\nimport { InputDirective } from './input.directive'\n\nlet nextLabelUniqueId = 0\n\n/**\n * Should wrap all form controls.\n */\n@Component({\n selector: 'seam-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n providers: [\n {\n provide: FORM_FIELD_COMPONENT,\n useExisting: TheSeamFormFieldComponent,\n }\n ],\n})\nexport class TheSeamFormFieldComponent implements OnInit, OnDestroy {\n static ngAcceptInputType_inline: BooleanInput\n\n private readonly _helpTextStrSubject = new BehaviorSubject<string | undefined>(undefined)\n private readonly _helpTextTplSubject = new BehaviorSubject<FormFieldHelpTextDirective | undefined>(undefined)\n private readonly _contentInputSubject = new BehaviorSubject<InputDirective | undefined>(undefined)\n\n /** @ignore */\n protected _labelUid = `seam-label-${nextLabelUniqueId++}`\n\n /** @ignore */\n protected _helpTextUid = `seam-help-text-${nextLabelUniqueId++}`\n\n /** @ignore */\n public _errorPadding = '0px'\n\n /** @ignore */\n @HostBinding('style.display') get _displayStyle() { return this.inline ? 'inline-block' : 'block' }\n\n /**\n * Used to declare an inline element.\n *\n * NOTE: Not well tested or supported, so it may have some issues currently\n * and could change.\n */\n @Input() @InputBoolean() inline = false\n\n /** Add a text label for the form control. */\n @Input() label: string | undefined | null\n\n /**\n * The label can be on top or inline.\n *\n * > Only supports `ltr` direction, so inline will only place the label on the\n * > left.\n */\n @Input() labelPosition: 'top' | 'inline' = 'top'\n\n /**\n * CSS class to add to the label element.\n *\n * Accepts a single space separated string of classes, like the html class\n * attribute.\n */\n @Input() labelClass: string | undefined | null\n\n /** Max errors to display. */\n @Input() maxErrors = -1\n\n /**\n * A padding error is an always allocated space equivalent to a single line\n * error string.\n */\n @Input() numPaddingErrors = 1\n\n /**\n * `id` attribute to add to the label element. This should not be needed in\n * most situations, because a unique id will be generated if not provided.\n */\n @Input()\n get labelId(): string | undefined | null { return this._labelId }\n set labelId(value: string | undefined | null) { this._labelId = value || this._labelUid }\n /** @ignore */\n protected _labelId: string | undefined | null\n\n /**\n * Help text added below the control.\n */\n @Input()\n get helpText(): string | undefined | null { return this._helpTextStrSubject.value }\n set helpText(value: string | undefined | null) {\n this._helpTextStrSubject.next(value || undefined)\n }\n\n /**\n * `id` attribute to add to the label element. This should not be needed in\n * most situations, because a unique id will be generated if not provided.\n */\n @Input()\n get helpTextId(): string | undefined | null { return this._helpTextId }\n set helpTextId(value: string | undefined | null) { this._helpTextId = value || this._helpTextUid }\n /** @ignore */\n protected _helpTextId: string | undefined | null\n\n /** @ignore */\n @ContentChild(FormFieldHelpTextDirective, { static: true })\n get helpTextTpl(): FormFieldLabelTplDirective | undefined { return this._helpTextTplSubject.value }\n set helpTextTpl(value: FormFieldLabelTplDirective | undefined) {\n this._helpTextTplSubject.next(value || undefined)\n }\n\n /** @ignore */\n @ContentChild(FormFieldLabelTplDirective, { static: true }) labelTpl?: FormFieldLabelTplDirective\n\n /** @ignore */\n @ContentChild(InputDirective, { static: true })\n get contentInput(): InputDirective | undefined { return this._contentInputSubject.value }\n set contentInput(value: InputDirective | undefined) { this._contentInputSubject.next(value || undefined) }\n\n /** @ignore */\n @ContentChildren(FormFieldErrorDirective)\n get fieldErrors() { return this._fieldErrors }\n set fieldErrors(value: QueryList<FormFieldErrorDirective[]> | undefined | null) {\n this._fieldErrors = value\n\n if (this._sub) { this._sub.unsubscribe() }\n if (this.fieldErrors) {\n this._sub = this.fieldErrors.changes\n .pipe(startWith(this.fieldErrors))\n .pipe(map(v => v.toArray() as FormFieldErrorDirective[]))\n .pipe(tap(v => {\n const records: IErrorRecord[] = []\n for (const item of v) {\n if (item.validatorName) {\n records.push({\n validatorName: item.validatorName,\n error: null,\n template: item.template,\n external: item.external\n })\n }\n }\n this._fieldErrorsSubject2.next(records)\n }))\n .subscribe(v => this._fieldErrorsSubject.next(v))\n }\n }\n /** @ignore */\n private _fieldErrors: QueryList<FormFieldErrorDirective[]> | undefined | null\n /** @ignore */\n private _sub?: Subscription\n\n /** @ignore */\n private readonly _fieldErrorsSubject = new ReplaySubject<FormFieldErrorDirective[]>(1)\n /** @ignore */\n public readonly fieldErrors$: Observable<FormFieldErrorDirective[]> = this._fieldErrorsSubject.asObservable()\n\n /** @ignore */\n private readonly _fieldErrorsSubject2 = new ReplaySubject<IErrorRecord[]>(1)\n /** @ignore */\n public readonly fieldErrors2$: Observable<IErrorRecord[]> = this._fieldErrorsSubject2.asObservable()\n\n get isPasswordInput() {\n return this.contentInput && this.contentInput.type && this.contentInput.type === 'password'\n }\n get passwordInputElement() {\n return this.contentInput && this.contentInput._elementRef && this.contentInput._elementRef.nativeElement\n }\n\n get hasHelpText() { return !!this._helpTextStrSubject.value || !!this._helpTextTplSubject.value }\n // get hasHelpText() { return !!this.helpText || !!this._helpTextTpl }\n\n private _helpTextSub = Subscription.EMPTY\n\n /** @ignore */\n constructor(\n private readonly _elementRef: ElementRef\n ) { }\n\n /** @ignore */\n ngOnInit() {\n this._helpTextSub = this._contentInputSubject.pipe(\n filter(contentInput => !!contentInput),\n switchMap(contentInput => combineLatest([\n this._helpTextStrSubject,\n this._helpTextTplSubject\n ]).pipe(\n map(() => this.hasHelpText),\n distinctUntilChanged(),\n tap(() => {\n if (contentInput) {\n contentInput.ariaDescribedBy = this._helpTextId || undefined\n }\n })\n ))\n ).subscribe()\n }\n\n /** @ignore */\n ngOnDestroy() {\n this._sub?.unsubscribe()\n this._helpTextSub?.unsubscribe()\n }\n\n /** @ignore */\n public isValidatorMatch(validatorName: string, tplValidatorName: string, errors: any): boolean {\n const tplValidatorNames = tplValidatorName.split(' ')\n\n for (let i = 0; i < tplValidatorNames.length; i++) {\n const name = tplValidatorNames[i]\n if (name === validatorName && i === 0) {\n return true\n }\n }\n\n return false\n }\n\n /** @ignore */\n public _labelElemResized(labelElem: HTMLLabelElement) {\n if (labelElem) {\n this._errorPadding = `${labelElem.getBoundingClientRect().width}px`\n } else {\n this._errorPadding = '0px'\n }\n }\n\n public getElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n}\n","<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { TheSeamFormFieldErrorModule } from '@theseam/ui-common/form-field-error'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\n\nimport { FormFieldErrorDirective } from './form-field-error.directive'\nimport { FormFieldHelpTextDirective } from './form-field-help-text.directive'\nimport { FormFieldLabelTplDirective } from './form-field-label-tpl.directive'\nimport { FormFieldRequiredIndicatorComponent } from './form-field-required-indicator.component'\nimport { TheSeamFormFieldComponent } from './form-field.component'\nimport { InputDirective } from './input.directive'\n\n@NgModule({\n declarations: [\n TheSeamFormFieldComponent,\n InputDirective,\n FormFieldErrorDirective,\n FormFieldLabelTplDirective,\n FormFieldRequiredIndicatorComponent,\n FormFieldHelpTextDirective\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TheSeamFormFieldErrorModule,\n TheSeamSharedModule\n ],\n exports: [\n TheSeamFormFieldComponent,\n InputDirective,\n FormFieldErrorDirective,\n FormFieldLabelTplDirective,\n FormFieldRequiredIndicatorComponent,\n FormFieldHelpTextDirective\n ]\n})\nexport class TheSeamFormFieldModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i4.FormFieldRequiredIndicatorComponent"],"mappings":"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"}