@clr/angular
Version:
Angular components for Clarity
80 lines (78 loc) • 8.12 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Component, ContentChild } from '@angular/core';
import { ClrPopoverHostDirective } from '../../utils/popover/popover-host.directive';
import { SignpostFocusManager } from './providers/signpost-focus-manager.service';
import { SignpostIdService } from './providers/signpost-id.service';
import { ClrSignpostTrigger } from './signpost-trigger';
import * as i0 from "@angular/core";
import * as i1 from "../../utils/i18n/common-strings.service";
import * as i2 from "../../utils/popover/popover-host.directive";
import * as i3 from "@angular/common";
import * as i4 from "../../icon/icon";
import * as i5 from "./signpost-trigger";
/*********
*
* @class ClrSignpost
*
* @description
* Class used to configure and control the state of a ClrSignpost and its associated ClrSignpostContent.
* It supports the clrPosition with a 'right-middle' default.
*
*/
export class ClrSignpost {
constructor(commonStrings) {
this.commonStrings = commonStrings;
/**********
* @property useCustomTrigger
*
* @description
* Flag used to determine if we need to use the default trigger or a user supplied trigger element.
*
*/
this.useCustomTrigger = false;
}
/**********
* @property signPostTrigger
*
* @description
* Uses ContentChild to check for a user supplied element with the ClrSignpostTrigger on it.
*
*/
set customTrigger(trigger) {
this.useCustomTrigger = !!trigger;
}
}
ClrSignpost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrSignpost, deps: [{ token: i1.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrSignpost, selector: "clr-signpost", host: { properties: { "class.signpost": "true" } }, providers: [SignpostFocusManager, SignpostIdService], queries: [{ propertyName: "customTrigger", first: true, predicate: ClrSignpostTrigger, descendants: true }], hostDirectives: [{ directive: i2.ClrPopoverHostDirective }], ngImport: i0, template: `
<ng-container *ngIf="!useCustomTrigger">
<button type="button" class="signpost-action btn btn-small btn-icon btn-link" clrSignpostTrigger>
<cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
</button>
</ng-container>
<ng-content></ng-content>
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i5.ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrSignpost, decorators: [{
type: Component,
args: [{
selector: 'clr-signpost',
template: `
<ng-container *ngIf="!useCustomTrigger">
<button type="button" class="signpost-action btn btn-small btn-icon btn-link" clrSignpostTrigger>
<cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
</button>
</ng-container>
<ng-content></ng-content>
`,
host: { '[class.signpost]': 'true' },
providers: [SignpostFocusManager, SignpostIdService],
hostDirectives: [ClrPopoverHostDirective],
}]
}], ctorParameters: function () { return [{ type: i1.ClrCommonStringsService }]; }, propDecorators: { customTrigger: [{
type: ContentChild,
args: [ClrSignpostTrigger]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbnBvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9wb3BvdmVyL3NpZ25wb3N0L3NpZ25wb3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQWtCeEQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQVV0QixZQUFtQixhQUFzQztRQUF0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFUekQ7Ozs7OztXQU1HO1FBQ0gscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBRW1DLENBQUM7SUFFN0Q7Ozs7OztPQU1HO0lBQ0gsSUFDSSxhQUFhLENBQUMsT0FBMkI7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDcEMsQ0FBQzs7d0dBdEJVLFdBQVc7NEZBQVgsV0FBVywyRkFiWCxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDLHFFQWdDdEMsa0JBQWtCLDZHQTFDdEI7Ozs7Ozs7O0dBUVQ7MkZBZVUsV0FBVztrQkF6QnZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtvQkFDRCxJQUFJLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUU7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO29CQUNwRCxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDMUM7OEdBK0JLLGFBQWE7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVySG9zdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcG9wb3Zlci1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaWducG9zdEZvY3VzTWFuYWdlciB9IGZyb20gJy4vcHJvdmlkZXJzL3NpZ25wb3N0LWZvY3VzLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTaWducG9zdElkU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL3NpZ25wb3N0LWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyU2lnbnBvc3RUcmlnZ2VyIH0gZnJvbSAnLi9zaWducG9zdC10cmlnZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLXNpZ25wb3N0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZUN1c3RvbVRyaWdnZXJcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2lnbnBvc3QtYWN0aW9uIGJ0biBidG4tc21hbGwgYnRuLWljb24gYnRuLWxpbmtcIiBjbHJTaWducG9zdFRyaWdnZXI+XG4gICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cImluZm8tY2lyY2xlXCIgW2F0dHIudGl0bGVdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmluZm9cIj48L2Nkcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIGAsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5zaWducG9zdF0nOiAndHJ1ZScgfSxcbiAgcHJvdmlkZXJzOiBbU2lnbnBvc3RGb2N1c01hbmFnZXIsIFNpZ25wb3N0SWRTZXJ2aWNlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbHJQb3BvdmVySG9zdERpcmVjdGl2ZV0sXG59KVxuXG4vKioqKioqKioqXG4gKlxuICogQGNsYXNzIENsclNpZ25wb3N0XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDbGFzcyB1c2VkIHRvIGNvbmZpZ3VyZSBhbmQgY29udHJvbCB0aGUgc3RhdGUgb2YgYSBDbHJTaWducG9zdCBhbmQgaXRzIGFzc29jaWF0ZWQgQ2xyU2lnbnBvc3RDb250ZW50LlxuICogSXQgc3VwcG9ydHMgdGhlIGNsclBvc2l0aW9uIHdpdGggYSAncmlnaHQtbWlkZGxlJyBkZWZhdWx0LlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENsclNpZ25wb3N0IHtcbiAgLyoqKioqKioqKipcbiAgICogQHByb3BlcnR5IHVzZUN1c3RvbVRyaWdnZXJcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEZsYWcgdXNlZCB0byBkZXRlcm1pbmUgaWYgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgdHJpZ2dlciBvciBhIHVzZXIgc3VwcGxpZWQgdHJpZ2dlciBlbGVtZW50LlxuICAgKlxuICAgKi9cbiAgdXNlQ3VzdG9tVHJpZ2dlciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSkge31cblxuICAvKioqKioqKioqKlxuICAgKiBAcHJvcGVydHkgc2lnblBvc3RUcmlnZ2VyXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBVc2VzIENvbnRlbnRDaGlsZCB0byBjaGVjayBmb3IgYSB1c2VyIHN1cHBsaWVkIGVsZW1lbnQgd2l0aCB0aGUgQ2xyU2lnbnBvc3RUcmlnZ2VyIG9uIGl0LlxuICAgKlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChDbHJTaWducG9zdFRyaWdnZXIpXG4gIHNldCBjdXN0b21UcmlnZ2VyKHRyaWdnZXI6IENsclNpZ25wb3N0VHJpZ2dlcikge1xuICAgIHRoaXMudXNlQ3VzdG9tVHJpZ2dlciA9ICEhdHJpZ2dlcjtcbiAgfVxufVxuIl19