@agorapulse/ui-components 18.0.35 → 18.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agorapulse-ui-components-18.0.36.tgz +0 -0
- package/directives/checkbox.directive.d.ts +60 -0
- package/directives/public_api.d.ts +1 -0
- package/esm2022/directives/checkbox.directive.mjs +442 -0
- package/esm2022/directives/public_api.mjs +2 -1
- package/esm2022/index.mjs +2 -2
- package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +3 -3
- package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +3 -3
- package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +3 -3
- package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.mjs +3 -3
- package/esm2022/nav-selector/utils/nav-selector.filter.mjs +2 -2
- package/esm2022/nav-selector/utils/nav-selector.merger.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-directives.mjs +442 -3
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs +10 -10
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components.mjs +1 -1
- package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/agorapulse-ui-components-18.0.35.tgz +0 -0
|
@@ -47,7 +47,7 @@ export class NavSelectorMerger {
|
|
|
47
47
|
}
|
|
48
48
|
static mergeLeaf(newLeaf, oldLeaf) {
|
|
49
49
|
if (this.isInternalLeafLogicValid(newLeaf)) {
|
|
50
|
-
newLeaf.viewMoreDisplayable =
|
|
50
|
+
newLeaf.viewMoreDisplayable = newLeaf.details.length > newLeaf.viewMoreDetailsDisplayedLimit;
|
|
51
51
|
newLeaf.viewMoreDisplayed = oldLeaf.viewMoreDisplayed;
|
|
52
52
|
newLeaf.displayCounter = oldLeaf.displayCounter;
|
|
53
53
|
newLeaf.folded = oldLeaf.folded;
|
|
@@ -73,4 +73,4 @@ export class NavSelectorMerger {
|
|
|
73
73
|
return !leaf.disabled && !leaf.displayTokenInvalid && !leaf.displayFeatureLocked;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLm1lcmdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3V0aWxzL25hdi1zZWxlY3Rvci5tZXJnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFLSCxnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLCtCQUErQixHQUNsQyxNQUFNLGlCQUFpQixDQUFDO0FBRXpCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFDMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLCtCQUErQixDQUN6QyxVQUFzQyxFQUN0QyxVQUFzQztRQUV0QyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsU0FBUztZQUNiLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQWtDLEVBQUUsUUFBa0M7UUFDdkYsSUFBSSwrQkFBK0IsQ0FBQyxRQUFRLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3pGLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxJQUFJLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxJQUFJLCtCQUEr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QUMsb0JBQW9CLENBQUM7SUFDckYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzb2NpYXRlQnkgfSBmcm9tICcuLi8vdXRpbHMvbGVhZi51dGlscyc7XG5pbXBvcnQge1xuICAgIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwLFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JMZWFmLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUdyb3VwLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTm9kZSxcbn0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yJztcblxuLyoqXG4gKiBOYXZTZWxlY3Rvck1lcmdlciBpcyBhIHV0aWxpdHkgY2xhc3MgdGhhdCBtZXJnZXMgb2xkIGVudHJpZXMgaW50byBuZXcgZW50cmllcy5cbiAqIEl0IGlzIHVzZWQgdG8ga2VlcCBzb21lIHByZXZpb3VzIHByb3BlcnRpZXMgb2YgdGhlIHByZXZpb3VzIHN0YXRlLiBFeDogZm9sZGVkLCBzZWxlY3RlZCwgZm9jdXNlZCwgZXRjLlxuICovXG5leHBvcnQgY2xhc3MgTmF2U2VsZWN0b3JNZXJnZXIge1xuICAgIC8qKlxuICAgICAqIE1lcmdlcyB0aGUgb2xkIGVudHJpZXMgaW50byB0aGUgbmV3IGVudHJpZXMuXG4gICAgICpcbiAgICAgKiBNb2RpZnkgZGlyZWN0bHkgdGhlIG5ldyBlbnRyaWVzIGFzIG5ldyBlbnRyaWVzIGFyZSBnZW5lcmF0ZWQgZnJvbSBzY3JhdGNoIHNvIG5vIG5lZWQgdG8gZGVzdHJ1Y3R1cmUgdGhlbSB0byBoYXZlIGEgbmV3IHJlZmVyZW5jZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdFbnRyaWVzXG4gICAgICogQHBhcmFtIG9sZEVudHJpZXNcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBuZXcgZW50cmllcyB3aXRoIHRoZSBvbGQgZW50cmllcyBtZXJnZWQgaW50byB0aGVtXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtZXJnZUludGVybmFsTmF2U2VsZWN0b3JFbnRyaWVzKFxuICAgICAgICBuZXdFbnRyaWVzOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSxcbiAgICAgICAgb2xkRW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W11cbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIGNvbnN0IG9sZEVudHJ5QnlVaWQgPSBhc3NvY2lhdGVCeShvbGRFbnRyaWVzLCAndWlkJyk7XG5cbiAgICAgICAgZm9yIChjb25zdCBuZXdFbnRyeSBvZiBuZXdFbnRyaWVzKSB7XG4gICAgICAgICAgICBpZiAoIW9sZEVudHJ5QnlVaWRbbmV3RW50cnkudWlkXSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tZXJnZShuZXdFbnRyeSwgb2xkRW50cnlCeVVpZFtuZXdFbnRyeS51aWRdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXdFbnRyaWVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG1lcmdlKG5ld0VudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksIG9sZEVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpIHtcbiAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYobmV3RW50cnkpICYmIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYob2xkRW50cnkpKSB7XG4gICAgICAgICAgICB0aGlzLm1lcmdlTGVhZihuZXdFbnRyeSwgb2xkRW50cnkpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUobmV3RW50cnkpICYmIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUob2xkRW50cnkpKSB7XG4gICAgICAgICAgICB0aGlzLm1lcmdlSW50ZXJuYWxOYXZTZWxlY3RvckVudHJpZXMobmV3RW50cnkuY2hpbGRyZW4sIG9sZEVudHJ5LmNoaWxkcmVuKTtcbiAgICAgICAgICAgIHRoaXMubWVyZ2VOb2RlKG5ld0VudHJ5LCBvbGRFbnRyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBtZXJnZU5vZGUoXG4gICAgICAgIG5ld05vZGU6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCB8IEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSxcbiAgICAgICAgb2xkTm9kZTogSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5XG4gICAgKSB7XG4gICAgICAgIG5ld05vZGUuZm9sZGVkID0gb2xkTm9kZS5mb2xkZWQ7XG4gICAgICAgIG5ld05vZGUuYWNjZXNzaWJpbGl0eS50YWJJbmRleCA9IG9sZE5vZGUuYWNjZXNzaWJpbGl0eS50YWJJbmRleDtcblxuICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAobmV3Tm9kZSkgJiYgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAob2xkTm9kZSkpIHtcbiAgICAgICAgICAgIHRoaXMubWVyZ2VHcm91cChuZXdOb2RlLCBvbGROb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG1lcmdlR3JvdXAobmV3R3JvdXA6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCwgb2xkR3JvdXA6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCkge1xuICAgICAgICBuZXdHcm91cC5kaXNwbGF5Q291bnRlciA9IG9sZEdyb3VwLmRpc3BsYXlDb3VudGVyO1xuICAgICAgICBuZXdHcm91cC5kaXNwbGF5VG9rZW5JbnZhbGlkID0gb2xkR3JvdXAuZGlzcGxheVRva2VuSW52YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBtZXJnZUxlYWYobmV3TGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsIG9sZExlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIGlmICh0aGlzLmlzSW50ZXJuYWxMZWFmTG9naWNWYWxpZChuZXdMZWFmKSkge1xuICAgICAgICAgICAgbmV3TGVhZi52aWV3TW9yZURpc3BsYXlhYmxlID0gbmV3TGVhZi5kZXRhaWxzLmxlbmd0aCA+IG5ld0xlYWYudmlld01vcmVEZXRhaWxzRGlzcGxheWVkTGltaXQ7XG4gICAgICAgICAgICBuZXdMZWFmLnZpZXdNb3JlRGlzcGxheWVkID0gb2xkTGVhZi52aWV3TW9yZURpc3BsYXllZDtcblxuICAgICAgICAgICAgbmV3TGVhZi5kaXNwbGF5Q291bnRlciA9IG9sZExlYWYuZGlzcGxheUNvdW50ZXI7XG4gICAgICAgICAgICBuZXdMZWFmLmZvbGRlZCA9IG9sZExlYWYuZm9sZGVkO1xuICAgICAgICAgICAgbmV3TGVhZi5zZWxlY3RlZCA9IG9sZExlYWYuc2VsZWN0ZWQ7XG5cbiAgICAgICAgICAgIG5ld0xlYWYuYWNjZXNzaWJpbGl0eS50YWJJbmRleCA9IG9sZExlYWYuYWNjZXNzaWJpbGl0eS50YWJJbmRleDtcblxuICAgICAgICAgICAgY29uc3Qgb2xkRGV0YWlsQnlVSWQgPSBhc3NvY2lhdGVCeShvbGRMZWFmLmRldGFpbHMsICd1aWQnKTtcbiAgICAgICAgICAgIG5ld0xlYWYuZGV0YWlscy5mb3JFYWNoKG5ld0RldGFpbCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFvbGREZXRhaWxCeVVJZFtuZXdEZXRhaWwudWlkXSB8fCBuZXdEZXRhaWwuZXJyb3JSZWFzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXdEZXRhaWwuc2VsZWN0ZWQgPSBvbGREZXRhaWxCeVVJZFtuZXdEZXRhaWwudWlkXS5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICBuZXdEZXRhaWwuYWNjZXNzaWJpbGl0eS50YWJJbmRleCA9IG9sZERldGFpbEJ5VUlkW25ld0RldGFpbC51aWRdLmFjY2Vzc2liaWxpdHkudGFiSW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZERldGFpbEhhc0ZvY3VzZWQgPSBvbGRMZWFmLmRldGFpbHMuc29tZShvbGREZXRhaWwgPT4gb2xkRGV0YWlsLmFjY2Vzc2liaWxpdHkudGFiSW5kZXggPT09IDApO1xuICAgICAgICAgICAgaWYgKG9sZERldGFpbEhhc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICBuZXdMZWFmLmFjY2Vzc2liaWxpdHkudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNJbnRlcm5hbExlYWZMb2dpY1ZhbGlkKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhbGVhZi5kaXNhYmxlZCAmJiAhbGVhZi5kaXNwbGF5VG9rZW5JbnZhbGlkICYmICFsZWFmLmRpc3BsYXlGZWF0dXJlTG9ja2VkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { HostListener, Directive, inject, ElementRef, ChangeDetectorRef,
|
|
3
|
-
import {
|
|
2
|
+
import { HostListener, Directive, inject, ElementRef, ChangeDetectorRef, forwardRef, Renderer2, ViewContainerRef, EventEmitter, booleanAttribute, Output, Input, Attribute } from '@angular/core';
|
|
3
|
+
import { SymbolRegistry, apCheck, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
4
|
+
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
4
5
|
import DOMPurify from 'dompurify';
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -91,6 +92,444 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
91
92
|
}]
|
|
92
93
|
}] });
|
|
93
94
|
|
|
95
|
+
const AP_CHECKBOX_DIRECTIVE_CONTROL_VALUE_ACCESSOR = {
|
|
96
|
+
provide: NG_VALUE_ACCESSOR,
|
|
97
|
+
useExisting: forwardRef(() => CheckboxDirective),
|
|
98
|
+
multi: true,
|
|
99
|
+
};
|
|
100
|
+
/*
|
|
101
|
+
Host bindings is important here:
|
|
102
|
+
- This provides encapsulation and reactivity regardless of how the directive is used in templates.
|
|
103
|
+
- It guarantees that properties like checked, disabled, required, and ARIA attributes always reflect
|
|
104
|
+
only the directive's logic, not just consumer bindings.
|
|
105
|
+
- So we need to have host bindings for all the properties that we want to control.
|
|
106
|
+
- We could also use @HostListener.
|
|
107
|
+
*/
|
|
108
|
+
class CheckboxDirective {
|
|
109
|
+
symbolRegistry = inject(SymbolRegistry);
|
|
110
|
+
elementRef = inject((ElementRef));
|
|
111
|
+
renderer = inject(Renderer2);
|
|
112
|
+
viewContainer = inject(ViewContainerRef);
|
|
113
|
+
ariaLabel;
|
|
114
|
+
ariaLabelledby;
|
|
115
|
+
ariaDescribedby;
|
|
116
|
+
disabled = false;
|
|
117
|
+
set indeterminate(indeterminate) {
|
|
118
|
+
if (indeterminate) {
|
|
119
|
+
this._checked = false;
|
|
120
|
+
}
|
|
121
|
+
this._indeterminate = indeterminate;
|
|
122
|
+
const input = this.elementRef.nativeElement;
|
|
123
|
+
if (input) {
|
|
124
|
+
input.indeterminate = indeterminate;
|
|
125
|
+
}
|
|
126
|
+
// Only update visibility if containers are ready
|
|
127
|
+
if (this.checkmarkContainer && this.indeterminateContainer) {
|
|
128
|
+
this.updateCheckmarkVisibility();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
get indeterminate() {
|
|
132
|
+
return this._indeterminate;
|
|
133
|
+
}
|
|
134
|
+
set checked(checked) {
|
|
135
|
+
this._checked = checked;
|
|
136
|
+
// Only update visibility if containers are ready
|
|
137
|
+
if (this.checkmarkContainer && this.indeterminateContainer) {
|
|
138
|
+
this.updateCheckmarkVisibility();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
get checked() {
|
|
142
|
+
return this._checked;
|
|
143
|
+
}
|
|
144
|
+
required = false;
|
|
145
|
+
set name(name) {
|
|
146
|
+
this._name = name;
|
|
147
|
+
}
|
|
148
|
+
get name() {
|
|
149
|
+
return this._name;
|
|
150
|
+
}
|
|
151
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
152
|
+
change = new EventEmitter();
|
|
153
|
+
_checked = false;
|
|
154
|
+
_indeterminate = false;
|
|
155
|
+
_name = '';
|
|
156
|
+
_controlValueAccessorChangeFn = () => { };
|
|
157
|
+
_onTouched = () => { };
|
|
158
|
+
listeners = [];
|
|
159
|
+
styleElement;
|
|
160
|
+
wrapper;
|
|
161
|
+
checkmarkContainer;
|
|
162
|
+
indeterminateContainer;
|
|
163
|
+
symbolComponent;
|
|
164
|
+
ngOnInit() {
|
|
165
|
+
this.symbolRegistry.registerSymbols([apCheck]);
|
|
166
|
+
this.createCheckboxStructure();
|
|
167
|
+
this.setupEventListeners();
|
|
168
|
+
}
|
|
169
|
+
ngOnDestroy() {
|
|
170
|
+
this.listeners.forEach(unlisten => unlisten());
|
|
171
|
+
if (this.styleElement && this.styleElement.parentNode) {
|
|
172
|
+
this.styleElement.parentNode.removeChild(this.styleElement);
|
|
173
|
+
}
|
|
174
|
+
if (this.symbolComponent) {
|
|
175
|
+
this.symbolComponent.destroy();
|
|
176
|
+
}
|
|
177
|
+
if (this.checkmarkContainer && this.checkmarkContainer.parentNode) {
|
|
178
|
+
this.checkmarkContainer.parentNode.removeChild(this.checkmarkContainer);
|
|
179
|
+
}
|
|
180
|
+
if (this.indeterminateContainer && this.indeterminateContainer.parentNode) {
|
|
181
|
+
this.indeterminateContainer.parentNode.removeChild(this.indeterminateContainer);
|
|
182
|
+
}
|
|
183
|
+
// Move input back out of wrapper and remove wrapper
|
|
184
|
+
if (this.wrapper && this.wrapper.parentNode) {
|
|
185
|
+
const input = this.elementRef.nativeElement;
|
|
186
|
+
this.renderer.insertBefore(this.wrapper.parentNode, input, this.wrapper);
|
|
187
|
+
this.wrapper.parentNode.removeChild(this.wrapper);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
createCheckboxStructure() {
|
|
191
|
+
const input = this.elementRef.nativeElement;
|
|
192
|
+
const parent = input.parentElement;
|
|
193
|
+
// Hot take - Input doesn't need positioning since it will be wrapped
|
|
194
|
+
// Make input's parent use inline-flex for alignment
|
|
195
|
+
if (parent) {
|
|
196
|
+
this.renderer.setStyle(parent, 'display', 'inline-flex');
|
|
197
|
+
this.renderer.setStyle(parent, 'align-items', 'center');
|
|
198
|
+
this.renderer.setStyle(parent, 'gap', 'var(--ref-spacing-xxs)');
|
|
199
|
+
}
|
|
200
|
+
this.renderer.addClass(input, 'ap-checkbox-styled');
|
|
201
|
+
this.checkmarkContainer = this.createOverlayContainer('ap-checkbox-checkmark');
|
|
202
|
+
this.wrapper = this.renderer.createElement('span');
|
|
203
|
+
this.renderer.setStyle(this.wrapper, 'position', 'relative');
|
|
204
|
+
this.renderer.setStyle(this.wrapper, 'display', 'inline-flex');
|
|
205
|
+
this.renderer.setStyle(this.wrapper, 'align-items', 'center');
|
|
206
|
+
this.renderer.setStyle(this.wrapper, 'vertical-align', 'middle');
|
|
207
|
+
this.renderer.insertBefore(parent, this.wrapper, input);
|
|
208
|
+
this.renderer.appendChild(this.wrapper, input);
|
|
209
|
+
this.renderer.appendChild(this.wrapper, this.checkmarkContainer);
|
|
210
|
+
this.indeterminateContainer = this.createOverlayContainer('ap-checkbox-indeterminate');
|
|
211
|
+
this.renderer.appendChild(this.wrapper, this.indeterminateContainer);
|
|
212
|
+
this.createCheckmarkSymbol();
|
|
213
|
+
this.createIndeterminateBar();
|
|
214
|
+
this.applyCheckboxStyles();
|
|
215
|
+
this.updateCheckmarkVisibility();
|
|
216
|
+
}
|
|
217
|
+
createOverlayContainer(className) {
|
|
218
|
+
const container = this.renderer.createElement('span');
|
|
219
|
+
this.renderer.addClass(container, className);
|
|
220
|
+
this.renderer.setStyle(container, 'position', 'absolute');
|
|
221
|
+
this.renderer.setStyle(container, 'top', '50%');
|
|
222
|
+
this.renderer.setStyle(container, 'left', '50%');
|
|
223
|
+
this.renderer.setStyle(container, 'transform', 'translate(-50%, -50%)');
|
|
224
|
+
this.renderer.setStyle(container, 'width', 'auto');
|
|
225
|
+
this.renderer.setStyle(container, 'height', 'auto');
|
|
226
|
+
this.renderer.setStyle(container, 'display', 'flex');
|
|
227
|
+
this.renderer.setStyle(container, 'justify-content', 'center');
|
|
228
|
+
this.renderer.setStyle(container, 'align-items', 'center');
|
|
229
|
+
this.renderer.setStyle(container, 'pointer-events', 'none');
|
|
230
|
+
this.renderer.setStyle(container, 'opacity', '0');
|
|
231
|
+
this.renderer.setStyle(container, 'z-index', '1');
|
|
232
|
+
return container;
|
|
233
|
+
}
|
|
234
|
+
createCheckmarkSymbol() {
|
|
235
|
+
// Create the symbol component
|
|
236
|
+
this.symbolComponent = this.viewContainer.createComponent(SymbolComponent);
|
|
237
|
+
// Set inputs using setInput method for signal-based inputs
|
|
238
|
+
this.symbolComponent.setInput('symbolId', 'check');
|
|
239
|
+
this.symbolComponent.setInput('color', 'white');
|
|
240
|
+
this.symbolComponent.setInput('size', 10);
|
|
241
|
+
// Append the symbol to our checkmark container
|
|
242
|
+
this.renderer.appendChild(this.checkmarkContainer, this.symbolComponent.location.nativeElement);
|
|
243
|
+
}
|
|
244
|
+
createIndeterminateBar() {
|
|
245
|
+
// Create the indeterminate bar element exactly like the component
|
|
246
|
+
const bar = this.renderer.createElement('span');
|
|
247
|
+
this.renderer.setStyle(bar, 'height', '1.5px');
|
|
248
|
+
this.renderer.setStyle(bar, 'background', 'var(--ref-color-white)');
|
|
249
|
+
this.renderer.setStyle(bar, 'width', '8px');
|
|
250
|
+
// Append the bar to the indeterminate container
|
|
251
|
+
this.renderer.appendChild(this.indeterminateContainer, bar);
|
|
252
|
+
}
|
|
253
|
+
updateCheckmarkVisibility() {
|
|
254
|
+
if (this.checkmarkContainer) {
|
|
255
|
+
const opacity = this._checked && !this._indeterminate ? '1' : '0';
|
|
256
|
+
this.renderer.setStyle(this.checkmarkContainer, 'opacity', opacity);
|
|
257
|
+
}
|
|
258
|
+
if (this.indeterminateContainer) {
|
|
259
|
+
const opacity = this._indeterminate && !this._checked ? '1' : '0';
|
|
260
|
+
this.renderer.setStyle(this.indeterminateContainer, 'opacity', opacity);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
setupEventListeners() {
|
|
264
|
+
const input = this.elementRef.nativeElement;
|
|
265
|
+
// Input change listener (native checkbox change)
|
|
266
|
+
const changeListener = this.renderer.listen(input, 'change', () => {
|
|
267
|
+
this.onValueChange();
|
|
268
|
+
});
|
|
269
|
+
this.listeners.push(changeListener);
|
|
270
|
+
// Listen for label clicks to ensure focus is maintained
|
|
271
|
+
const parent = input.parentElement;
|
|
272
|
+
if (parent) {
|
|
273
|
+
const labelClickListener = this.renderer.listen(parent, 'click', (event) => {
|
|
274
|
+
const target = event.target;
|
|
275
|
+
// If clicking on a label that targets our input, ensure focus
|
|
276
|
+
if (target.tagName === 'LABEL' && target.getAttribute('for') === this.name) {
|
|
277
|
+
// Small delay to ensure the label click is processed first
|
|
278
|
+
setTimeout(() => {
|
|
279
|
+
input.focus();
|
|
280
|
+
}, 0);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
this.listeners.push(labelClickListener);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
applyCheckboxStyles() {
|
|
287
|
+
// Style the input directly without moving DOM elements
|
|
288
|
+
const styles = `
|
|
289
|
+
/* Complete reset and custom styling for our checkbox */
|
|
290
|
+
input[type="checkbox"].ap-checkbox-styled {
|
|
291
|
+
/* Targeted reset of problematic properties */
|
|
292
|
+
appearance: none !important;
|
|
293
|
+
-webkit-appearance: none !important;
|
|
294
|
+
-moz-appearance: none !important;
|
|
295
|
+
|
|
296
|
+
/* Our custom styling - use !important to override any global styles */
|
|
297
|
+
display: inline-block !important;
|
|
298
|
+
width: 16px !important;
|
|
299
|
+
height: 16px !important;
|
|
300
|
+
min-width: 16px !important;
|
|
301
|
+
min-height: 16px !important;
|
|
302
|
+
margin: 0 !important;
|
|
303
|
+
padding: 0 !important;
|
|
304
|
+
border: 1px solid var(--ref-color-grey-60);
|
|
305
|
+
border-radius: var(--sys-border-radius-sm);
|
|
306
|
+
background: var(--ref-color-white);
|
|
307
|
+
background-color: var(--ref-color-white);
|
|
308
|
+
box-sizing: border-box;
|
|
309
|
+
position: relative;
|
|
310
|
+
cursor: pointer;
|
|
311
|
+
vertical-align: middle;
|
|
312
|
+
|
|
313
|
+
/* Ensure no other styles can interfere */
|
|
314
|
+
box-shadow: none;
|
|
315
|
+
text-decoration: none;
|
|
316
|
+
font: inherit;
|
|
317
|
+
color: inherit;
|
|
318
|
+
letter-spacing: normal;
|
|
319
|
+
word-spacing: normal;
|
|
320
|
+
text-transform: none;
|
|
321
|
+
text-indent: 0;
|
|
322
|
+
text-shadow: none;
|
|
323
|
+
text-align: start;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/* Hover state */
|
|
327
|
+
input[type="checkbox"].ap-checkbox-styled:hover {
|
|
328
|
+
border-color: var(--ref-color-grey-80);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* Active/pressed state */
|
|
332
|
+
input[type="checkbox"].ap-checkbox-styled:active {
|
|
333
|
+
border-color: var(--ref-color-grey-100);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* Checked state */
|
|
337
|
+
input[type="checkbox"].ap-checkbox-styled:checked {
|
|
338
|
+
background: var(--ref-color-electric-blue-100);
|
|
339
|
+
border-color: var(--ref-color-electric-blue-100);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* Checked hover state */
|
|
343
|
+
input[type="checkbox"].ap-checkbox-styled:checked:hover {
|
|
344
|
+
background: var(--ref-color-electric-blue-80);
|
|
345
|
+
border-color: var(--ref-color-electric-blue-100);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/* Checked active/pressed state */
|
|
349
|
+
input[type="checkbox"].ap-checkbox-styled:checked:active {
|
|
350
|
+
background: var(--ref-color-electric-blue-60);
|
|
351
|
+
border-color: var(--ref-color-electric-blue-100);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* Indeterminate state */
|
|
355
|
+
input[type="checkbox"].ap-checkbox-styled:indeterminate {
|
|
356
|
+
background: var(--ref-color-electric-blue-100);
|
|
357
|
+
border-color: var(--ref-color-electric-blue-100);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/* Disabled state */
|
|
361
|
+
input[type="checkbox"].ap-checkbox-styled:disabled {
|
|
362
|
+
border-color: var(--ref-color-grey-20);
|
|
363
|
+
background: var(--ref-color-grey-10);
|
|
364
|
+
cursor: default;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
input[type="checkbox"].ap-checkbox-styled:disabled:checked {
|
|
368
|
+
background: var(--ref-color-grey-20);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* Focus state - only show on hover-capable devices like the component */
|
|
372
|
+
@media (hover: hover) {
|
|
373
|
+
input[type="checkbox"].ap-checkbox-styled:focus:not(.disabled) {
|
|
374
|
+
outline: 3px solid var(--ref-color-electric-blue-100) !important;
|
|
375
|
+
outline-offset: 1px !important;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/* Label styling - targets labels that follow our wrapper containing styled checkboxes */
|
|
380
|
+
span:has(input[type="checkbox"].ap-checkbox-styled) + label {
|
|
381
|
+
display: flex;
|
|
382
|
+
align-items: center;
|
|
383
|
+
font-family: var(--comp-forms-label-font-family);
|
|
384
|
+
font-size: var(--comp-forms-label-size);
|
|
385
|
+
font-weight: var(--comp-forms-label-font-weight);
|
|
386
|
+
line-height: var(--comp-forms-label-line-height);
|
|
387
|
+
color: var(--comp-forms-label-text-color);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/* Empty label styling */
|
|
391
|
+
span:has(input[type="checkbox"].ap-checkbox-styled) + label:empty {
|
|
392
|
+
display: none;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/* Disabled label styling */
|
|
396
|
+
span:has(input[type="checkbox"].ap-checkbox-styled:disabled) + label {
|
|
397
|
+
color: var(--ref-color-grey-60);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* Label hover styling */
|
|
401
|
+
span:has(input[type="checkbox"].ap-checkbox-styled) + label:hover:not(.disabled) {
|
|
402
|
+
cursor: pointer;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/* Disabled label hover */
|
|
406
|
+
span:has(input[type="checkbox"].ap-checkbox-styled:disabled) + label:hover {
|
|
407
|
+
cursor: default;
|
|
408
|
+
}
|
|
409
|
+
`;
|
|
410
|
+
// Create and append style element
|
|
411
|
+
this.styleElement = this.renderer.createElement('style');
|
|
412
|
+
this.renderer.appendChild(this.styleElement, this.renderer.createText(styles));
|
|
413
|
+
this.renderer.appendChild(document.head, this.styleElement);
|
|
414
|
+
}
|
|
415
|
+
onBlur() {
|
|
416
|
+
this._onTouched();
|
|
417
|
+
}
|
|
418
|
+
onValueChange() {
|
|
419
|
+
if (!this.disabled) {
|
|
420
|
+
const input = this.elementRef.nativeElement;
|
|
421
|
+
if (this._indeterminate) {
|
|
422
|
+
// When indeterminate, clicking should go to checked state
|
|
423
|
+
this._checked = true;
|
|
424
|
+
this._indeterminate = false;
|
|
425
|
+
input.checked = true;
|
|
426
|
+
input.indeterminate = false;
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
// Normal toggle behavior
|
|
430
|
+
this._checked = input.checked;
|
|
431
|
+
}
|
|
432
|
+
this.updateCheckmarkVisibility();
|
|
433
|
+
this.change.emit(this._checked);
|
|
434
|
+
this._controlValueAccessorChangeFn(this._checked);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
// ControlValueAccessor implementation
|
|
438
|
+
writeValue(value) {
|
|
439
|
+
this._checked = value;
|
|
440
|
+
const input = this.elementRef.nativeElement;
|
|
441
|
+
input.checked = value;
|
|
442
|
+
// Ensure indeterminate state is properly set
|
|
443
|
+
input.indeterminate = this._indeterminate;
|
|
444
|
+
this.updateCheckmarkVisibility();
|
|
445
|
+
}
|
|
446
|
+
registerOnChange(fn) {
|
|
447
|
+
this._controlValueAccessorChangeFn = fn;
|
|
448
|
+
}
|
|
449
|
+
registerOnTouched(fn) {
|
|
450
|
+
this._onTouched = fn;
|
|
451
|
+
}
|
|
452
|
+
setDisabledState(isDisabled) {
|
|
453
|
+
this.disabled = isDisabled;
|
|
454
|
+
const input = this.elementRef.nativeElement;
|
|
455
|
+
input.disabled = isDisabled;
|
|
456
|
+
}
|
|
457
|
+
validate() {
|
|
458
|
+
const isNotValid = !this._checked && this.required;
|
|
459
|
+
return (isNotValid && {
|
|
460
|
+
invalid: true,
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
464
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.9", type: CheckboxDirective, isStandalone: true, selector: "input[type=\"checkbox\"][apCheckbox]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], disabled: ["disabled", "disabled", booleanAttribute], indeterminate: ["indeterminate", "indeterminate", booleanAttribute], checked: "checked", required: ["required", "required", booleanAttribute], name: "name" }, outputs: { change: "change" }, host: { listeners: { "blur": "onBlur()" }, properties: { "disabled": "disabled", "required": "required", "checked": "checked", "attr.aria-label": "ariaLabel", "attr.aria-labelledby": "ariaLabelledby", "attr.aria-describedby": "ariaDescribedby", "attr.data-test": "name", "id": "name" } }, providers: [
|
|
465
|
+
AP_CHECKBOX_DIRECTIVE_CONTROL_VALUE_ACCESSOR,
|
|
466
|
+
{
|
|
467
|
+
provide: NG_VALIDATORS,
|
|
468
|
+
useExisting: CheckboxDirective,
|
|
469
|
+
multi: true,
|
|
470
|
+
},
|
|
471
|
+
], ngImport: i0 });
|
|
472
|
+
}
|
|
473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CheckboxDirective, decorators: [{
|
|
474
|
+
type: Directive,
|
|
475
|
+
args: [{
|
|
476
|
+
selector: 'input[type="checkbox"][apCheckbox]',
|
|
477
|
+
standalone: true,
|
|
478
|
+
providers: [
|
|
479
|
+
AP_CHECKBOX_DIRECTIVE_CONTROL_VALUE_ACCESSOR,
|
|
480
|
+
{
|
|
481
|
+
provide: NG_VALIDATORS,
|
|
482
|
+
useExisting: CheckboxDirective,
|
|
483
|
+
multi: true,
|
|
484
|
+
},
|
|
485
|
+
],
|
|
486
|
+
host: {
|
|
487
|
+
'(blur)': 'onBlur()',
|
|
488
|
+
'[disabled]': 'disabled',
|
|
489
|
+
'[required]': 'required',
|
|
490
|
+
'[checked]': 'checked',
|
|
491
|
+
'[attr.aria-label]': 'ariaLabel',
|
|
492
|
+
'[attr.aria-labelledby]': 'ariaLabelledby',
|
|
493
|
+
'[attr.aria-describedby]': 'ariaDescribedby',
|
|
494
|
+
'[attr.data-test]': 'name',
|
|
495
|
+
'[id]': 'name',
|
|
496
|
+
},
|
|
497
|
+
}]
|
|
498
|
+
}], propDecorators: { ariaLabel: [{
|
|
499
|
+
type: Input,
|
|
500
|
+
args: ['aria-label']
|
|
501
|
+
}], ariaLabelledby: [{
|
|
502
|
+
type: Input,
|
|
503
|
+
args: ['aria-labelledby']
|
|
504
|
+
}], ariaDescribedby: [{
|
|
505
|
+
type: Input,
|
|
506
|
+
args: ['aria-describedby']
|
|
507
|
+
}], disabled: [{
|
|
508
|
+
type: Input,
|
|
509
|
+
args: [{
|
|
510
|
+
transform: booleanAttribute,
|
|
511
|
+
}]
|
|
512
|
+
}], indeterminate: [{
|
|
513
|
+
type: Input,
|
|
514
|
+
args: [{
|
|
515
|
+
transform: booleanAttribute,
|
|
516
|
+
}]
|
|
517
|
+
}], checked: [{
|
|
518
|
+
type: Input
|
|
519
|
+
}], required: [{
|
|
520
|
+
type: Input,
|
|
521
|
+
args: [{
|
|
522
|
+
transform: booleanAttribute,
|
|
523
|
+
}]
|
|
524
|
+
}], name: [{
|
|
525
|
+
type: Input,
|
|
526
|
+
args: [{
|
|
527
|
+
required: true,
|
|
528
|
+
}]
|
|
529
|
+
}], change: [{
|
|
530
|
+
type: Output
|
|
531
|
+
}] } });
|
|
532
|
+
|
|
94
533
|
class DefaultImageDirective {
|
|
95
534
|
src = '';
|
|
96
535
|
default = '';
|
|
@@ -469,5 +908,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
469
908
|
* Generated bundle index. Do not edit.
|
|
470
909
|
*/
|
|
471
910
|
|
|
472
|
-
export { AutosizeTextareaDirective, BaseButtonDirective, DefaultImageDirective, EllipsisDirective, EqualValidatorDirective, FrozenGifDirective, GifService, MultiStyleTextDirective };
|
|
911
|
+
export { AP_CHECKBOX_DIRECTIVE_CONTROL_VALUE_ACCESSOR, AutosizeTextareaDirective, BaseButtonDirective, CheckboxDirective, DefaultImageDirective, EllipsisDirective, EqualValidatorDirective, FrozenGifDirective, GifService, MultiStyleTextDirective };
|
|
473
912
|
//# sourceMappingURL=agorapulse-ui-components-directives.mjs.map
|