@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
192 lines • 14.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// tslint:disable: no-input-rename no-output-rename
import { Input, Directive, HostListener, EventEmitter, Output } from '@angular/core';
import { SheetService } from './sheet.service';
/** @type {?} */
var PRIMARY_ACTION_TAG = 'primaryAction';
/** @type {?} */
var SECONDARY_ACTION_TAG = 'secondaryAction';
/**
* Sheets are overlays that prevent users from interacting with the rest of the application until a specific action is taken. They can be disruptive because they require users to take an action before they can continue interacting with the rest of the application.
* It should be used thoughtfully and sparingly.
*/
var SheetDirective = /** @class */ (function () {
function SheetDirective(sheetService) {
this.sheetService = sheetService;
/**
* Set to `true` to show a close button on the top right corner. Defaults to `false`.
*/
this.closeButton = false;
/**
* Sets to `false` to stop the sheet from closing when the user clicks on the backdrop. Defaults to `true`.
*/
this.closeOnBackdropClick = true;
/**
* Callback when the sheet closes.
*/
this.close = new EventEmitter();
/**
* Callback when the secondary action is triggered.
*/
this.secondaryAction = new EventEmitter();
/**
* Callback when the primary action is triggered.
*/
this.primaryAction = new EventEmitter();
}
/**
* @return {?}
*/
SheetDirective.prototype.onClick = /**
* @return {?}
*/
function () {
this.openSheet();
};
/**
* Opens the sheet.
*/
/**
* Opens the sheet.
* @private
* @return {?}
*/
SheetDirective.prototype.openSheet = /**
* Opens the sheet.
* @private
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var sheetConfig = {
closeOnBackdropClick: this.closeOnBackdropClick,
content: {
closeButton: this.closeButton,
title: this.title,
body: this.body,
}
};
if (this.primaryActionLabel || this.secondaryActionLabel) {
sheetConfig.content.actions = [];
if (this.primaryActionLabel) {
sheetConfig.content.actions.push({
label: this.primaryActionLabel,
type: 'primary',
tag: PRIMARY_ACTION_TAG
});
}
if (this.secondaryActionLabel) {
sheetConfig.content.actions.push({
label: this.secondaryActionLabel,
type: 'secondary',
tag: SECONDARY_ACTION_TAG
});
}
}
/** @type {?} */
var sheetRef = this.sheetService.open(sheetConfig);
sheetRef.afterClosed().subscribe((/**
* @param {?} result
* @return {?}
*/
function (result) {
switch (result) {
case PRIMARY_ACTION_TAG:
if (_this.primaryAction.observers.length > 0) {
_this.primaryAction.emit(result);
}
break;
case SECONDARY_ACTION_TAG:
if (_this.secondaryAction.observers.length > 0) {
_this.secondaryAction.emit(result);
}
break;
default:
if (_this.close.observers.length > 0) {
_this.close.emit();
}
break;
}
}));
};
SheetDirective.decorators = [
{ type: Directive, args: [{
selector: '[sukaSheet]'
},] }
];
/** @nocollapse */
SheetDirective.ctorParameters = function () { return [
{ type: SheetService }
]; };
SheetDirective.propDecorators = {
closeButton: [{ type: Input, args: ['sheetCloseButton',] }],
title: [{ type: Input, args: ['sheetTitle',] }],
body: [{ type: Input, args: ['sheetBody',] }],
closeOnBackdropClick: [{ type: Input, args: ['sheetCloseOnBackdropClick',] }],
close: [{ type: Output, args: ['sheetClose',] }],
secondaryActionLabel: [{ type: Input, args: ['sheetSecondaryActionLabel',] }],
secondaryAction: [{ type: Output, args: ['sheetSecondaryAction',] }],
primaryActionLabel: [{ type: Input, args: ['sheetPrimaryActionLabel',] }],
primaryAction: [{ type: Output, args: ['sheetPrimaryAction',] }],
onClick: [{ type: HostListener, args: ['click',] }]
};
return SheetDirective;
}());
export { SheetDirective };
if (false) {
/**
* Set to `true` to show a close button on the top right corner. Defaults to `false`.
* @type {?}
*/
SheetDirective.prototype.closeButton;
/**
* Sets the sheet title.
* @type {?}
*/
SheetDirective.prototype.title;
/**
* Sets the body of the sheet.
* @type {?}
*/
SheetDirective.prototype.body;
/**
* Sets to `false` to stop the sheet from closing when the user clicks on the backdrop. Defaults to `true`.
* @type {?}
*/
SheetDirective.prototype.closeOnBackdropClick;
/**
* Callback when the sheet closes.
* @type {?}
*/
SheetDirective.prototype.close;
/**
* Sets the sheet secondary action button label.
* @type {?}
*/
SheetDirective.prototype.secondaryActionLabel;
/**
* Callback when the secondary action is triggered.
* @type {?}
*/
SheetDirective.prototype.secondaryAction;
/**
* Sets the sheet primary action button label.
* @type {?}
*/
SheetDirective.prototype.primaryActionLabel;
/**
* Callback when the primary action is triggered.
* @type {?}
*/
SheetDirective.prototype.primaryAction;
/**
* @type {?}
* @protected
*/
SheetDirective.prototype.sheetService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGt1c2hraS9uZy1zdWthLyIsInNvdXJjZXMiOlsibGliL3NoZWV0L3NoZWV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQWUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQzs7SUFHdEQsa0JBQWtCLEdBQUcsZUFBZTs7SUFDcEMsb0JBQW9CLEdBQUcsaUJBQWlCOzs7OztBQU05QztJQUlFLHdCQUFzQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYzs7OztRQUtyQixnQkFBVyxHQUFHLEtBQUssQ0FBQzs7OztRQVlYLHlCQUFvQixHQUFHLElBQUksQ0FBQzs7OztRQUsxQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7OztRQVNqQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7Ozs7UUFTdkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBeENiLENBQUM7Ozs7SUEyQ3JELGdDQUFPOzs7SUFEUDtRQUVFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7Ozs7OztJQUNLLGtDQUFTOzs7OztJQUFqQjtRQUFBLGlCQW1EQzs7WUFsRE8sV0FBVyxHQUFnQjtZQUMvQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQy9DLE9BQU8sRUFBRTtnQkFDUCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDeEQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBRWpDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUMzQixXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCO29CQUM5QixJQUFJLEVBQUUsU0FBUztvQkFDZixHQUFHLEVBQUUsa0JBQWtCO2lCQUN4QixDQUFDLENBQUM7YUFDSjtZQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM3QixXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsb0JBQW9CO29CQUNoQyxJQUFJLEVBQUUsV0FBVztvQkFDakIsR0FBRyxFQUFFLG9CQUFvQjtpQkFDMUIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjs7WUFFSyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXBELFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxNQUFXO1lBQzNDLFFBQVEsTUFBTSxFQUFFO2dCQUNkLEtBQUssa0JBQWtCO29CQUNyQixJQUFJLEtBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzNDLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxNQUFNO2dCQUNSLEtBQUssb0JBQW9CO29CQUN2QixJQUFJLEtBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzdDLEtBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3FCQUNuQztvQkFDRCxNQUFNO2dCQUNSO29CQUNFLElBQUksS0FBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDbkMsS0FBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztxQkFDbkI7b0JBQ0QsTUFBTTthQUNUO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkF6R0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs7OztnQkFaUSxZQUFZOzs7OEJBbUJsQixLQUFLLFNBQUMsa0JBQWtCO3dCQUl4QixLQUFLLFNBQUMsWUFBWTt1QkFJbEIsS0FBSyxTQUFDLFdBQVc7dUNBSWpCLEtBQUssU0FBQywyQkFBMkI7d0JBS2pDLE1BQU0sU0FBQyxZQUFZO3VDQUtuQixLQUFLLFNBQUMsMkJBQTJCO2tDQUlqQyxNQUFNLFNBQUMsc0JBQXNCO3FDQUs3QixLQUFLLFNBQUMseUJBQXlCO2dDQUkvQixNQUFNLFNBQUMsb0JBQW9COzBCQUUzQixZQUFZLFNBQUMsT0FBTzs7SUE0RHZCLHFCQUFDO0NBQUEsQUExR0QsSUEwR0M7U0F2R1ksY0FBYzs7Ozs7O0lBTXpCLHFDQUErQzs7Ozs7SUFJL0MsK0JBQXNEOzs7OztJQUl0RCw4QkFBb0Q7Ozs7O0lBSXBELDhDQUFnRTs7Ozs7SUFLaEUsK0JBQWlEOzs7OztJQUtqRCw4Q0FBaUU7Ozs7O0lBSWpFLHlDQUFxRTs7Ozs7SUFLckUsNENBQTZEOzs7OztJQUk3RCx1Q0FBaUU7Ozs7O0lBeENyRCxzQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbm8taW5wdXQtcmVuYW1lIG5vLW91dHB1dC1yZW5hbWVcblxuaW1wb3J0IHsgSW5wdXQsIFRlbXBsYXRlUmVmLCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hlZXRTZXJ2aWNlLCBTaGVldENvbmZpZyB9IGZyb20gJy4vc2hlZXQuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuY29uc3QgUFJJTUFSWV9BQ1RJT05fVEFHID0gJ3ByaW1hcnlBY3Rpb24nO1xuY29uc3QgU0VDT05EQVJZX0FDVElPTl9UQUcgPSAnc2Vjb25kYXJ5QWN0aW9uJztcblxuLyoqXG4gKiBTaGVldHMgYXJlIG92ZXJsYXlzIHRoYXQgcHJldmVudCB1c2VycyBmcm9tIGludGVyYWN0aW5nIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGFwcGxpY2F0aW9uIHVudGlsIGEgc3BlY2lmaWMgYWN0aW9uIGlzIHRha2VuLiBUaGV5IGNhbiBiZSBkaXNydXB0aXZlIGJlY2F1c2UgdGhleSByZXF1aXJlIHVzZXJzIHRvIHRha2UgYW4gYWN0aW9uIGJlZm9yZSB0aGV5IGNhbiBjb250aW51ZSBpbnRlcmFjdGluZyB3aXRoIHRoZSByZXN0IG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEl0IHNob3VsZCBiZSB1c2VkIHRob3VnaHRmdWxseSBhbmQgc3BhcmluZ2x5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3VrYVNoZWV0XSdcbn0pXG5leHBvcnQgY2xhc3MgU2hlZXREaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2hlZXRTZXJ2aWNlOiBTaGVldFNlcnZpY2UpIHsgfVxuXG4gIC8qKlxuICAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSBjbG9zZSBidXR0b24gb24gdGhlIHRvcCByaWdodCBjb3JuZXIuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBASW5wdXQoJ3NoZWV0Q2xvc2VCdXR0b24nKSBjbG9zZUJ1dHRvbiA9IGZhbHNlO1xuICAvKipcbiAgICogU2V0cyB0aGUgc2hlZXQgdGl0bGUuXG4gICAqL1xuICBASW5wdXQoJ3NoZWV0VGl0bGUnKSB0aXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGJvZHkgb2YgdGhlIHNoZWV0LlxuICAgKi9cbiAgQElucHV0KCdzaGVldEJvZHknKSBib2R5OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU2V0cyB0byBgZmFsc2VgIHRvIHN0b3AgdGhlIHNoZWV0IGZyb20gY2xvc2luZyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgYmFja2Ryb3AuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgnc2hlZXRDbG9zZU9uQmFja2Ryb3BDbGljaycpIGNsb3NlT25CYWNrZHJvcENsaWNrID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgd2hlbiB0aGUgc2hlZXQgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgnc2hlZXRDbG9zZScpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzaGVldCBzZWNvbmRhcnkgYWN0aW9uIGJ1dHRvbiBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgnc2hlZXRTZWNvbmRhcnlBY3Rpb25MYWJlbCcpIHNlY29uZGFyeUFjdGlvbkxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHRoZSBzZWNvbmRhcnkgYWN0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIEBPdXRwdXQoJ3NoZWV0U2Vjb25kYXJ5QWN0aW9uJykgc2Vjb25kYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzaGVldCBwcmltYXJ5IGFjdGlvbiBidXR0b24gbGFiZWwuXG4gICAqL1xuICBASW5wdXQoJ3NoZWV0UHJpbWFyeUFjdGlvbkxhYmVsJykgcHJpbWFyeUFjdGlvbkxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIHRoZSBwcmltYXJ5IGFjdGlvbiBpcyB0cmlnZ2VyZWQuXG4gICAqL1xuICBAT3V0cHV0KCdzaGVldFByaW1hcnlBY3Rpb24nKSBwcmltYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpIHtcbiAgICB0aGlzLm9wZW5TaGVldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBzaGVldC5cbiAgICovXG4gIHByaXZhdGUgb3BlblNoZWV0KCkge1xuICAgIGNvbnN0IHNoZWV0Q29uZmlnOiBTaGVldENvbmZpZyA9IHtcbiAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiB0aGlzLmNsb3NlT25CYWNrZHJvcENsaWNrLFxuICAgICAgY29udGVudDoge1xuICAgICAgICBjbG9zZUJ1dHRvbjogdGhpcy5jbG9zZUJ1dHRvbixcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICAgIGJvZHk6IHRoaXMuYm9keSxcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHRoaXMucHJpbWFyeUFjdGlvbkxhYmVsIHx8IHRoaXMuc2Vjb25kYXJ5QWN0aW9uTGFiZWwpIHtcbiAgICAgIHNoZWV0Q29uZmlnLmNvbnRlbnQuYWN0aW9ucyA9IFtdO1xuXG4gICAgICBpZiAodGhpcy5wcmltYXJ5QWN0aW9uTGFiZWwpIHtcbiAgICAgICAgc2hlZXRDb25maWcuY29udGVudC5hY3Rpb25zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiB0aGlzLnByaW1hcnlBY3Rpb25MYWJlbCxcbiAgICAgICAgICB0eXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgdGFnOiBQUklNQVJZX0FDVElPTl9UQUdcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNlY29uZGFyeUFjdGlvbkxhYmVsKSB7XG4gICAgICAgIHNoZWV0Q29uZmlnLmNvbnRlbnQuYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogdGhpcy5zZWNvbmRhcnlBY3Rpb25MYWJlbCxcbiAgICAgICAgICB0eXBlOiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICB0YWc6IFNFQ09OREFSWV9BQ1RJT05fVEFHXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNoZWV0UmVmID0gdGhpcy5zaGVldFNlcnZpY2Uub3BlbihzaGVldENvbmZpZyk7XG5cbiAgICBzaGVldFJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIHN3aXRjaCAocmVzdWx0KSB7XG4gICAgICAgIGNhc2UgUFJJTUFSWV9BQ1RJT05fVEFHOlxuICAgICAgICAgIGlmICh0aGlzLnByaW1hcnlBY3Rpb24ub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucHJpbWFyeUFjdGlvbi5lbWl0KHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNFQ09OREFSWV9BQ1RJT05fVEFHOlxuICAgICAgICAgIGlmICh0aGlzLnNlY29uZGFyeUFjdGlvbi5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uZW1pdChyZXN1bHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodGhpcy5jbG9zZS5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=