@agorapulse/ui-components 15.1.14 → 15.1.16
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-15.1.16.tgz +0 -0
- package/esm2020/avatar/avatar.component.mjs +3 -3
- package/esm2020/labels-selector/labels-selector.component.mjs +6 -4
- package/fesm2015/agorapulse-ui-components-avatar.mjs +3 -3
- package/fesm2015/agorapulse-ui-components-avatar.mjs.map +1 -1
- package/fesm2015/agorapulse-ui-components-labels-selector.mjs +5 -3
- package/fesm2015/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-avatar.mjs +3 -3
- package/fesm2020/agorapulse-ui-components-avatar.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-labels-selector.mjs +5 -3
- package/fesm2020/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/labels-selector/labels-selector.component.d.ts +0 -1
- package/package.json +1 -1
- package/agorapulse-ui-components-15.1.14.tgz +0 -0
|
Binary file
|
|
@@ -180,10 +180,10 @@ export class AvatarComponent {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [
|
|
183
|
+
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: LetModule }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
184
184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
185
185
|
type: Component,
|
|
186
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [
|
|
186
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"] }]
|
|
187
187
|
}], ctorParameters: function () { return [{ type: i1.SymbolRegistry }, { type: i0.ElementRef }]; }, propDecorators: { alternativeText: [{
|
|
188
188
|
type: Input
|
|
189
189
|
}], anonymous: [{
|
|
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
208
208
|
}], size: [{
|
|
209
209
|
type: Input
|
|
210
210
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGVBQWUsR0FFbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBRUwsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQWMxQyxNQUFNLDBCQUEwQixHQUErQjtJQUMzRCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztDQUNSLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUErQjtJQUN2RCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lB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V0FBVzt1QkFBQyxzQkFBc0I7Z0JBSS9CLE9BQU87c0JBRFYsS0FBSztnQkFNTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBhcEZhY2Vib29rT2ZmaWNpYWwsXG4gICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgIGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHksXG4gICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgIGFwVGlrdG9rT2ZmaWNpYWwsXG4gICAgYXBUd2l0dGVyT2ZmaWNpYWwsXG4gICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgYXBQaW50ZXJlc3RPZmZpY2lhbCxcbiAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgU3ltYm9sUmVnaXN0cnksXG59IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge05nRm9yT2YsIE5nSWYsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xldE1vZHVsZX0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQXZhdGFyU2l6ZSA9IDU2IHwgNDggfCA0MCB8IDM2IHwgMzIgfCAyNCB8IDE2O1xuZXhwb3J0IHR5cGUgQXZhdGFyTmV0d29yayA9XG4gICAgfCAnZmFjZWJvb2snXG4gICAgfCAnaW5zdGFncmFtJ1xuICAgIHwgJ3R3aXR0ZXInXG4gICAgfCAnbGlua2VkaW4nXG4gICAgfCAndGlrdG9rJ1xuICAgIHwgJ3lvdXR1YmUnXG4gICAgfCAncGludGVyZXN0J1xuICAgIHwgJ2dvb2dsZU15QnVzaW5lc3MnXG4gICAgfCAnZ29vZ2xlJztcblxuY29uc3Qgb25saW5lSWNvblNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTIsXG4gICAgNDA6IDEyLFxuICAgIDM2OiA4LFxuICAgIDMyOiA4LFxuICAgIDI0OiA2LFxuICAgIDE2OiA2LFxufTtcblxuY29uc3Qgc3ltYm9sU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjAsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxNixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBuZXR3b3JrU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDE2LFxuICAgIDQ4OiAxNixcbiAgICA0MDogMTYsXG4gICAgMzY6IDE2LFxuICAgIDMyOiAxMixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjIsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxOCxcbiAgICAyNDogMTQsXG4gICAgMTY6IDEwLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1hdmF0YXInLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yT2YsIE5nT3B0aW1pemVkSW1hZ2UsIFN5bWJvbENvbXBvbmVudCwgTGV0TW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IG5ldHdvcmtTeW1ib2xCeU5ldHdvcms6IFJlY29yZDxBdmF0YXJOZXR3b3JrLCBzdHJpbmc+ID0ge1xuICAgICAgICBmYWNlYm9vazogJ2ZhY2Vib29rLW9mZmljaWFsJyxcbiAgICAgICAgaW5zdGFncmFtOiAnaW5zdGFncmFtLW9mZmljaWFsJyxcbiAgICAgICAgdHdpdHRlcjogJ3R3aXR0ZXItb2ZmaWNpYWwnLFxuICAgICAgICBsaW5rZWRpbjogJ2xpbmtlZGluLW9mZmljaWFsJyxcbiAgICAgICAgdGlrdG9rOiAndGlrdG9rLW9mZmljaWFsJyxcbiAgICAgICAgeW91dHViZTogJ3lvdXR1YmUtb2ZmaWNpYWwnLFxuICAgICAgICBwaW50ZXJlc3Q6ICdwaW50ZXJlc3Qtb2ZmaWNpYWwnLFxuICAgICAgICBnb29nbGVNeUJ1c2luZXNzOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICAgICAgZ29vZ2xlOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICB9O1xuXG4gICAgc2l6ZSQ6IEJlaGF2aW9yU3ViamVjdDxBdmF0YXJTaXplPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXZhdGFyU2l6ZT4oNDApO1xuICAgIHByb2ZpbGVQaWN0dXJlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIG5ldHdvcmskOiBCZWhhdmlvclN1YmplY3Q8QXZhdGFyTmV0d29yayB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF2YXRhck5ldHdvcms+KHVuZGVmaW5lZCk7XG5cbiAgICBwcml2YXRlIGFsdGVybmF0aXZlVGV4dCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIGFub255bW91cyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgdXNlcm5hbWUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBvbmxpbmUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNob3dJbml0aWFscyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgcm91bmRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICBASW5wdXQoKSBzZXQgYWx0ZXJuYXRpdmVUZXh0KGFsdGVybmF0aXZlVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWx0ZXJuYXRpdmVUZXh0JC5uZXh0KGFsdGVybmF0aXZlVGV4dCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFub255bW91cyhhbm9ueW1vdXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hbm9ueW1vdXMkLm5leHQoYW5vbnltb3VzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZXJuYW1lJC5uZXh0KHVzZXJuYW1lKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbmV0d29yayhuZXR3b3JrOiBBdmF0YXJOZXR3b3JrIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMubmV0d29yayQubmV4dChuZXR3b3JrKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItbmV0d29yay1zaXplJyxcbiAgICAgICAgICAgIGAke25ldHdvcmtTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvbmxpbmUob25saW5lOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub25saW5lJC5uZXh0KG9ubGluZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHByb2ZpbGVQaWN0dXJlKHByb2ZpbGVQaWN0dXJlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQubmV4dChwcm9maWxlUGljdHVyZSk7XG4gICAgICAgIHRoaXMuaW1hZ2VFcnJvciQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNob3dJbml0aWFscyhzaG93SW5pdGlhbHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zaG93SW5pdGlhbHMkLm5leHQoc2hvd0luaXRpYWxzKTtcbiAgICB9XG4gICAgQElucHV0KCkgYWx0OiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvdW5kZWQtYXZhdGFyJylcbiAgICByb3VuZGVkQXZhdGFyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJvdW5kZWQocm91bmRlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnJvdW5kZWRBdmF0YXIgPSByb3VuZGVkO1xuICAgICAgICB0aGlzLnJvdW5kZWQkLm5leHQocm91bmRlZCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogQXZhdGFyU2l6ZSkge1xuICAgICAgICB0aGlzLnNpemUkLm5leHQoc2l6ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zaXplJywgYCR7c2l6ZX1weGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hcC1hdmF0YXItc3ltYm9sLXNpemUnLCBgJHtzeW1ib2xTaXplQnlBdmF0YXJTaXplW3NpemVdfXB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLW9ubGluZS1pY29uLXNpemUnLFxuICAgICAgICAgICAgYCR7b25saW5lSWNvblNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGlzcGxheVByb2ZpbGVQaWN0dXJlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheVNpbmdsZU5ldXRyYWxTdmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5SW5pdGlhbHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5QW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheU5ldHdvcmskOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5T25saW5lJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgaW1hZ2VFcnJvciQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGluaXRpYWxzJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gbmV3IE9ic2VydmFibGU8c3RyaW5nPigpO1xuICAgIGluaXRpYWxzQXZhaWxhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5LCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgICAgICAgICAgYXBTaG93VGhlYXRlck1hc2tIYXBweSxcbiAgICAgICAgICAgIGFwRmFjZWJvb2tPZmZpY2lhbCxcbiAgICAgICAgICAgIGFwVHdpdHRlck9mZmljaWFsLFxuICAgICAgICAgICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgICAgICAgICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFRpa3Rva09mZmljaWFsLFxuICAgICAgICAgICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFBpbnRlcmVzdE9mZmljaWFsLFxuICAgICAgICBdKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLXNpemUnLCBgNDBweGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsXG4gICAgICAgICAgICBgJHtzeW1ib2xTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCA9IHRoaXMudXNlcm5hbWUkLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlcm5hbWUgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXVzZXJuYW1lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICAgICAgdGhpcy5hbm9ueW1vdXMkLFxuICAgICAgICAgICAgdGhpcy5pbWFnZUVycm9yJCxcbiAgICAgICAgICAgIHRoaXMuc2hvd0luaXRpYWxzJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Byb2ZpbGVQaWN0dXJlLCBhbm9ueW1vdXMsIGltYWdlRXJyb3JdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcHJvZmlsZVBpY3R1cmUgJiYgIWFub255bW91cyAmJiAhaW1hZ2VFcnJvcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5SW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByb2ZpbGVQaWN0dXJlJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Nob3dJbml0aWFscywgYW5vbnltb3VzLCBpbml0aWFsc0F2YWlsYWJsZSwgZGlzcGxheVByb2ZpbGVQaWN0dXJlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaG93SW5pdGlhbHMgJiYgIWFub255bW91cyAmJiBpbml0aWFsc0F2YWlsYWJsZSAmJiAhZGlzcGxheVByb2ZpbGVQaWN0dXJlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQsXG4gICAgICAgICAgICB0aGlzLmltYWdlRXJyb3IkLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQsXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgcHJvZmlsZVBpY3R1cmUsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxzQXZhaWxhYmxlLFxuICAgICAgICAgICAgICAgICAgICBzaG93SW5pdGlhbHMsXG4gICAgICAgICAgICAgICAgICAgIGFub255bW91cyxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUluaXRpYWxzLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmUsXG4gICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCFwcm9maWxlUGljdHVyZSB8fCBpbWFnZUVycm9yIHx8ICFpbml0aWFsc0F2YWlsYWJsZSB8fCAoaW5pdGlhbHNBdmFpbGFibGUgJiYgIXNob3dJbml0aWFscykpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhYW5vbnltb3VzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGlzcGxheUluaXRpYWxzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGlzcGxheVByb2ZpbGVQaWN0dXJlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheUFub255bW91cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmFub255bW91cyQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbYW5vbnltb3VzLCByb3VuZGVkXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbm9ueW1vdXMgJiYgcm91bmRlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5T25saW5lJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub25saW5lJCwgdGhpcy5yb3VuZGVkJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtvbmxpbmUsIHJvdW5kZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9ubGluZSAmJiByb3VuZGVkO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlOZXR3b3JrJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubmV0d29yayQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbmV0d29yaywgcm91bmRlZF0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFuZXR3b3JrICYmIHJvdW5kZWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kaXNwbGF5SW5pdGlhbHMkLCB0aGlzLnVzZXJuYW1lJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtkaXNwbGF5SW5pdGlhbHMsIHVzZXJuYW1lXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgoZGlzcGxheUluaXRpYWxzICYmICF1c2VybmFtZSkgfHwgIWRpc3BsYXlJbml0aWFscykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAnLS1hcC1hdmF0YXItaW5pdGlhbHMtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgIGAke2luaXRpYWxTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZXMgPSB1c2VybmFtZT8uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlRXJyb3IkLm5leHQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ3J4TGV0PVwie1xuICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmU6IGRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIGRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnOiBkaXNwbGF5U2luZ2xlTmV1dHJhbFN2ZyQsXG4gICAgICAgIGRpc3BsYXlJbml0aWFsczogZGlzcGxheUluaXRpYWxzJCxcbiAgICAgICAgZGlzcGxheUFub255bW91czogZGlzcGxheUFub255bW91cyQsXG4gICAgICAgIGRpc3BsYXlPbmxpbmU6IGRpc3BsYXlPbmxpbmUkLFxuICAgICAgICBkaXNwbGF5TmV0d29yazogZGlzcGxheU5ldHdvcmskLFxuICAgICAgICBpbml0aWFsczogaW5pdGlhbHMkLFxuICAgICAgICBwcm9maWxlUGljdHVyZTogcHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICBzaXplOiBzaXplJCxcbiAgICAgICAgbmV0d29yazogbmV0d29yayRcbiAgICB9IGFzIGF2YXRhclZpZXdNb2RlbFwiPlxuICAgIDxpbWdcbiAgICAgICAgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheVByb2ZpbGVQaWN0dXJlXCJcbiAgICAgICAgW25nU3JjXT1cImF2YXRhclZpZXdNb2RlbC5wcm9maWxlUGljdHVyZVwiXG4gICAgICAgIFt3aWR0aF09XCJhdmF0YXJWaWV3TW9kZWwuc2l6ZVwiXG4gICAgICAgIFtoZWlnaHRdPVwiYXZhdGFyVmlld01vZGVsLnNpemVcIlxuICAgICAgICBbYWx0XT1cImFsdFwiXG4gICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoKVwiIC8+XG4gICAgPGRpdiAqbmdJZj1cImF2YXRhclZpZXdNb2RlbC5kaXNwbGF5U2luZ2xlTmV1dHJhbFN2Z1wiIGNsYXNzPVwibm8tcHJvZmlsZS1waWN0dXJlXCI+XG4gICAgICAgIDxhcC1zeW1ib2wgc3ltYm9sSWQ9XCJzaW5nbGUtbmV1dHJhbFwiPjwvYXAtc3ltYm9sPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImF2YXRhclZpZXdNb2RlbC5kaXNwbGF5QW5vbnltb3VzXCIgY2xhc3M9XCJhbm9ueW1vdXNcIj5cbiAgICAgICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cInNob3ctdGhlYXRlci1tYXNrLWhhcHB5XCI+PC9hcC1zeW1ib2w+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImF2YXRhclZpZXdNb2RlbC5kaXNwbGF5T25saW5lXCIgY2xhc3M9XCJvbmxpbmVcIj48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlOZXR3b3JrXCJcbiAgICAgICAgY2xhc3M9XCJuZXR3b3JrXCJcbiAgICAgICAgW2NsYXNzLmZhY2Vib29rXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnZmFjZWJvb2snXCJcbiAgICAgICAgW2NsYXNzLmxpbmtlZGluXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnbGlua2VkaW4nXCJcbiAgICAgICAgW2NsYXNzLnR3aXR0ZXJdPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICd0d2l0dGVyJ1wiXG4gICAgICAgIFtjbGFzcy55b3V0dWJlXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAneW91dHViZSdcIlxuICAgICAgICBbY2xhc3MuZ29vZ2xlTXlCdXNpbmVzc109XCJcbiAgICAgICAgICAgIGF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnZ29vZ2xlTXlCdXNpbmVzcycgfHwgYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICdnb29nbGUnXG4gICAgICAgIFwiXG4gICAgICAgIFtjbGFzcy5pbnN0YWdyYW1dPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICdpbnN0YWdyYW0nXCJcbiAgICAgICAgW2NsYXNzLnRpa3Rva109XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ3Rpa3RvaydcIj5cbiAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwibmV0d29ya1N5bWJvbEJ5TmV0d29ya1thdmF0YXJWaWV3TW9kZWwubmV0d29ya11cIj48L2FwLXN5bWJvbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheUluaXRpYWxzXCIgY2xhc3M9XCJpbml0aWFsc1wiPlxuICAgICAgICB7eyBhdmF0YXJWaWV3TW9kZWwuaW5pdGlhbHMgfX1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGVBQWUsR0FFbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBRUwsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQWMxQyxNQUFNLDBCQUEwQixHQUErQjtJQUMzRCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztDQUNSLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUErQjtJQUN2RCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lB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QkFBc0I7Z0JBSS9CLE9BQU87c0JBRFYsS0FBSztnQkFNTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBhcEZhY2Vib29rT2ZmaWNpYWwsXG4gICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgIGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHksXG4gICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgIGFwVGlrdG9rT2ZmaWNpYWwsXG4gICAgYXBUd2l0dGVyT2ZmaWNpYWwsXG4gICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgYXBQaW50ZXJlc3RPZmZpY2lhbCxcbiAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgU3ltYm9sUmVnaXN0cnksXG59IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge05nRm9yT2YsIE5nSWYsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xldE1vZHVsZX0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQXZhdGFyU2l6ZSA9IDU2IHwgNDggfCA0MCB8IDM2IHwgMzIgfCAyNCB8IDE2O1xuZXhwb3J0IHR5cGUgQXZhdGFyTmV0d29yayA9XG4gICAgfCAnZmFjZWJvb2snXG4gICAgfCAnaW5zdGFncmFtJ1xuICAgIHwgJ3R3aXR0ZXInXG4gICAgfCAnbGlua2VkaW4nXG4gICAgfCAndGlrdG9rJ1xuICAgIHwgJ3lvdXR1YmUnXG4gICAgfCAncGludGVyZXN0J1xuICAgIHwgJ2dvb2dsZU15QnVzaW5lc3MnXG4gICAgfCAnZ29vZ2xlJztcblxuY29uc3Qgb25saW5lSWNvblNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTIsXG4gICAgNDA6IDEyLFxuICAgIDM2OiA4LFxuICAgIDMyOiA4LFxuICAgIDI0OiA2LFxuICAgIDE2OiA2LFxufTtcblxuY29uc3Qgc3ltYm9sU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjAsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxNixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBuZXR3b3JrU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDE2LFxuICAgIDQ4OiAxNixcbiAgICA0MDogMTYsXG4gICAgMzY6IDE2LFxuICAgIDMyOiAxMixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjIsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxOCxcbiAgICAyNDogMTQsXG4gICAgMTY6IDEwLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1hdmF0YXInLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yT2YsIE5nT3B0aW1pemVkSW1hZ2UsIFN5bWJvbENvbXBvbmVudCwgTGV0TW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IG5ldHdvcmtTeW1ib2xCeU5ldHdvcms6IFJlY29yZDxBdmF0YXJOZXR3b3JrLCBzdHJpbmc+ID0ge1xuICAgICAgICBmYWNlYm9vazogJ2ZhY2Vib29rLW9mZmljaWFsJyxcbiAgICAgICAgaW5zdGFncmFtOiAnaW5zdGFncmFtLW9mZmljaWFsJyxcbiAgICAgICAgdHdpdHRlcjogJ3R3aXR0ZXItb2ZmaWNpYWwnLFxuICAgICAgICBsaW5rZWRpbjogJ2xpbmtlZGluLW9mZmljaWFsJyxcbiAgICAgICAgdGlrdG9rOiAndGlrdG9rLW9mZmljaWFsJyxcbiAgICAgICAgeW91dHViZTogJ3lvdXR1YmUtb2ZmaWNpYWwnLFxuICAgICAgICBwaW50ZXJlc3Q6ICdwaW50ZXJlc3Qtb2ZmaWNpYWwnLFxuICAgICAgICBnb29nbGVNeUJ1c2luZXNzOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICAgICAgZ29vZ2xlOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICB9O1xuXG4gICAgc2l6ZSQ6IEJlaGF2aW9yU3ViamVjdDxBdmF0YXJTaXplPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXZhdGFyU2l6ZT4oNDApO1xuICAgIHByb2ZpbGVQaWN0dXJlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIG5ldHdvcmskOiBCZWhhdmlvclN1YmplY3Q8QXZhdGFyTmV0d29yayB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF2YXRhck5ldHdvcms+KHVuZGVmaW5lZCk7XG5cbiAgICBwcml2YXRlIGFsdGVybmF0aXZlVGV4dCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIGFub255bW91cyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgdXNlcm5hbWUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBvbmxpbmUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNob3dJbml0aWFscyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgcm91bmRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICBASW5wdXQoKSBzZXQgYWx0ZXJuYXRpdmVUZXh0KGFsdGVybmF0aXZlVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWx0ZXJuYXRpdmVUZXh0JC5uZXh0KGFsdGVybmF0aXZlVGV4dCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFub255bW91cyhhbm9ueW1vdXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hbm9ueW1vdXMkLm5leHQoYW5vbnltb3VzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZXJuYW1lJC5uZXh0KHVzZXJuYW1lKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbmV0d29yayhuZXR3b3JrOiBBdmF0YXJOZXR3b3JrIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMubmV0d29yayQubmV4dChuZXR3b3JrKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItbmV0d29yay1zaXplJyxcbiAgICAgICAgICAgIGAke25ldHdvcmtTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvbmxpbmUob25saW5lOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub25saW5lJC5uZXh0KG9ubGluZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHByb2ZpbGVQaWN0dXJlKHByb2ZpbGVQaWN0dXJlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQubmV4dChwcm9maWxlUGljdHVyZSk7XG4gICAgICAgIHRoaXMuaW1hZ2VFcnJvciQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNob3dJbml0aWFscyhzaG93SW5pdGlhbHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zaG93SW5pdGlhbHMkLm5leHQoc2hvd0luaXRpYWxzKTtcbiAgICB9XG4gICAgQElucHV0KCkgYWx0OiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvdW5kZWQtYXZhdGFyJylcbiAgICByb3VuZGVkQXZhdGFyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJvdW5kZWQocm91bmRlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnJvdW5kZWRBdmF0YXIgPSByb3VuZGVkO1xuICAgICAgICB0aGlzLnJvdW5kZWQkLm5leHQocm91bmRlZCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogQXZhdGFyU2l6ZSkge1xuICAgICAgICB0aGlzLnNpemUkLm5leHQoc2l6ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zaXplJywgYCR7c2l6ZX1weGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hcC1hdmF0YXItc3ltYm9sLXNpemUnLCBgJHtzeW1ib2xTaXplQnlBdmF0YXJTaXplW3NpemVdfXB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLW9ubGluZS1pY29uLXNpemUnLFxuICAgICAgICAgICAgYCR7b25saW5lSWNvblNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGlzcGxheVByb2ZpbGVQaWN0dXJlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheVNpbmdsZU5ldXRyYWxTdmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5SW5pdGlhbHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5QW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheU5ldHdvcmskOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5T25saW5lJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgaW1hZ2VFcnJvciQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGluaXRpYWxzJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gbmV3IE9ic2VydmFibGU8c3RyaW5nPigpO1xuICAgIGluaXRpYWxzQXZhaWxhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5LCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgICAgICAgICAgYXBTaG93VGhlYXRlck1hc2tIYXBweSxcbiAgICAgICAgICAgIGFwRmFjZWJvb2tPZmZpY2lhbCxcbiAgICAgICAgICAgIGFwVHdpdHRlck9mZmljaWFsLFxuICAgICAgICAgICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgICAgICAgICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFRpa3Rva09mZmljaWFsLFxuICAgICAgICAgICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFBpbnRlcmVzdE9mZmljaWFsLFxuICAgICAgICBdKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLXNpemUnLCBgNDBweGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsXG4gICAgICAgICAgICBgJHtzeW1ib2xTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCA9IHRoaXMudXNlcm5hbWUkLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlcm5hbWUgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXVzZXJuYW1lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICAgICAgdGhpcy5hbm9ueW1vdXMkLFxuICAgICAgICAgICAgdGhpcy5pbWFnZUVycm9yJCxcbiAgICAgICAgICAgIHRoaXMuc2hvd0luaXRpYWxzJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Byb2ZpbGVQaWN0dXJlLCBhbm9ueW1vdXMsIGltYWdlRXJyb3JdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcHJvZmlsZVBpY3R1cmUgJiYgIWFub255bW91cyAmJiAhaW1hZ2VFcnJvcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5SW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByb2ZpbGVQaWN0dXJlJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Nob3dJbml0aWFscywgYW5vbnltb3VzLCBpbml0aWFsc0F2YWlsYWJsZSwgZGlzcGxheVByb2ZpbGVQaWN0dXJlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaG93SW5pdGlhbHMgJiYgIWFub255bW91cyAmJiBpbml0aWFsc0F2YWlsYWJsZSAmJiAhZGlzcGxheVByb2ZpbGVQaWN0dXJlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQsXG4gICAgICAgICAgICB0aGlzLmltYWdlRXJyb3IkLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQsXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgcHJvZmlsZVBpY3R1cmUsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxzQXZhaWxhYmxlLFxuICAgICAgICAgICAgICAgICAgICBzaG93SW5pdGlhbHMsXG4gICAgICAgICAgICAgICAgICAgIGFub255bW91cyxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUluaXRpYWxzLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmUsXG4gICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCFwcm9maWxlUGljdHVyZSB8fCBpbWFnZUVycm9yIHx8ICFpbml0aWFsc0F2YWlsYWJsZSB8fCAoaW5pdGlhbHNBdmFpbGFibGUgJiYgIXNob3dJbml0aWFscykpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhYW5vbnltb3VzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGlzcGxheUluaXRpYWxzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGlzcGxheVByb2ZpbGVQaWN0dXJlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheUFub255bW91cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmFub255bW91cyQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbYW5vbnltb3VzLCByb3VuZGVkXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbm9ueW1vdXMgJiYgcm91bmRlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5T25saW5lJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub25saW5lJCwgdGhpcy5yb3VuZGVkJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtvbmxpbmUsIHJvdW5kZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9ubGluZSAmJiByb3VuZGVkO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlOZXR3b3JrJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubmV0d29yayQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbmV0d29yaywgcm91bmRlZF0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFuZXR3b3JrICYmIHJvdW5kZWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kaXNwbGF5SW5pdGlhbHMkLCB0aGlzLnVzZXJuYW1lJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtkaXNwbGF5SW5pdGlhbHMsIHVzZXJuYW1lXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgoZGlzcGxheUluaXRpYWxzICYmICF1c2VybmFtZSkgfHwgIWRpc3BsYXlJbml0aWFscykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAnLS1hcC1hdmF0YXItaW5pdGlhbHMtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgIGAke2luaXRpYWxTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZXMgPSB1c2VybmFtZT8uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlRXJyb3IkLm5leHQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ3J4TGV0PVwie1xuICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmU6IGRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIGRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnOiBkaXNwbGF5U2luZ2xlTmV1dHJhbFN2ZyQsXG4gICAgICAgIGRpc3BsYXlJbml0aWFsczogZGlzcGxheUluaXRpYWxzJCxcbiAgICAgICAgZGlzcGxheUFub255bW91czogZGlzcGxheUFub255bW91cyQsXG4gICAgICAgIGRpc3BsYXlPbmxpbmU6IGRpc3BsYXlPbmxpbmUkLFxuICAgICAgICBkaXNwbGF5TmV0d29yazogZGlzcGxheU5ldHdvcmskLFxuICAgICAgICBpbml0aWFsczogaW5pdGlhbHMkLFxuICAgICAgICBwcm9maWxlUGljdHVyZTogcHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICBzaXplOiBzaXplJCxcbiAgICAgICAgbmV0d29yazogbmV0d29yayRcbiAgICB9IGFzIGF2YXRhclZpZXdNb2RlbFwiPlxuICAgIDxpbWdcbiAgICAgICAgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheVByb2ZpbGVQaWN0dXJlXCJcbiAgICAgICAgW3NyY109XCJhdmF0YXJWaWV3TW9kZWwucHJvZmlsZVBpY3R1cmVcIlxuICAgICAgICBbd2lkdGhdPVwiYXZhdGFyVmlld01vZGVsLnNpemVcIlxuICAgICAgICBbaGVpZ2h0XT1cImF2YXRhclZpZXdNb2RlbC5zaXplXCJcbiAgICAgICAgW2FsdF09XCJhbHRcIlxuICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIiAvPlxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheVNpbmdsZU5ldXRyYWxTdmdcIiBjbGFzcz1cIm5vLXByb2ZpbGUtcGljdHVyZVwiPlxuICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwic2luZ2xlLW5ldXRyYWxcIj48L2FwLXN5bWJvbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheUFub255bW91c1wiIGNsYXNzPVwiYW5vbnltb3VzXCI+XG4gICAgICAgIDxhcC1zeW1ib2wgc3ltYm9sSWQ9XCJzaG93LXRoZWF0ZXItbWFzay1oYXBweVwiPjwvYXAtc3ltYm9sPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheU9ubGluZVwiIGNsYXNzPVwib25saW5lXCI+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImF2YXRhclZpZXdNb2RlbC5kaXNwbGF5TmV0d29ya1wiXG4gICAgICAgIGNsYXNzPVwibmV0d29ya1wiXG4gICAgICAgIFtjbGFzcy5mYWNlYm9va109XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2ZhY2Vib29rJ1wiXG4gICAgICAgIFtjbGFzcy5saW5rZWRpbl09XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2xpbmtlZGluJ1wiXG4gICAgICAgIFtjbGFzcy50d2l0dGVyXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAndHdpdHRlcidcIlxuICAgICAgICBbY2xhc3MueW91dHViZV09XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ3lvdXR1YmUnXCJcbiAgICAgICAgW2NsYXNzLmdvb2dsZU15QnVzaW5lc3NdPVwiXG4gICAgICAgICAgICBhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2dvb2dsZU15QnVzaW5lc3MnIHx8IGF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnZ29vZ2xlJ1xuICAgICAgICBcIlxuICAgICAgICBbY2xhc3MuaW5zdGFncmFtXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnaW5zdGFncmFtJ1wiXG4gICAgICAgIFtjbGFzcy50aWt0b2tdPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICd0aWt0b2snXCI+XG4gICAgICAgIDxhcC1zeW1ib2wgW3N5bWJvbElkXT1cIm5ldHdvcmtTeW1ib2xCeU5ldHdvcmtbYXZhdGFyVmlld01vZGVsLm5ldHdvcmtdXCI+PC9hcC1zeW1ib2w+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlJbml0aWFsc1wiIGNsYXNzPVwiaW5pdGlhbHNcIj5cbiAgICAgICAge3sgYXZhdGFyVmlld01vZGVsLmluaXRpYWxzIH19XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -14,7 +14,6 @@ export class LabelsSelectorComponent {
|
|
|
14
14
|
constructor(changeDetectorRef, symbolRegistry) {
|
|
15
15
|
this.changeDetectorRef = changeDetectorRef;
|
|
16
16
|
this.symbolRegistry = symbolRegistry;
|
|
17
|
-
this.INFINITY = Number.MAX_SAFE_INTEGER;
|
|
18
17
|
this.addLabelEnabled = true;
|
|
19
18
|
this.disabled = false;
|
|
20
19
|
this.initialLabels = [];
|
|
@@ -50,6 +49,9 @@ export class LabelsSelectorComponent {
|
|
|
50
49
|
this.labelsInput$.next('');
|
|
51
50
|
}
|
|
52
51
|
onLabelsChange() {
|
|
52
|
+
if (!this.multipleEnabled && this.labels.length > 1) {
|
|
53
|
+
this.labels = [this.labels[this.labels.length - 1]];
|
|
54
|
+
}
|
|
53
55
|
this.selectLabels.emit(this.labels);
|
|
54
56
|
this.changeDetectorRef.markForCheck();
|
|
55
57
|
}
|
|
@@ -69,10 +71,10 @@ export class LabelsSelectorComponent {
|
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
LabelsSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LabelsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
-
LabelsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [maxSelectedItems]=\"multipleEnabled ? INFINITY : 1\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
74
|
+
LabelsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
73
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LabelsSelectorComponent, decorators: [{
|
|
74
76
|
type: Component,
|
|
75
|
-
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [
|
|
77
|
+
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"] }]
|
|
76
78
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SymbolRegistry }]; }, propDecorators: { addLabelEnabled: [{
|
|
77
79
|
type: Input
|
|
78
80
|
}], disabled: [{
|
|
@@ -96,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
96
98
|
}], searchErrorMessage: [{
|
|
97
99
|
type: Output
|
|
98
100
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9sYWJlbHMtc2VsZWN0b3Ivc3JjL2xhYmVscy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbGFiZWxzLXNlbGVjdG9yL3NyYy9sYWJlbHMtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSx3QkFBd0IsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RyxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWNuRyxNQUFNLE9BQU8sdUJBQXVCO0lBcUJoQyxZQUFvQixpQkFBb0MsRUFDckMsY0FBOEI7UUFEN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFyQnhDLGFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFFbkMsb0JBQWUsR0FBWSxJ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QzlCcEMsbTREQXlDQSxnak1EYmMsd0JBQXdCLGdLQUFFLGNBQWMsNm9DQUFFLGNBQWMsa0pBQUUsT0FBTyxtSEFBRSxJQUFJLDRGQUFFLFdBQVcsMFZBQUUsU0FBUzsyRkFFaEcsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNJLG9CQUFvQixjQUdsQixJQUFJLFdBQ1AsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQztxSUFLakcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TGFiZWxDb21wb25lbnR9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvbGFiZWxzJztcbmltcG9ydCB7QWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBhcEFkZENpcmNsZUJvbGRBbHRlcm5hdGUsIFN5bWJvbFJlZ2lzdHJ5fSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge05nU2VsZWN0TW9kdWxlfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxzU2VsZWN0b3JUcmFuc2xhdGlvbiB7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBjcmVhdGVMYWJlbDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLWxhYmVscy1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhYmVscy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGFiZWxzLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBOZ1NlbGVjdE1vZHVsZSwgTGFiZWxDb21wb25lbnQsIE5nRm9yT2YsIE5nSWYsIEZvcm1zTW9kdWxlLCBBc3luY1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBMYWJlbHNTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSBJTkZJTklUWSA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuXG4gICAgQElucHV0KCkgYWRkTGFiZWxFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGluaXRpYWxMYWJlbHM6IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgdHJhbnNsYXRpb246IExhYmVsc1NlbGVjdG9yVHJhbnNsYXRpb247XG4gICAgQElucHV0KCkgbG9hZGluZ09uU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBtdWx0aXBsZUVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNlYXJjaExhYmVsc0Z1bmN0aW9uOiAoc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICAgIEBPdXRwdXQoKSBjcmVhdGVMYWJlbCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBkZWxldGVMYWJlbCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RMYWJlbHMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuICAgIEBPdXRwdXQoKSBzZWFyY2hFcnJvck1lc3NhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIGxhYmVsczogc3RyaW5nW10gPSBbXTtcbiAgICBsYWJlbHNJbnB1dCQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBsYWJlbHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgICBsYWJlbHNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgICBwdWJsaWMgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFtcbiAgICAgICAgICAgIGFwQWRkQ2lyY2xlQm9sZEFsdGVybmF0ZVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYWJlbHMgPSB0aGlzLmluaXRpYWxMYWJlbHM7XG4gICAgICAgIHRoaXMuc2V0U2VhcmNoRnVuY3Rpb24oKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzPy5pbml0aWFsTGFiZWxzPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxzID0gdGhpcy5pbml0aWFsTGFiZWxzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DcmVhdGVMYWJlbChsYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlTGFiZWwuZW1pdChsYWJlbCk7XG4gICAgfVxuXG4gICAgb25EZWxldGVMYWJlbChldmVudDoge3ZhbHVlOiBzdHJpbmd9KSB7XG4gICAgICAgIHRoaXMuZGVsZXRlTGFiZWwuZW1pdChldmVudC52YWx1ZSk7XG4gICAgfVxuXG4gICAgb25PcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhYmVsc0lucHV0JC5uZXh0KCcnKTtcbiAgICB9XG5cbiAgICBvbkxhYmVsc0NoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RMYWJlbHMuZW1pdCh0aGlzLmxhYmVscyk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgc2V0U2VhcmNoRnVuY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGFiZWxzJCA9IHRoaXMubGFiZWxzSW5wdXQkLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5sb2FkaW5nT25TZWFyY2ggPyA0MDAgOiAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodGVybTogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoTGFiZWxzRnVuY3Rpb24odGVybSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaEVycm9yTWVzc2FnZS5lbWl0KHJlc3BvbnNlLmVycm9yID8gcmVzcG9uc2UuZXJyb3IubWVzc2FnZSA6ICdFcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSB8fCBPYmplY3Qua2V5cyhyZXNwb25zZSkubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjwhLS0gQEpSQSBbbXVsdGlwbGVdPVwiZmFsc2VcIiBicmVhayB0aGUgY29tcG9uZW50IGRpc3BsYXkgYW5kIGJlaGF2aW9yLCB3ZSB1c2UgW21heFNlbGVjdGVkSXRlbXNdPVwiMVwiIGFzIGVmZmljaWVudCB3b3JrYXJvdW5kIC0tPlxuPG5nLXNlbGVjdCBjbGFzcz1cImxhYmVscy1zZWxlY3RcIlxuICAgICAgICAgICBbYWRkVGFnXT1cImFkZExhYmVsRW5hYmxlZFwiXG4gICAgICAgICAgIFtjbGVhcmFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICBbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxuICAgICAgICAgICBbaXRlbXNdPVwibGFiZWxzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgW2xvYWRpbmddPVwibGFiZWxzTG9hZGluZ1wiXG4gICAgICAgICAgIFttYXhTZWxlY3RlZEl0ZW1zXT1cIm11bHRpcGxlRW5hYmxlZCA/IElORklOSVRZIDogMVwiXG4gICAgICAgICAgIFttaW5UZXJtTGVuZ3RoXT1cIjBcIlxuICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbi5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgIFt0eXBlYWhlYWRdPVwibGFiZWxzSW5wdXQkXCJcbiAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsYWJlbHNcIlxuICAgICAgICAgICAoYWRkKT1cIm9uQ3JlYXRlTGFiZWwoJGV2ZW50KVwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwib25MYWJlbHNDaGFuZ2UoKVwiXG4gICAgICAgICAgIChyZW1vdmUpPVwib25EZWxldGVMYWJlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgKG9wZW4pPVwib25PcGVuKClcIlxuICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj5cbiAgICA8bmctdGVtcGxhdGUgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIGNsYXNzPVwibGFiZWxzLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxhcC1sYWJlbCBbY29udGVudF09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0b3JXaWR0aF09XCIyMjFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiIWRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cImNsZWFyKGl0ZW0pXCI+PC9hcC1sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtc2VhcmNoPVwic2VhcmNoVGVybVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoXCI+PGI+e3tpdGVtLnN1YnN0cmluZygwLCBzZWFyY2gubGVuZ3RoKX19PC9iPnt7aXRlbS5zdWJzdHJpbmcoc2VhcmNoLmxlbmd0aCwgaXRlbS5sZW5ndGgpfX08L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFzZWFyY2hcIj57e2l0ZW19fTwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIG5nLXRhZy10bXAgbGV0LXNlYXJjaD1cInNlYXJjaFRlcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1sYWJlbFwiPlxuICAgICAgICAgICAgPGFwLXN5bWJvbCBjbGFzcz1cImFkZC1sYWJlbC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sSWQ9XCJhZGQtY2lyY2xlLWJvbGQtYWx0ZXJuYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgICAgID48L2FwLXN5bWJvbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtbGFiZWwtcHJldmlld1wiPnt7dHJhbnNsYXRpb24uY3JlYXRlTGFiZWx9fSBcInt7c2VhcmNofX1cIjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1zZWxlY3Q+XG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9sYWJlbHMtc2VsZWN0b3Ivc3JjL2xhYmVscy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbGFiZWxzLXNlbGVjdG9yL3NyYy9sYWJlbHMtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSx3QkFBd0IsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RyxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWNuRyxNQUFNLE9BQU8sdUJBQXVCO0lBbUJoQyxZQUFvQixpQkFBb0MsRUFDckMsY0FBOEI7UUFEN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFuQnhDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFD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TUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNMLENBQ0osQ0FDSixDQUFDO0lBQ04sQ0FBQzs7b0hBaEZRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdlQzlCcEMsaTBEQXdDQSxnak1EWmMsd0JBQXdCLGdLQUFFLGNBQWMsNm9DQUFFLGNBQWMsa0pBQUUsT0FBTyxtSEFBRSxJQUFJLDRGQUFFLFdBQVcsMFZBQUUsU0FBUzsyRkFFaEcsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNJLG9CQUFvQixjQUdsQixJQUFJLFdBQ1AsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQztxSUFHakcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TGFiZWxDb21wb25lbnR9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvbGFiZWxzJztcbmltcG9ydCB7QWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBhcEFkZENpcmNsZUJvbGRBbHRlcm5hdGUsIFN5bWJvbFJlZ2lzdHJ5fSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge05nU2VsZWN0TW9kdWxlfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxzU2VsZWN0b3JUcmFuc2xhdGlvbiB7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBjcmVhdGVMYWJlbDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLWxhYmVscy1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhYmVscy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGFiZWxzLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBOZ1NlbGVjdE1vZHVsZSwgTGFiZWxDb21wb25lbnQsIE5nRm9yT2YsIE5nSWYsIEZvcm1zTW9kdWxlLCBBc3luY1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBMYWJlbHNTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBhZGRMYWJlbEVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaW5pdGlhbExhYmVsczogc3RyaW5nW10gPSBbXTtcbiAgICBASW5wdXQoKSB0cmFuc2xhdGlvbjogTGFiZWxzU2VsZWN0b3JUcmFuc2xhdGlvbjtcbiAgICBASW5wdXQoKSBsb2FkaW5nT25TZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIG11bHRpcGxlRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgc2VhcmNoTGFiZWxzRnVuY3Rpb246IChzdHJpbmcpID0+IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gICAgQE91dHB1dCgpIGNyZWF0ZUxhYmVsID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGRlbGV0ZUxhYmVsID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdExhYmVscyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG4gICAgQE91dHB1dCgpIHNlYXJjaEVycm9yTWVzc2FnZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxhYmVsc0lucHV0JDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICAgIGxhYmVscyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICAgIGxhYmVsc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBBZGRDaXJjbGVCb2xkQWx0ZXJuYXRlXG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxhYmVscyA9IHRoaXMuaW5pdGlhbExhYmVscztcbiAgICAgICAgdGhpcy5zZXRTZWFyY2hGdW5jdGlvbigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXM/LmluaXRpYWxMYWJlbHM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbHMgPSB0aGlzLmluaXRpYWxMYWJlbHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNyZWF0ZUxhYmVsKGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVMYWJlbC5lbWl0KGxhYmVsKTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZUxhYmVsKGV2ZW50OiB7dmFsdWU6IHN0cmluZ30pIHtcbiAgICAgICAgdGhpcy5kZWxldGVMYWJlbC5lbWl0KGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbk9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGFiZWxzSW5wdXQkLm5leHQoJycpO1xuICAgIH1cblxuICAgIG9uTGFiZWxzQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVFbmFibGVkICYmIHRoaXMubGFiZWxzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxzID0gW3RoaXMubGFiZWxzW3RoaXMubGFiZWxzLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdExhYmVscy5lbWl0KHRoaXMubGFiZWxzKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXRTZWFyY2hGdW5jdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYWJlbHMkID0gdGhpcy5sYWJlbHNJbnB1dCQucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmxvYWRpbmdPblNlYXJjaCA/IDQwMCA6IDApLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbHNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hMYWJlbHNGdW5jdGlvbih0ZXJtKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoRXJyb3JNZXNzYWdlLmVtaXQocmVzcG9uc2UuZXJyb3IgPyByZXNwb25zZS5lcnJvci5tZXNzYWdlIDogJ0Vycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYWJlbHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlIHx8IE9iamVjdC5rZXlzKHJlc3BvbnNlKS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPCEtLSBASlJBIFttdWx0aXBsZV09XCJmYWxzZVwiIGJyZWFrIHRoZSBjb21wb25lbnQgZGlzcGxheSBhbmQgYmVoYXZpb3IsIHdlIHVzZSBbbWF4U2VsZWN0ZWRJdGVtc109XCIxXCIgYXMgZWZmaWNpZW50IHdvcmthcm91bmQgLS0+XG48bmctc2VsZWN0IGNsYXNzPVwibGFiZWxzLXNlbGVjdFwiXG4gICAgICAgICAgIFthZGRUYWddPVwiYWRkTGFiZWxFbmFibGVkXCJcbiAgICAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgIFtoaWRlU2VsZWN0ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgIFtpdGVtc109XCJsYWJlbHMkIHwgYXN5bmNcIlxuICAgICAgICAgICBbbG9hZGluZ109XCJsYWJlbHNMb2FkaW5nXCJcbiAgICAgICAgICAgW21pblRlcm1MZW5ndGhdPVwiMFwiXG4gICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW3R5cGVhaGVhZF09XCJsYWJlbHNJbnB1dCRcIlxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxhYmVsc1wiXG4gICAgICAgICAgIChhZGQpPVwib25DcmVhdGVMYWJlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsc0NoYW5nZSgpXCJcbiAgICAgICAgICAgKHJlbW92ZSk9XCJvbkRlbGV0ZUxhYmVsKCRldmVudClcIlxuICAgICAgICAgICAob3Blbik9XCJvbk9wZW4oKVwiXG4gICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBuZy1tdWx0aS1sYWJlbC10bXAgbGV0LWl0ZW1zPVwiaXRlbXNcIiBsZXQtY2xlYXI9XCJjbGVhclwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgY2xhc3M9XCJsYWJlbHMtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGFwLWxhYmVsIFtjb250ZW50XT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RvcldpZHRoXT1cIjIyMVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCIhZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiY2xlYXIoaXRlbSlcIj48L2FwLWxhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1zZWFyY2g9XCJzZWFyY2hUZXJtXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hcIj48Yj57e2l0ZW0uc3Vic3RyaW5nKDAsIHNlYXJjaC5sZW5ndGgpfX08L2I+e3tpdGVtLnN1YnN0cmluZyhzZWFyY2gubGVuZ3RoLCBpdGVtLmxlbmd0aCl9fTwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNlYXJjaFwiPnt7aXRlbX19PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgbmctdGFnLXRtcCBsZXQtc2VhcmNoPVwic2VhcmNoVGVybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkLWxhYmVsXCI+XG4gICAgICAgICAgICA8YXAtc3ltYm9sIGNsYXNzPVwiYWRkLWxhYmVsLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImFkZC1jaXJjbGUtYm9sZC1hbHRlcm5hdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICAgICAgPjwvYXAtc3ltYm9sPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1sYWJlbC1wcmV2aWV3XCI+e3t0cmFuc2xhdGlvbi5jcmVhdGVMYWJlbH19IFwie3tzZWFyY2h9fVwiPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXNlbGVjdD5cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i1 from '@agorapulse/ui-symbol';
|
|
2
2
|
import { apSingleNeutral, apShowTheaterMaskHappy, apFacebookOfficial, apTwitterOfficial, apLinkedinOfficial, apYoutubeOfficial, apTiktokOfficial, apGoogleMyBusinessOfficial, apPinterestOfficial, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
3
|
-
import { NgIf,
|
|
3
|
+
import { NgIf, NgForOf, NgOptimizedImage } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding } from '@angular/core';
|
|
6
6
|
import { BehaviorSubject, Observable, of, map, combineLatest } from 'rxjs';
|
|
@@ -181,10 +181,10 @@ class AvatarComponent {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
-
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [
|
|
184
|
+
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: LetModule }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
185
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
186
186
|
type: Component,
|
|
187
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [
|
|
187
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"] }]
|
|
188
188
|
}], ctorParameters: function () { return [{ type: i1.SymbolRegistry }, { type: i0.ElementRef }]; }, propDecorators: { alternativeText: [{
|
|
189
189
|
type: Input
|
|
190
190
|
}], anonymous: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apTwitterOfficial,\n apYoutubeOfficial,\n apPinterestOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport {NgForOf, NgIf, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {LetModule} from '@ngrx/component';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\nexport type AvatarNetwork =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'tiktok'\n | 'youtube'\n | 'pinterest'\n | 'googleMyBusiness'\n | 'google';\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n twitter: 'twitter-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n googleMyBusiness: 'google-my-business-official',\n google: 'google-my-business-official',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string>('');\n network$: BehaviorSubject<AvatarNetwork | undefined> = new BehaviorSubject<AvatarNetwork>(undefined);\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork | undefined) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-network-size',\n `${networkSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt: string;\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar: boolean = true;\n\n @Input()\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n @Input() set size(size: AvatarSize) {\n this.size$.next(size);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-online-icon-size',\n `${onlineIconSizeByAvatarSize[size]}px`\n );\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apTwitterOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-symbol-size',\n `${symbolSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([\n this.profilePicture$,\n this.anonymous$,\n this.imageError$,\n this.showInitials$,\n ]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(\n ([\n profilePicture,\n imageError,\n initialsAvailable,\n showInitials,\n anonymous,\n displayInitials,\n displayProfilePicture,\n ]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n }\n )\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if ((displayInitials && !username) || !displayInitials) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username?.split(' ');\n return `${names[0].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [ngSrc]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apTwitterOfficial,\n apYoutubeOfficial,\n apPinterestOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport {NgForOf, NgIf, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {LetModule} from '@ngrx/component';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\nexport type AvatarNetwork =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'tiktok'\n | 'youtube'\n | 'pinterest'\n | 'googleMyBusiness'\n | 'google';\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n twitter: 'twitter-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n googleMyBusiness: 'google-my-business-official',\n google: 'google-my-business-official',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string>('');\n network$: BehaviorSubject<AvatarNetwork | undefined> = new BehaviorSubject<AvatarNetwork>(undefined);\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork | undefined) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-network-size',\n `${networkSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt: string;\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar: boolean = true;\n\n @Input()\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n @Input() set size(size: AvatarSize) {\n this.size$.next(size);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-online-icon-size',\n `${onlineIconSizeByAvatarSize[size]}px`\n );\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apTwitterOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-symbol-size',\n `${symbolSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([\n this.profilePicture$,\n this.anonymous$,\n this.imageError$,\n this.showInitials$,\n ]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(\n ([\n profilePicture,\n imageError,\n initialsAvailable,\n showInitials,\n anonymous,\n displayInitials,\n displayProfilePicture,\n ]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n }\n )\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if ((displayInitials && !username) || !displayInitials) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username?.split(' ');\n return `${names[0].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ class LabelsSelectorComponent {
|
|
|
15
15
|
constructor(changeDetectorRef, symbolRegistry) {
|
|
16
16
|
this.changeDetectorRef = changeDetectorRef;
|
|
17
17
|
this.symbolRegistry = symbolRegistry;
|
|
18
|
-
this.INFINITY = Number.MAX_SAFE_INTEGER;
|
|
19
18
|
this.addLabelEnabled = true;
|
|
20
19
|
this.disabled = false;
|
|
21
20
|
this.initialLabels = [];
|
|
@@ -52,6 +51,9 @@ class LabelsSelectorComponent {
|
|
|
52
51
|
this.labelsInput$.next('');
|
|
53
52
|
}
|
|
54
53
|
onLabelsChange() {
|
|
54
|
+
if (!this.multipleEnabled && this.labels.length > 1) {
|
|
55
|
+
this.labels = [this.labels[this.labels.length - 1]];
|
|
56
|
+
}
|
|
55
57
|
this.selectLabels.emit(this.labels);
|
|
56
58
|
this.changeDetectorRef.markForCheck();
|
|
57
59
|
}
|
|
@@ -71,10 +73,10 @@ class LabelsSelectorComponent {
|
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
LabelsSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LabelsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
LabelsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [maxSelectedItems]=\"multipleEnabled ? INFINITY : 1\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
76
|
+
LabelsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
75
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LabelsSelectorComponent, decorators: [{
|
|
76
78
|
type: Component,
|
|
77
|
-
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [
|
|
79
|
+
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"] }]
|
|
78
80
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SymbolRegistry }]; }, propDecorators: { addLabelEnabled: [{
|
|
79
81
|
type: Input
|
|
80
82
|
}], disabled: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-labels-selector.mjs","sources":["../../../libs/ui-components/labels-selector/src/labels-selector.component.ts","../../../libs/ui-components/labels-selector/src/labels-selector.component.html","../../../libs/ui-components/labels-selector/src/agorapulse-ui-components-labels-selector.ts"],"sourcesContent":["import {LabelComponent} from '@agorapulse/ui-components/labels';\nimport {AgorapulseUiSymbolModule, apAddCircleBoldAlternate, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {Observable, Subject} from 'rxjs';\nimport {catchError, debounceTime, distinctUntilChanged, map, switchMap, tap} from 'rxjs/operators';\n\nexport interface LabelsSelectorTranslation {\n placeholder: string;\n createLabel: string;\n}\n\n@Component({\n selector: 'ap-labels-selector',\n templateUrl: './labels-selector.component.html',\n styleUrls: ['./labels-selector.component.scss'],\n standalone: true,\n imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe],\n})\nexport class LabelsSelectorComponent implements OnInit, OnChanges {\n readonly INFINITY = Number.MAX_SAFE_INTEGER;\n\n @Input() addLabelEnabled: boolean = true;\n @Input() disabled: boolean = false;\n @Input() initialLabels: string[] = [];\n @Input() translation: LabelsSelectorTranslation;\n @Input() loadingOnSearch: boolean = true;\n @Input() multipleEnabled: boolean = true;\n @Input() searchLabelsFunction: (string) => Observable<string[]>;\n\n @Output() createLabel = new EventEmitter<string>();\n @Output() deleteLabel = new EventEmitter<string>();\n @Output() selectLabels = new EventEmitter<string[]>();\n @Output() searchErrorMessage = new EventEmitter<string>();\n\n labels: string[] = [];\n labelsInput$: Subject<string> = new Subject<string>();\n labels$: Observable<string[]>;\n labelsLoading = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apAddCircleBoldAlternate\n ]);\n }\n\n ngOnInit(): void {\n this.labels = this.initialLabels;\n this.setSearchFunction();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.initialLabels?.currentValue) {\n this.labels = this.initialLabels;\n }\n }\n\n onCreateLabel(label: string): void {\n this.createLabel.emit(label);\n }\n\n onDeleteLabel(event: {value: string}) {\n this.deleteLabel.emit(event.value);\n }\n\n onOpen(): void {\n this.labelsInput$.next('');\n }\n\n onLabelsChange(): void {\n this.selectLabels.emit(this.labels);\n this.changeDetectorRef.markForCheck();\n }\n\n setSearchFunction(): void {\n this.labels$ = this.labelsInput$.pipe(\n debounceTime(this.loadingOnSearch ? 400 : 0),\n distinctUntilChanged(),\n tap(() => {\n this.labelsLoading = true;\n }),\n switchMap((term: string) =>\n this.searchLabelsFunction(term).pipe(\n catchError(response => {\n this.searchErrorMessage.emit(response.error ? response.error.message : 'Error');\n return [];\n }),\n map(response => {\n this.labelsLoading = false;\n if (!response || Object.keys(response).length == 0) {\n return [];\n }\n return response;\n })\n )\n )\n );\n }\n}\n","<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [maxSelectedItems]=\"multipleEnabled ? INFINITY : 1\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-labels-selector.mjs","sources":["../../../libs/ui-components/labels-selector/src/labels-selector.component.ts","../../../libs/ui-components/labels-selector/src/labels-selector.component.html","../../../libs/ui-components/labels-selector/src/agorapulse-ui-components-labels-selector.ts"],"sourcesContent":["import {LabelComponent} from '@agorapulse/ui-components/labels';\nimport {AgorapulseUiSymbolModule, apAddCircleBoldAlternate, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {Observable, Subject} from 'rxjs';\nimport {catchError, debounceTime, distinctUntilChanged, map, switchMap, tap} from 'rxjs/operators';\n\nexport interface LabelsSelectorTranslation {\n placeholder: string;\n createLabel: string;\n}\n\n@Component({\n selector: 'ap-labels-selector',\n templateUrl: './labels-selector.component.html',\n styleUrls: ['./labels-selector.component.scss'],\n standalone: true,\n imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe],\n})\nexport class LabelsSelectorComponent implements OnInit, OnChanges {\n @Input() addLabelEnabled: boolean = true;\n @Input() disabled: boolean = false;\n @Input() initialLabels: string[] = [];\n @Input() translation: LabelsSelectorTranslation;\n @Input() loadingOnSearch: boolean = true;\n @Input() multipleEnabled: boolean = true;\n @Input() searchLabelsFunction: (string) => Observable<string[]>;\n\n @Output() createLabel = new EventEmitter<string>();\n @Output() deleteLabel = new EventEmitter<string>();\n @Output() selectLabels = new EventEmitter<string[]>();\n @Output() searchErrorMessage = new EventEmitter<string>();\n\n labels: string[] = [];\n labelsInput$: Subject<string> = new Subject<string>();\n labels$: Observable<string[]>;\n labelsLoading = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apAddCircleBoldAlternate\n ]);\n }\n\n ngOnInit(): void {\n this.labels = this.initialLabels;\n this.setSearchFunction();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.initialLabels?.currentValue) {\n this.labels = this.initialLabels;\n }\n }\n\n onCreateLabel(label: string): void {\n this.createLabel.emit(label);\n }\n\n onDeleteLabel(event: {value: string}) {\n this.deleteLabel.emit(event.value);\n }\n\n onOpen(): void {\n this.labelsInput$.next('');\n }\n\n onLabelsChange(): void {\n if (!this.multipleEnabled && this.labels.length > 1) {\n this.labels = [this.labels[this.labels.length - 1]];\n }\n this.selectLabels.emit(this.labels);\n this.changeDetectorRef.markForCheck();\n }\n\n setSearchFunction(): void {\n this.labels$ = this.labelsInput$.pipe(\n debounceTime(this.loadingOnSearch ? 400 : 0),\n distinctUntilChanged(),\n tap(() => {\n this.labelsLoading = true;\n }),\n switchMap((term: string) =>\n this.searchLabelsFunction(term).pipe(\n catchError(response => {\n this.searchErrorMessage.emit(response.error ? response.error.message : 'Error');\n return [];\n }),\n map(response => {\n this.labelsLoading = false;\n if (!response || Object.keys(response).length == 0) {\n return [];\n }\n return response;\n })\n )\n )\n );\n }\n}\n","<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i1 from '@agorapulse/ui-symbol';
|
|
2
2
|
import { apSingleNeutral, apShowTheaterMaskHappy, apFacebookOfficial, apTwitterOfficial, apLinkedinOfficial, apYoutubeOfficial, apTiktokOfficial, apGoogleMyBusinessOfficial, apPinterestOfficial, SymbolComponent } from '@agorapulse/ui-symbol';
|
|
3
|
-
import { NgIf,
|
|
3
|
+
import { NgIf, NgForOf, NgOptimizedImage } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding } from '@angular/core';
|
|
6
6
|
import { BehaviorSubject, Observable, of, map, combineLatest } from 'rxjs';
|
|
@@ -181,10 +181,10 @@ class AvatarComponent {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
-
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [
|
|
184
|
+
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: LetModule }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
185
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
186
186
|
type: Component,
|
|
187
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [
|
|
187
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"] }]
|
|
188
188
|
}], ctorParameters: function () { return [{ type: i1.SymbolRegistry }, { type: i0.ElementRef }]; }, propDecorators: { alternativeText: [{
|
|
189
189
|
type: Input
|
|
190
190
|
}], anonymous: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apTwitterOfficial,\n apYoutubeOfficial,\n apPinterestOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport {NgForOf, NgIf, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {LetModule} from '@ngrx/component';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\nexport type AvatarNetwork =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'tiktok'\n | 'youtube'\n | 'pinterest'\n | 'googleMyBusiness'\n | 'google';\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n twitter: 'twitter-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n googleMyBusiness: 'google-my-business-official',\n google: 'google-my-business-official',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string>('');\n network$: BehaviorSubject<AvatarNetwork | undefined> = new BehaviorSubject<AvatarNetwork>(undefined);\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork | undefined) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-network-size',\n `${networkSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt: string;\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar: boolean = true;\n\n @Input()\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n @Input() set size(size: AvatarSize) {\n this.size$.next(size);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-online-icon-size',\n `${onlineIconSizeByAvatarSize[size]}px`\n );\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apTwitterOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-symbol-size',\n `${symbolSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([\n this.profilePicture$,\n this.anonymous$,\n this.imageError$,\n this.showInitials$,\n ]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(\n ([\n profilePicture,\n imageError,\n initialsAvailable,\n showInitials,\n anonymous,\n displayInitials,\n displayProfilePicture,\n ]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n }\n )\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if ((displayInitials && !username) || !displayInitials) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username?.split(' ');\n return `${names[0].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [ngSrc]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apTwitterOfficial,\n apYoutubeOfficial,\n apPinterestOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport {NgForOf, NgIf, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {LetModule} from '@ngrx/component';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\nexport type AvatarNetwork =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'tiktok'\n | 'youtube'\n | 'pinterest'\n | 'googleMyBusiness'\n | 'google';\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n twitter: 'twitter-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n googleMyBusiness: 'google-my-business-official',\n google: 'google-my-business-official',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string>('');\n network$: BehaviorSubject<AvatarNetwork | undefined> = new BehaviorSubject<AvatarNetwork>(undefined);\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork | undefined) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-network-size',\n `${networkSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt: string;\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar: boolean = true;\n\n @Input()\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n @Input() set size(size: AvatarSize) {\n this.size$.next(size);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-online-icon-size',\n `${onlineIconSizeByAvatarSize[size]}px`\n );\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apTwitterOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-symbol-size',\n `${symbolSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([\n this.profilePicture$,\n this.anonymous$,\n this.imageError$,\n this.showInitials$,\n ]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(\n ([\n profilePicture,\n imageError,\n initialsAvailable,\n showInitials,\n anonymous,\n displayInitials,\n displayProfilePicture,\n ]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n }\n )\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if ((displayInitials && !username) || !displayInitials) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username?.split(' ');\n return `${names[0].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ class LabelsSelectorComponent {
|
|
|
15
15
|
constructor(changeDetectorRef, symbolRegistry) {
|
|
16
16
|
this.changeDetectorRef = changeDetectorRef;
|
|
17
17
|
this.symbolRegistry = symbolRegistry;
|
|
18
|
-
this.INFINITY = Number.MAX_SAFE_INTEGER;
|
|
19
18
|
this.addLabelEnabled = true;
|
|
20
19
|
this.disabled = false;
|
|
21
20
|
this.initialLabels = [];
|
|
@@ -51,6 +50,9 @@ class LabelsSelectorComponent {
|
|
|
51
50
|
this.labelsInput$.next('');
|
|
52
51
|
}
|
|
53
52
|
onLabelsChange() {
|
|
53
|
+
if (!this.multipleEnabled && this.labels.length > 1) {
|
|
54
|
+
this.labels = [this.labels[this.labels.length - 1]];
|
|
55
|
+
}
|
|
54
56
|
this.selectLabels.emit(this.labels);
|
|
55
57
|
this.changeDetectorRef.markForCheck();
|
|
56
58
|
}
|
|
@@ -70,10 +72,10 @@ class LabelsSelectorComponent {
|
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
LabelsSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LabelsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
LabelsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [maxSelectedItems]=\"multipleEnabled ? INFINITY : 1\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
75
|
+
LabelsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: LabelsSelectorComponent, isStandalone: true, selector: "ap-labels-selector", inputs: { addLabelEnabled: "addLabelEnabled", disabled: "disabled", initialLabels: "initialLabels", translation: "translation", loadingOnSearch: "loadingOnSearch", multipleEnabled: "multipleEnabled", searchLabelsFunction: "searchLabelsFunction" }, outputs: { createLabel: "createLabel", deleteLabel: "deleteLabel", selectLabels: "selectLabels", searchErrorMessage: "searchErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i2.NgTagTemplateDirective, selector: "[ng-tag-tmp]" }, { kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["color", "content", "onlyText", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
74
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LabelsSelectorComponent, decorators: [{
|
|
75
77
|
type: Component,
|
|
76
|
-
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [
|
|
78
|
+
args: [{ selector: 'ap-labels-selector', standalone: true, imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe], template: "<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{max-width:260px;display:flex}.labels-select{width:260px}.labels-select .labels-wrapper{margin-bottom:5px;max-width:221px}::ng-deep .labels-select.ng-select .ng-select-container .ng-value-container{overflow-y:auto;overflow-x:hidden;max-height:171px;padding-left:6px!important;gap:4px}::ng-deep .ng-option{color:#344563!important}::ng-deep .ng-option.ng-option-marked{color:#178dfe!important}.add-label{display:flex;align-items:center;color:#178dfe}.add-label .add-label-icon{padding-right:8px}.add-label-preview{text-overflow:ellipsis;display:block;white-space:nowrap;overflow:hidden}\n"] }]
|
|
77
79
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SymbolRegistry }]; }, propDecorators: { addLabelEnabled: [{
|
|
78
80
|
type: Input
|
|
79
81
|
}], disabled: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-labels-selector.mjs","sources":["../../../libs/ui-components/labels-selector/src/labels-selector.component.ts","../../../libs/ui-components/labels-selector/src/labels-selector.component.html","../../../libs/ui-components/labels-selector/src/agorapulse-ui-components-labels-selector.ts"],"sourcesContent":["import {LabelComponent} from '@agorapulse/ui-components/labels';\nimport {AgorapulseUiSymbolModule, apAddCircleBoldAlternate, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {Observable, Subject} from 'rxjs';\nimport {catchError, debounceTime, distinctUntilChanged, map, switchMap, tap} from 'rxjs/operators';\n\nexport interface LabelsSelectorTranslation {\n placeholder: string;\n createLabel: string;\n}\n\n@Component({\n selector: 'ap-labels-selector',\n templateUrl: './labels-selector.component.html',\n styleUrls: ['./labels-selector.component.scss'],\n standalone: true,\n imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe],\n})\nexport class LabelsSelectorComponent implements OnInit, OnChanges {\n readonly INFINITY = Number.MAX_SAFE_INTEGER;\n\n @Input() addLabelEnabled: boolean = true;\n @Input() disabled: boolean = false;\n @Input() initialLabels: string[] = [];\n @Input() translation: LabelsSelectorTranslation;\n @Input() loadingOnSearch: boolean = true;\n @Input() multipleEnabled: boolean = true;\n @Input() searchLabelsFunction: (string) => Observable<string[]>;\n\n @Output() createLabel = new EventEmitter<string>();\n @Output() deleteLabel = new EventEmitter<string>();\n @Output() selectLabels = new EventEmitter<string[]>();\n @Output() searchErrorMessage = new EventEmitter<string>();\n\n labels: string[] = [];\n labelsInput$: Subject<string> = new Subject<string>();\n labels$: Observable<string[]>;\n labelsLoading = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apAddCircleBoldAlternate\n ]);\n }\n\n ngOnInit(): void {\n this.labels = this.initialLabels;\n this.setSearchFunction();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.initialLabels?.currentValue) {\n this.labels = this.initialLabels;\n }\n }\n\n onCreateLabel(label: string): void {\n this.createLabel.emit(label);\n }\n\n onDeleteLabel(event: {value: string}) {\n this.deleteLabel.emit(event.value);\n }\n\n onOpen(): void {\n this.labelsInput$.next('');\n }\n\n onLabelsChange(): void {\n this.selectLabels.emit(this.labels);\n this.changeDetectorRef.markForCheck();\n }\n\n setSearchFunction(): void {\n this.labels$ = this.labelsInput$.pipe(\n debounceTime(this.loadingOnSearch ? 400 : 0),\n distinctUntilChanged(),\n tap(() => {\n this.labelsLoading = true;\n }),\n switchMap((term: string) =>\n this.searchLabelsFunction(term).pipe(\n catchError(response => {\n this.searchErrorMessage.emit(response.error ? response.error.message : 'Error');\n return [];\n }),\n map(response => {\n this.labelsLoading = false;\n if (!response || Object.keys(response).length == 0) {\n return [];\n }\n return response;\n })\n )\n )\n );\n }\n}\n","<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [maxSelectedItems]=\"multipleEnabled ? INFINITY : 1\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;MA8Ba,uBAAuB,CAAA;IAqBhC,WAAoB,CAAA,iBAAoC,EACrC,cAA8B,EAAA;QAD7B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AArBxC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEnC,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAChC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAE7B,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAChC,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;AAG/B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAY,CAAC;AAC5C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;QAE1D,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,YAAY,GAAoB,IAAI,OAAO,EAAU,CAAC;QAEtD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAIlB,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;YAChC,wBAAwB;AAC3B,SAAA,CAAC,CAAC;KACN;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE;AACtC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACpC,SAAA;KACJ;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,aAAa,CAAC,KAAsB,EAAA;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtC;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC9B;IAED,cAAc,GAAA;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,iBAAiB,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACjC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,CAAC,CAAC,EAC5C,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAK;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B,CAAC,EACF,SAAS,CAAC,CAAC,IAAY,KACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAChC,UAAU,CAAC,QAAQ,IAAG;YAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;AAChF,YAAA,OAAO,EAAE,CAAC;AACd,SAAC,CAAC,EACF,GAAG,CAAC,QAAQ,IAAG;AACX,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AAChD,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AACD,YAAA,OAAO,QAAQ,CAAC;AACpB,SAAC,CAAC,CACL,CACJ,CACJ,CAAC;KACL;;oHA/EQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EC9BpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,m4DAyCA,EDbc,MAAA,EAAA,CAAA,y/LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,wBAAwB,gKAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,0VAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEhG,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,IAAI,EAAA,OAAA,EACP,CAAC,wBAAwB,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,m4DAAA,EAAA,MAAA,EAAA,CAAA,y/LAAA,CAAA,EAAA,CAAA;qIAKjG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;AE5CX;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-labels-selector.mjs","sources":["../../../libs/ui-components/labels-selector/src/labels-selector.component.ts","../../../libs/ui-components/labels-selector/src/labels-selector.component.html","../../../libs/ui-components/labels-selector/src/agorapulse-ui-components-labels-selector.ts"],"sourcesContent":["import {LabelComponent} from '@agorapulse/ui-components/labels';\nimport {AgorapulseUiSymbolModule, apAddCircleBoldAlternate, SymbolRegistry} from '@agorapulse/ui-symbol';\nimport {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {Observable, Subject} from 'rxjs';\nimport {catchError, debounceTime, distinctUntilChanged, map, switchMap, tap} from 'rxjs/operators';\n\nexport interface LabelsSelectorTranslation {\n placeholder: string;\n createLabel: string;\n}\n\n@Component({\n selector: 'ap-labels-selector',\n templateUrl: './labels-selector.component.html',\n styleUrls: ['./labels-selector.component.scss'],\n standalone: true,\n imports: [AgorapulseUiSymbolModule, NgSelectModule, LabelComponent, NgForOf, NgIf, FormsModule, AsyncPipe],\n})\nexport class LabelsSelectorComponent implements OnInit, OnChanges {\n @Input() addLabelEnabled: boolean = true;\n @Input() disabled: boolean = false;\n @Input() initialLabels: string[] = [];\n @Input() translation: LabelsSelectorTranslation;\n @Input() loadingOnSearch: boolean = true;\n @Input() multipleEnabled: boolean = true;\n @Input() searchLabelsFunction: (string) => Observable<string[]>;\n\n @Output() createLabel = new EventEmitter<string>();\n @Output() deleteLabel = new EventEmitter<string>();\n @Output() selectLabels = new EventEmitter<string[]>();\n @Output() searchErrorMessage = new EventEmitter<string>();\n\n labels: string[] = [];\n labelsInput$: Subject<string> = new Subject<string>();\n labels$: Observable<string[]>;\n labelsLoading = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apAddCircleBoldAlternate\n ]);\n }\n\n ngOnInit(): void {\n this.labels = this.initialLabels;\n this.setSearchFunction();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.initialLabels?.currentValue) {\n this.labels = this.initialLabels;\n }\n }\n\n onCreateLabel(label: string): void {\n this.createLabel.emit(label);\n }\n\n onDeleteLabel(event: {value: string}) {\n this.deleteLabel.emit(event.value);\n }\n\n onOpen(): void {\n this.labelsInput$.next('');\n }\n\n onLabelsChange(): void {\n if (!this.multipleEnabled && this.labels.length > 1) {\n this.labels = [this.labels[this.labels.length - 1]];\n }\n this.selectLabels.emit(this.labels);\n this.changeDetectorRef.markForCheck();\n }\n\n setSearchFunction(): void {\n this.labels$ = this.labelsInput$.pipe(\n debounceTime(this.loadingOnSearch ? 400 : 0),\n distinctUntilChanged(),\n tap(() => {\n this.labelsLoading = true;\n }),\n switchMap((term: string) =>\n this.searchLabelsFunction(term).pipe(\n catchError(response => {\n this.searchErrorMessage.emit(response.error ? response.error.message : 'Error');\n return [];\n }),\n map(response => {\n this.labelsLoading = false;\n if (!response || Object.keys(response).length == 0) {\n return [];\n }\n return response;\n })\n )\n )\n );\n }\n}\n","<!-- @JRA [multiple]=\"false\" break the component display and behavior, we use [maxSelectedItems]=\"1\" as efficient workaround -->\n<ng-select class=\"labels-select\"\n [addTag]=\"addLabelEnabled\"\n [clearable]=\"false\"\n [disabled]=\"disabled\"\n [hideSelected]=\"true\"\n [items]=\"labels$ | async\"\n [loading]=\"labelsLoading\"\n [minTermLength]=\"0\"\n [multiple]=\"true\"\n [placeholder]=\"translation.placeholder\"\n [typeahead]=\"labelsInput$\"\n [(ngModel)]=\"labels\"\n (add)=\"onCreateLabel($event)\"\n (change)=\"onLabelsChange()\"\n (remove)=\"onDeleteLabel($event)\"\n (open)=\"onOpen()\"\n appendTo=\"body\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of items\" class=\"labels-wrapper\">\n <ap-label [content]=\"item\"\n [selectorWidth]=\"221\"\n [removable]=\"!disabled\"\n (remove)=\"clear(item)\"></ap-label>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-search=\"searchTerm\">\n <div *ngIf=\"search\"><b>{{item.substring(0, search.length)}}</b>{{item.substring(search.length, item.length)}}</div>\n <div *ngIf=\"!search\">{{item}}</div>\n </ng-template>\n <ng-template ng-tag-tmp let-search=\"searchTerm\">\n <div class=\"add-label\">\n <ap-symbol class=\"add-label-icon\"\n symbolId=\"add-circle-bold-alternate\"\n size=\"micro\"\n ></ap-symbol>\n <div class=\"add-label-preview\">{{translation.createLabel}} \"{{search}}\"</div>\n </div>\n </ng-template>\n</ng-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,6 @@ export interface LabelsSelectorTranslation {
|
|
|
9
9
|
export declare class LabelsSelectorComponent implements OnInit, OnChanges {
|
|
10
10
|
private changeDetectorRef;
|
|
11
11
|
symbolRegistry: SymbolRegistry;
|
|
12
|
-
readonly INFINITY: number;
|
|
13
12
|
addLabelEnabled: boolean;
|
|
14
13
|
disabled: boolean;
|
|
15
14
|
initialLabels: string[];
|
package/package.json
CHANGED
|
Binary file
|