ngx-sp-infra 1.4.89 → 1.4.91

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.
@@ -3,6 +3,34 @@ import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Diretiva que adiciona um asterisco vermelho (*) ao lado de um elemento <label>
5
5
  * para indicar que o campo é obrigatório.
6
+ *
7
+ * ## Uso
8
+ *
9
+ * No seu template HTML, você pode usar a diretiva de duas maneiras:
10
+ *
11
+ * 1. Sem especificar o valor, onde o marcador será exibido por padrão:
12
+ *
13
+ * ```html
14
+ * <label libRequired for="inputTeste" class="form-label">Pessoa</label>
15
+ * ```
16
+ *
17
+ * 2. Especificando explicitamente o valor (true ou false):
18
+ *
19
+ * ```html
20
+ * <label [libRequired]="true" for="inputTeste" class="form-label">Nome</label>
21
+ * <label [libRequired]="false" for="inputTeste" class="form-label">Empresa</label>
22
+ * ```
23
+ *
24
+ * ### Inputs
25
+ *
26
+ * - `libRequired`: boolean | string
27
+ * - Determina se o asterisco de obrigatoriedade deve ser exibido.
28
+ * - Aceita valores booleanos (`true` ou `false`) ou strings (`"true"` ou `"false"`).
29
+ * - Padrão: `true`
30
+ *
31
+ * - `sisID`: string
32
+ * - Identificador único para o elemento `<span>` criado.
33
+ * - Útil para manipulação direta do DOM ou testes.
6
34
  */
7
35
  export class RequiredDirective {
8
36
  /**
@@ -20,50 +48,57 @@ export class RequiredDirective {
20
48
  * Define se o asterisco de obrigatoriedade deve ser exibido.
21
49
  * Se nenhum valor for especificado, o padrão é true.
22
50
  */
23
- set showMarker(value) { this._showMarker = value !== false; /* Qualquer valor diferente de false será tratado como true */ }
51
+ set showMarker(value) { this._showMarker = value !== false && value !== 'false'; /* Qualquer valor diferente de false será tratado como true*/ }
24
52
  get showMarker() { return this._showMarker; }
25
53
  ngOnInit() {
26
54
  if (this.showMarker) {
27
- const spanElement = document.createElement("span");
28
- spanElement.className = "text-danger";
29
- spanElement.innerHTML = "*";
30
- spanElement.id = this.spanID;
31
- this._renderer.appendChild(this._elementRef.nativeElement, spanElement);
55
+ this.addMarker();
32
56
  }
33
57
  }
34
58
  ngOnChanges(changes) {
35
59
  if (changes["showMarker"]?.currentValue !== changes["showMarker"]?.previousValue && changes["showMarker"]?.previousValue !== undefined) {
36
60
  if (this.showMarker) {
37
- const spanElement = document.createElement("span");
38
- spanElement.className = "text-danger";
39
- spanElement.innerHTML = "*";
40
- spanElement.id = this.spanID;
41
- this._renderer.appendChild(this._elementRef.nativeElement, spanElement);
61
+ this.addMarker();
42
62
  }
43
63
  else {
44
- if (this.spanID === "") {
45
- return;
46
- }
47
- const spanElement = document.getElementById(this.spanID);
48
- if (spanElement !== null) {
49
- this._renderer.removeChild(this._elementRef.nativeElement, spanElement);
50
- }
64
+ this.removeMarker();
51
65
  }
52
66
  }
53
67
  }
68
+ /** Adiciona o marcador de asterisco ao elemento <label>. */
69
+ addMarker() {
70
+ if (document.getElementById(this.spanID)) {
71
+ return;
72
+ }
73
+ const spanElement = document.createElement("span");
74
+ spanElement.className = "text-danger";
75
+ spanElement.innerHTML = "*";
76
+ spanElement.id = this.spanID;
77
+ this._renderer.appendChild(this._elementRef.nativeElement, spanElement);
78
+ }
79
+ /** Remove o marcador de asterisco do elemento <label>. */
80
+ removeMarker() {
81
+ if (this.spanID === "") {
82
+ return;
83
+ }
84
+ const spanElement = document.getElementById(this.spanID);
85
+ if (spanElement !== null) {
86
+ this._renderer.removeChild(this._elementRef.nativeElement, spanElement);
87
+ }
88
+ }
54
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
55
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[libRequired]", inputs: { showMarker: ["libRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
90
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[sisRequired]", inputs: { showMarker: ["sisRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
56
91
  }
57
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, decorators: [{
58
93
  type: Directive,
59
94
  args: [{
60
- selector: "label[libRequired]"
95
+ selector: "label[sisRequired]"
61
96
  }]
62
97
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { showMarker: [{
63
98
  type: Input,
64
- args: ["libRequired"]
99
+ args: ["sisRequired"]
65
100
  }], spanID: [{
66
101
  type: Input,
67
102
  args: ["sisID"]
68
103
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDOztBQUUxRzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCOzs7T0FHRztJQUNILFlBQ1UsV0FBdUIsRUFDdkIsU0FBb0I7UUFEcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVJ0QixnQkFBVyxHQUFZLElBQUksQ0FBQyxDQUFDLGVBQWU7UUFtQnBELHlEQUF5RDtRQUN6QyxXQUFNLEdBQVcsRUFBRSxDQUFDO0lBWGhDLENBQUM7SUFFTDs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFjLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsOERBQThELENBQUMsQ0FBQztJQUNySSxJQUFJLFVBQVUsS0FBYyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBTXRELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELFdBQVcsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1lBQ3RDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQzVCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxXQUFXLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztnQkFDdEMsV0FBVyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7Z0JBQzVCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFBQyxPQUFPO2dCQUFDLENBQUM7Z0JBRW5DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzFFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBbkRVLGlCQUFpQjttR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO3VHQWtCSyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsYUFBYTtnQkFLSixNQUFNO3NCQUFyQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXJldGl2YSBxdWUgYWRpY2lvbmEgdW0gYXN0ZXJpc2NvIHZlcm1lbGhvICgqKSBhbyBsYWRvIGRlIHVtIGVsZW1lbnRvIDxsYWJlbD4gXHJcbiAqIHBhcmEgaW5kaWNhciBxdWUgbyBjYW1wbyDDqSBvYnJpZ2F0w7NyaW8uXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJsYWJlbFtsaWJSZXF1aXJlZF1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVxdWlyZWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBfc2hvd01hcmtlcjogYm9vbGVhbiA9IHRydWU7IC8vIFZhbG9yIHBhZHLDo29cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIF9lbGVtZW50UmVmIC0gUmVmZXLDqm5jaWEgYW8gZWxlbWVudG8gRE9NIGFvIHF1YWwgYSBkaXJldGl2YSBlc3TDoSBhc3NvY2lhZGEuXHJcbiAgICogQHBhcmFtIF9yZW5kZXJlciAtIFNlcnZpw6dvIEFuZ3VsYXIgcGFyYSBtYW5pcHVsYcOnw6NvIHNlZ3VyYSBkbyBET00uXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgc2UgbyBhc3RlcmlzY28gZGUgb2JyaWdhdG9yaWVkYWRlIGRldmUgc2VyIGV4aWJpZG8uXHJcbiAgICogU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIG8gcGFkcsOjbyDDqSB0cnVlLlxyXG4gICAqL1xyXG4gIEBJbnB1dChcImxpYlJlcXVpcmVkXCIpXHJcbiAgc2V0IHNob3dNYXJrZXIodmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5fc2hvd01hcmtlciA9IHZhbHVlICE9PSBmYWxzZTsgLyogUXVhbHF1ZXIgdmFsb3IgZGlmZXJlbnRlIGRlIGZhbHNlIHNlcsOhIHRyYXRhZG8gY29tbyB0cnVlICovIH1cclxuICBnZXQgc2hvd01hcmtlcigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3Nob3dNYXJrZXI7IH1cclxuXHJcbiAgLyoqIElkZW50aWZpY2Fkb3Igw7puaWNvIHBhcmEgbyBlbGVtZW50byA8c3Bhbj4gY3JpYWRvLiAqL1xyXG4gIEBJbnB1dChcInNpc0lEXCIpIHNwYW5JRDogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2hvd01hcmtlcikge1xyXG4gICAgICBjb25zdCBzcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xyXG4gICAgICBzcGFuRWxlbWVudC5jbGFzc05hbWUgPSBcInRleHQtZGFuZ2VyXCI7XHJcbiAgICAgIHNwYW5FbGVtZW50LmlubmVySFRNTCA9IFwiKlwiO1xyXG4gICAgICBzcGFuRWxlbWVudC5pZCA9IHRoaXMuc3BhbklEO1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW5FbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wic2hvd01hcmtlclwiXT8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzW1wic2hvd01hcmtlclwiXT8ucHJldmlvdXNWYWx1ZSAmJiBjaGFuZ2VzW1wic2hvd01hcmtlclwiXT8ucHJldmlvdXNWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dNYXJrZXIpIHtcclxuICAgICAgICBjb25zdCBzcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xyXG4gICAgICAgIHNwYW5FbGVtZW50LmNsYXNzTmFtZSA9IFwidGV4dC1kYW5nZXJcIjtcclxuICAgICAgICBzcGFuRWxlbWVudC5pbm5lckhUTUwgPSBcIipcIjtcclxuICAgICAgICBzcGFuRWxlbWVudC5pZCA9IHRoaXMuc3BhbklEO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc3BhbkVsZW1lbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnNwYW5JRCA9PT0gXCJcIikgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgY29uc3Qgc3BhbkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNwYW5JRCk7XHJcbiAgICAgICAgaWYgKHNwYW5FbGVtZW50ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW5FbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDOztBQUUxRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFHNUI7OztPQUdHO0lBQ0gsWUFDVSxXQUF1QixFQUN2QixTQUFvQjtRQURwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnRCLGdCQUFXLEdBQVksSUFBSSxDQUFDLENBQUMsZUFBZTtRQW1CcEQseURBQXlEO1FBQ3pDLFdBQU0sR0FBVyxFQUFFLENBQUM7SUFYaEMsQ0FBQztJQUVMOzs7T0FHRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQXVCLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2xLLElBQUksVUFBVSxLQUFjLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFNdEQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUFDLENBQUM7aUJBQ3JDLENBQUM7Z0JBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUdELDREQUE0RDtJQUNwRCxTQUFTO1FBQ2YsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFFckQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxXQUFXLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUN0QyxXQUFXLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUM1QixXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELDBEQUEwRDtJQUNsRCxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRW5DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFBQyxDQUFDO0lBQ3hHLENBQUM7K0dBdkRVLGlCQUFpQjttR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO3VHQWtCSyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsYUFBYTtnQkFLSixNQUFNO3NCQUFyQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXJldGl2YSBxdWUgYWRpY2lvbmEgdW0gYXN0ZXJpc2NvIHZlcm1lbGhvICgqKSBhbyBsYWRvIGRlIHVtIGVsZW1lbnRvIDxsYWJlbD5cclxuICogcGFyYSBpbmRpY2FyIHF1ZSBvIGNhbXBvIMOpIG9icmlnYXTDs3Jpby5cclxuICogXHJcbiAqICMjIFVzb1xyXG4gKiBcclxuICogTm8gc2V1IHRlbXBsYXRlIEhUTUwsIHZvY8OqIHBvZGUgdXNhciBhIGRpcmV0aXZhIGRlIGR1YXMgbWFuZWlyYXM6XHJcbiAqIFxyXG4gKiAxLiBTZW0gZXNwZWNpZmljYXIgbyB2YWxvciwgb25kZSBvIG1hcmNhZG9yIHNlcsOhIGV4aWJpZG8gcG9yIHBhZHLDo286XHJcbiAqIFxyXG4gKiBgYGBodG1sXHJcbiAqIDxsYWJlbCBsaWJSZXF1aXJlZCBmb3I9XCJpbnB1dFRlc3RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGVzc29hPC9sYWJlbD5cclxuICogYGBgXHJcbiAqIFxyXG4gKiAyLiBFc3BlY2lmaWNhbmRvIGV4cGxpY2l0YW1lbnRlIG8gdmFsb3IgKHRydWUgb3UgZmFsc2UpOlxyXG4gKiBcclxuICogYGBgaHRtbFxyXG4gKiA8bGFiZWwgW2xpYlJlcXVpcmVkXT1cInRydWVcIiBmb3I9XCJpbnB1dFRlc3RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Tm9tZTwvbGFiZWw+XHJcbiAqIDxsYWJlbCBbbGliUmVxdWlyZWRdPVwiZmFsc2VcIiBmb3I9XCJpbnB1dFRlc3RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1wcmVzYTwvbGFiZWw+XHJcbiAqIGBgYFxyXG4gKiBcclxuICogIyMjIElucHV0c1xyXG4gKiBcclxuICogLSBgbGliUmVxdWlyZWRgOiBib29sZWFuIHwgc3RyaW5nXHJcbiAqICAgLSBEZXRlcm1pbmEgc2UgbyBhc3RlcmlzY28gZGUgb2JyaWdhdG9yaWVkYWRlIGRldmUgc2VyIGV4aWJpZG8uIFxyXG4gKiAgIC0gQWNlaXRhIHZhbG9yZXMgYm9vbGVhbm9zIChgdHJ1ZWAgb3UgYGZhbHNlYCkgb3Ugc3RyaW5ncyAoYFwidHJ1ZVwiYCBvdSBgXCJmYWxzZVwiYCkuXHJcbiAqICAgLSBQYWRyw6NvOiBgdHJ1ZWBcclxuICogXHJcbiAqIC0gYHNpc0lEYDogc3RyaW5nXHJcbiAqICAgLSBJZGVudGlmaWNhZG9yIMO6bmljbyBwYXJhIG8gZWxlbWVudG8gYDxzcGFuPmAgY3JpYWRvLlxyXG4gKiAgIC0gw5p0aWwgcGFyYSBtYW5pcHVsYcOnw6NvIGRpcmV0YSBkbyBET00gb3UgdGVzdGVzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwibGFiZWxbc2lzUmVxdWlyZWRdXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIHByaXZhdGUgX3Nob3dNYXJrZXI6IGJvb2xlYW4gPSB0cnVlOyAvLyBWYWxvciBwYWRyw6NvXHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBfZWxlbWVudFJlZiAtIFJlZmVyw6puY2lhIGFvIGVsZW1lbnRvIERPTSBhbyBxdWFsIGEgZGlyZXRpdmEgZXN0w6EgYXNzb2NpYWRhLlxyXG4gICAqIEBwYXJhbSBfcmVuZGVyZXIgLSBTZXJ2acOnbyBBbmd1bGFyIHBhcmEgbWFuaXB1bGHDp8OjbyBzZWd1cmEgZG8gRE9NLlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHNlIG8gYXN0ZXJpc2NvIGRlIG9icmlnYXRvcmllZGFkZSBkZXZlIHNlciBleGliaWRvLlxyXG4gICAqIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBvIHBhZHLDo28gw6kgdHJ1ZS5cclxuICAgKi9cclxuICBASW5wdXQoXCJzaXNSZXF1aXJlZFwiKVxyXG4gIHNldCBzaG93TWFya2VyKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7IHRoaXMuX3Nob3dNYXJrZXIgPSB2YWx1ZSAhPT0gZmFsc2UgJiYgdmFsdWUgIT09ICdmYWxzZSc7IC8qIFF1YWxxdWVyIHZhbG9yIGRpZmVyZW50ZSBkZSBmYWxzZSBzZXLDoSB0cmF0YWRvIGNvbW8gdHJ1ZSovIH1cclxuICBnZXQgc2hvd01hcmtlcigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3Nob3dNYXJrZXI7IH1cclxuXHJcbiAgLyoqIElkZW50aWZpY2Fkb3Igw7puaWNvIHBhcmEgbyBlbGVtZW50byA8c3Bhbj4gY3JpYWRvLiAqL1xyXG4gIEBJbnB1dChcInNpc0lEXCIpIHNwYW5JRDogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2hvd01hcmtlcikge1xyXG4gICAgICB0aGlzLmFkZE1hcmtlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJzaG93TWFya2VyXCJdPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbXCJzaG93TWFya2VyXCJdPy5wcmV2aW91c1ZhbHVlICYmIGNoYW5nZXNbXCJzaG93TWFya2VyXCJdPy5wcmV2aW91c1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd01hcmtlcikgeyB0aGlzLmFkZE1hcmtlcigpOyB9XHJcbiAgICAgIGVsc2UgeyB0aGlzLnJlbW92ZU1hcmtlcigpOyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIEFkaWNpb25hIG8gbWFyY2Fkb3IgZGUgYXN0ZXJpc2NvIGFvIGVsZW1lbnRvIDxsYWJlbD4uICovXHJcbiAgcHJpdmF0ZSBhZGRNYXJrZXIoKTogdm9pZCB7XHJcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zcGFuSUQpKSB7IHJldHVybjsgfVxyXG5cclxuICAgIGNvbnN0IHNwYW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XHJcbiAgICBzcGFuRWxlbWVudC5jbGFzc05hbWUgPSBcInRleHQtZGFuZ2VyXCI7XHJcbiAgICBzcGFuRWxlbWVudC5pbm5lckhUTUwgPSBcIipcIjtcclxuICAgIHNwYW5FbGVtZW50LmlkID0gdGhpcy5zcGFuSUQ7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW5FbGVtZW50KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZW1vdmUgbyBtYXJjYWRvciBkZSBhc3RlcmlzY28gZG8gZWxlbWVudG8gPGxhYmVsPi4gKi9cclxuICBwcml2YXRlIHJlbW92ZU1hcmtlcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNwYW5JRCA9PT0gXCJcIikgeyByZXR1cm47IH1cclxuXHJcbiAgICBjb25zdCBzcGFuRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc3BhbklEKTtcclxuICAgIGlmIChzcGFuRWxlbWVudCAhPT0gbnVsbCkgeyB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW5FbGVtZW50KTsgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1672,6 +1672,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
1672
1672
  /**
1673
1673
  * Diretiva que adiciona um asterisco vermelho (*) ao lado de um elemento <label>
1674
1674
  * para indicar que o campo é obrigatório.
1675
+ *
1676
+ * ## Uso
1677
+ *
1678
+ * No seu template HTML, você pode usar a diretiva de duas maneiras:
1679
+ *
1680
+ * 1. Sem especificar o valor, onde o marcador será exibido por padrão:
1681
+ *
1682
+ * ```html
1683
+ * <label libRequired for="inputTeste" class="form-label">Pessoa</label>
1684
+ * ```
1685
+ *
1686
+ * 2. Especificando explicitamente o valor (true ou false):
1687
+ *
1688
+ * ```html
1689
+ * <label [libRequired]="true" for="inputTeste" class="form-label">Nome</label>
1690
+ * <label [libRequired]="false" for="inputTeste" class="form-label">Empresa</label>
1691
+ * ```
1692
+ *
1693
+ * ### Inputs
1694
+ *
1695
+ * - `libRequired`: boolean | string
1696
+ * - Determina se o asterisco de obrigatoriedade deve ser exibido.
1697
+ * - Aceita valores booleanos (`true` ou `false`) ou strings (`"true"` ou `"false"`).
1698
+ * - Padrão: `true`
1699
+ *
1700
+ * - `sisID`: string
1701
+ * - Identificador único para o elemento `<span>` criado.
1702
+ * - Útil para manipulação direta do DOM ou testes.
1675
1703
  */
1676
1704
  class RequiredDirective {
1677
1705
  /**
@@ -1689,48 +1717,55 @@ class RequiredDirective {
1689
1717
  * Define se o asterisco de obrigatoriedade deve ser exibido.
1690
1718
  * Se nenhum valor for especificado, o padrão é true.
1691
1719
  */
1692
- set showMarker(value) { this._showMarker = value !== false; /* Qualquer valor diferente de false será tratado como true */ }
1720
+ set showMarker(value) { this._showMarker = value !== false && value !== 'false'; /* Qualquer valor diferente de false será tratado como true*/ }
1693
1721
  get showMarker() { return this._showMarker; }
1694
1722
  ngOnInit() {
1695
1723
  if (this.showMarker) {
1696
- const spanElement = document.createElement("span");
1697
- spanElement.className = "text-danger";
1698
- spanElement.innerHTML = "*";
1699
- spanElement.id = this.spanID;
1700
- this._renderer.appendChild(this._elementRef.nativeElement, spanElement);
1724
+ this.addMarker();
1701
1725
  }
1702
1726
  }
1703
1727
  ngOnChanges(changes) {
1704
1728
  if (changes["showMarker"]?.currentValue !== changes["showMarker"]?.previousValue && changes["showMarker"]?.previousValue !== undefined) {
1705
1729
  if (this.showMarker) {
1706
- const spanElement = document.createElement("span");
1707
- spanElement.className = "text-danger";
1708
- spanElement.innerHTML = "*";
1709
- spanElement.id = this.spanID;
1710
- this._renderer.appendChild(this._elementRef.nativeElement, spanElement);
1730
+ this.addMarker();
1711
1731
  }
1712
1732
  else {
1713
- if (this.spanID === "") {
1714
- return;
1715
- }
1716
- const spanElement = document.getElementById(this.spanID);
1717
- if (spanElement !== null) {
1718
- this._renderer.removeChild(this._elementRef.nativeElement, spanElement);
1719
- }
1733
+ this.removeMarker();
1720
1734
  }
1721
1735
  }
1722
1736
  }
1737
+ /** Adiciona o marcador de asterisco ao elemento <label>. */
1738
+ addMarker() {
1739
+ if (document.getElementById(this.spanID)) {
1740
+ return;
1741
+ }
1742
+ const spanElement = document.createElement("span");
1743
+ spanElement.className = "text-danger";
1744
+ spanElement.innerHTML = "*";
1745
+ spanElement.id = this.spanID;
1746
+ this._renderer.appendChild(this._elementRef.nativeElement, spanElement);
1747
+ }
1748
+ /** Remove o marcador de asterisco do elemento <label>. */
1749
+ removeMarker() {
1750
+ if (this.spanID === "") {
1751
+ return;
1752
+ }
1753
+ const spanElement = document.getElementById(this.spanID);
1754
+ if (spanElement !== null) {
1755
+ this._renderer.removeChild(this._elementRef.nativeElement, spanElement);
1756
+ }
1757
+ }
1723
1758
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1724
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[libRequired]", inputs: { showMarker: ["libRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
1759
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[sisRequired]", inputs: { showMarker: ["sisRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
1725
1760
  }
1726
1761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, decorators: [{
1727
1762
  type: Directive,
1728
1763
  args: [{
1729
- selector: "label[libRequired]"
1764
+ selector: "label[sisRequired]"
1730
1765
  }]
1731
1766
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { showMarker: [{
1732
1767
  type: Input,
1733
- args: ["libRequired"]
1768
+ args: ["sisRequired"]
1734
1769
  }], spanID: [{
1735
1770
  type: Input,
1736
1771
  args: ["sisID"]