@ascentgl/ads-ui 20.0.32 → 20.0.34
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.
|
@@ -579,6 +579,8 @@ class AdsCreateTagComponent {
|
|
|
579
579
|
* and total number of existing tags calculation */
|
|
580
580
|
this.tags = [];
|
|
581
581
|
this.tagsChange = new EventEmitter();
|
|
582
|
+
this.tagCreate = new EventEmitter();
|
|
583
|
+
this.tagRemove = new EventEmitter();
|
|
582
584
|
/** The color palette for the tag background */
|
|
583
585
|
this.palette = input([
|
|
584
586
|
Colors.Primary,
|
|
@@ -789,9 +791,10 @@ class AdsCreateTagComponent {
|
|
|
789
791
|
}
|
|
790
792
|
/** @ignore */
|
|
791
793
|
onTagCreated(tag) {
|
|
792
|
-
tag.id = (this.tags.length + 1).toString(); // Generate a unique id for the tag - uuid is a 3rd party library
|
|
794
|
+
tag.id = (this.tags[this.tags.length - 1].id + 1).toString(); // Generate a unique id for the tag - uuid is a 3rd party library
|
|
793
795
|
this.tags.push(tag); // Add the tag to the list of tags
|
|
794
796
|
this.tagsChange.emit([...this.tags]); // emit the updated array
|
|
797
|
+
this.tagCreate.emit(tag);
|
|
795
798
|
}
|
|
796
799
|
/** @ignore */
|
|
797
800
|
onTagSelect(tag) {
|
|
@@ -800,10 +803,11 @@ class AdsCreateTagComponent {
|
|
|
800
803
|
/** @ignore */
|
|
801
804
|
onTagRemove(id) {
|
|
802
805
|
this.tags = this.tags.filter((existingTag) => existingTag.id !== id); // Remove tag from the list of tags
|
|
803
|
-
this.tagsChange.emit([...this.tags]);
|
|
806
|
+
this.tagsChange.emit([...this.tags]);
|
|
807
|
+
this.tagRemove.emit(id); // emit the updated array
|
|
804
808
|
}
|
|
805
809
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: AdsCreateTagComponent, deps: [{ token: i4.FormBuilder }, { token: i1.AdsIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
806
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: AdsCreateTagComponent, isStandalone: false, selector: "ads-create-tag", inputs: { limit: { classPropertyName: "limit", publicName: "limit", isSignal: true, isRequired: false, transformFunction: null }, tags: { classPropertyName: "tags", publicName: "tags", isSignal: false, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, lowercase: { classPropertyName: "lowercase", publicName: "lowercase", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, alphanumeric: { classPropertyName: "alphanumeric", publicName: "alphanumeric", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tagsChange: "tagsChange" }, viewQueries: [{ propertyName: "addInput", first: true, predicate: ["addInput"], descendants: true }, { propertyName: "editInput", first: true, predicate: ["editInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ads-tag-container>\n @for (tag of tags; track tag.id) {\n @if (selectedTag()?.id === tag.id) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #updateTrigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"updateTrigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #editInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"updateTag()\">\n {{ 'Save' }}\n </ads-button>\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n } @else {\n <ads-tag\n [tag]=\"tag.tag\"\n [color]=\"tag.color\"\n [id]=\"tag.id\"\n (selected)=\"onTagSelect($event)\"\n (remove)=\"onTagRemove($event)\"\n />\n }\n }\n\n <div class=\"container\">\n @if (showInput) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #addTrigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addTrigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #addInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"addTag()\">{{ 'Add' }} </ads-button>\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n }\n\n @if (this.tags.length < this.limit()) {\n <ads-button (click)=\"displayInput()\" size=\"xs\">\n {{ 'Add Tag' }}\n </ads-button>\n }\n </div>\n</ads-tag-container>\n", styles: [".tag-overlay-trigger{height:0;width:150px;display:flex}.tag-overlay{display:flex;flex-direction:column}input{padding:0 8px;box-sizing:border-box;background-color:var(--color-white);border:2px solid var(--color-medium);color:var(--color-dark);height:24px;border-radius:5px;width:150px}input:focus{outline:none}.tag-configuration{box-shadow:0 0 0 1px #98a1b31a,0 15px 35px -5px #11182626,0 5px 15px #00000014;border-radius:5px;margin-top:5px;background-color:var(--color-white);overflow:hidden}.color-picker{padding:12px 16px;display:grid;grid-template-columns:repeat(4,1fr);place-items:center;grid-gap:12px}.color-picker .color{width:20px;height:20px;border-radius:50%;cursor:pointer}.actions{border-top:1px solid var(--color-light);padding:8px 16px;display:flex;justify-content:center;gap:12px}.actions ::ng-deep ads-button button{width:52px;min-width:unset}::ng-deep .cdk-overlay-dark-backdrop{opacity:0!important}.container{display:inline-flex;gap:4px;height:24px;position:relative}\n"], dependencies: [{ kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AdsButtonComponent, selector: "ads-button", inputs: ["id", "variant", "disabled", "size", "type"] }, { kind: "component", type: AdsTagContainerComponent, selector: "ads-tag-container" }, { kind: "component", type: AdsTagComponent, selector: "ads-tag", inputs: ["color", "id", "removable", "tag"], outputs: ["remove", "selected"] }] }); }
|
|
810
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: AdsCreateTagComponent, isStandalone: false, selector: "ads-create-tag", inputs: { limit: { classPropertyName: "limit", publicName: "limit", isSignal: true, isRequired: false, transformFunction: null }, tags: { classPropertyName: "tags", publicName: "tags", isSignal: false, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, lowercase: { classPropertyName: "lowercase", publicName: "lowercase", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, alphanumeric: { classPropertyName: "alphanumeric", publicName: "alphanumeric", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tagsChange: "tagsChange", tagCreate: "tagCreate", tagRemove: "tagRemove" }, viewQueries: [{ propertyName: "addInput", first: true, predicate: ["addInput"], descendants: true }, { propertyName: "editInput", first: true, predicate: ["editInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ads-tag-container>\n @for (tag of tags; track tag.id) {\n @if (selectedTag()?.id === tag.id) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #updateTrigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"updateTrigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #editInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"updateTag()\">\n {{ 'Save' }}\n </ads-button>\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n } @else {\n <ads-tag\n [tag]=\"tag.tag\"\n [color]=\"tag.color\"\n [id]=\"tag.id\"\n (selected)=\"onTagSelect($event)\"\n (remove)=\"onTagRemove($event)\"\n />\n }\n }\n\n <div class=\"container\">\n @if (showInput) {\n <form [formGroup]=\"form\">\n <div class=\"tag-overlay-trigger\" cdkOverlayOrigin #addTrigger=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"addTrigger\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n >\n <div class=\"tag-overlay\">\n <input #addInput formControlName=\"tag\" [attr.maxlength]=\"maxlength()\" />\n <div class=\"tag-configuration\">\n <div class=\"color-picker\">\n @for (color of palette(); track color) {\n <div\n class=\"color\"\n [class.selected]=\"selectedColor === color\"\n [ngStyle]=\"{\n 'background-color': getBackgroundColor(color),\n opacity: selectedColor && selectedColor !== color ? 0.2 : 1,\n }\"\n (click)=\"onColorChange(color)\"\n ></div>\n }\n </div>\n <div class=\"actions\">\n <ads-button [variant]=\"'secondary'\" size=\"xs\" (click)=\"reset()\">{{ 'Cancel' }}</ads-button>\n <ads-button size=\"xs\" [disabled]=\"isValueInvalid()\" (click)=\"addTag()\">{{ 'Add' }} </ads-button>\n </div>\n </div>\n </div>\n </ng-template>\n </form>\n }\n\n @if (this.tags.length < this.limit()) {\n <ads-button (click)=\"displayInput()\" size=\"xs\">\n {{ 'Add Tag' }}\n </ads-button>\n }\n </div>\n</ads-tag-container>\n", styles: [".tag-overlay-trigger{height:0;width:150px;display:flex}.tag-overlay{display:flex;flex-direction:column}input{padding:0 8px;box-sizing:border-box;background-color:var(--color-white);border:2px solid var(--color-medium);color:var(--color-dark);height:24px;border-radius:5px;width:150px}input:focus{outline:none}.tag-configuration{box-shadow:0 0 0 1px #98a1b31a,0 15px 35px -5px #11182626,0 5px 15px #00000014;border-radius:5px;margin-top:5px;background-color:var(--color-white);overflow:hidden}.color-picker{padding:12px 16px;display:grid;grid-template-columns:repeat(4,1fr);place-items:center;grid-gap:12px}.color-picker .color{width:20px;height:20px;border-radius:50%;cursor:pointer}.actions{border-top:1px solid var(--color-light);padding:8px 16px;display:flex;justify-content:center;gap:12px}.actions ::ng-deep ads-button button{width:52px;min-width:unset}::ng-deep .cdk-overlay-dark-backdrop{opacity:0!important}.container{display:inline-flex;gap:4px;height:24px;position:relative}\n"], dependencies: [{ kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AdsButtonComponent, selector: "ads-button", inputs: ["id", "variant", "disabled", "size", "type"] }, { kind: "component", type: AdsTagContainerComponent, selector: "ads-tag-container" }, { kind: "component", type: AdsTagComponent, selector: "ads-tag", inputs: ["color", "id", "removable", "tag"], outputs: ["remove", "selected"] }] }); }
|
|
807
811
|
}
|
|
808
812
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: AdsCreateTagComponent, decorators: [{
|
|
809
813
|
type: Component,
|
|
@@ -812,6 +816,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
812
816
|
type: Input
|
|
813
817
|
}], tagsChange: [{
|
|
814
818
|
type: Output
|
|
819
|
+
}], tagCreate: [{
|
|
820
|
+
type: Output
|
|
821
|
+
}], tagRemove: [{
|
|
822
|
+
type: Output
|
|
815
823
|
}], addInput: [{
|
|
816
824
|
type: ViewChild,
|
|
817
825
|
args: ['addInput']
|