UNPKG

@coreui/angular

Version:

CoreUI Components Library for Angular

67 lines 8.02 kB
import { Directive, HostBinding, Input } from '@angular/core'; import * as i0 from "@angular/core"; export class BorderDirective { constructor() { /** * Add or remove an element’s borders * @type Border */ this.border = true; } get hostClasses() { if (typeof this.border === 'boolean') { return { border: true }; } if (typeof this.border === 'number' || typeof this.border === 'string') { return { border: true, [`border-${this.border}`]: true }; } if (typeof this.border === 'object') { const borderObj = { top: undefined, end: undefined, bottom: undefined, start: undefined, color: undefined, ...this.border }; // @ts-ignore const keys = Object.keys(borderObj).filter(key => borderObj[key] !== undefined); const classes = {}; keys.forEach(key => { // @ts-ignore const val = borderObj[key]; if (typeof val === 'boolean') { // @ts-ignore classes[`border-${key}`] = true; } else if (typeof val === 'number' || typeof val === 'string') { // @ts-ignore classes[`border-${key}-${val}`] = true; } else if (typeof val === 'object') { if ('color' in val) { // @ts-ignore classes[`border-${key}-${val.color}`] = true; } if ('width' in val) { // @ts-ignore classes[`border-${key}-${val.width}`] = true; } } }); return Object.entries(classes).length === 0 ? { border: false } : classes; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BorderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BorderDirective, isStandalone: true, selector: "[cBorder]", inputs: { border: ["cBorder", "border"] }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BorderDirective, decorators: [{ type: Directive, args: [{ selector: '[cBorder]', standalone: true }] }], propDecorators: { border: [{ type: Input, args: ['cBorder'] }], hostClasses: [{ type: HostBinding, args: ['class'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdXRpbGl0aWVzL2JvcmRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sZUFBZTtJQUo1QjtRQUtFOzs7V0FHRztRQUNlLFdBQU0sR0FBVyxJQUFJLENBQUM7S0EwQ3pDO0lBeENDLElBQ0ksV0FBVztRQUViLElBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFHLENBQUM7WUFDekUsT0FBTztnQkFDTCxNQUFNLEVBQUUsSUFBSTtnQkFDWixDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSTthQUNoQyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRyxDQUFDO1lBQ3RDLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVILGFBQWE7WUFDYixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUNoRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDakIsYUFBYTtnQkFDYixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUssT0FBTyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzlCLGFBQWE7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLENBQUM7cUJBQU0sSUFBSyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFHLENBQUM7b0JBQ2hFLGFBQWE7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN6QyxDQUFDO3FCQUFNLElBQUssT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFHLENBQUM7b0JBQ3JDLElBQUksT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNuQixhQUFhO3dCQUNiLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQy9DLENBQUM7b0JBQ0QsSUFBSSxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7d0JBQ25CLGFBQWE7d0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDL0MsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQzsrR0E5Q1UsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBTW1CLE1BQU07c0JBQXZCLEtBQUs7dUJBQUMsU0FBUztnQkFHWixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb3JkZXIsIEJvcmRlckNvbG9yLCBJQm9yZGVyRWxlbWVudCwgQm9yZGVyV2lkdGggfSBmcm9tICcuL2JvcmRlci50eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NCb3JkZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBCb3JkZXJEaXJlY3RpdmUge1xuICAvKipcbiAgICogQWRkIG9yIHJlbW92ZSBhbiBlbGVtZW504oCZcyBib3JkZXJzXG4gICAqIEB0eXBlIEJvcmRlclxuICAgKi9cbiAgQElucHV0KCdjQm9yZGVyJykgYm9yZGVyOiBCb3JkZXIgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcblxuICAgIGlmICggdHlwZW9mIHRoaXMuYm9yZGVyID09PSAnYm9vbGVhbicgKSB7XG4gICAgICByZXR1cm4geyBib3JkZXI6IHRydWUgfTtcbiAgICB9XG4gICAgaWYgKCB0eXBlb2YgdGhpcy5ib3JkZXIgPT09ICdudW1iZXInIHx8IHR5cGVvZiB0aGlzLmJvcmRlciA9PT0gJ3N0cmluZycgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBib3JkZXI6IHRydWUsXG4gICAgICAgIFtgYm9yZGVyLSR7dGhpcy5ib3JkZXJ9YF06IHRydWVcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICggdHlwZW9mIHRoaXMuYm9yZGVyID09PSAnb2JqZWN0JyApIHtcbiAgICAgIGNvbnN0IGJvcmRlck9iaiA9IHsgdG9wOiB1bmRlZmluZWQsIGVuZDogdW5kZWZpbmVkLCBib3R0b206IHVuZGVmaW5lZCwgc3RhcnQ6IHVuZGVmaW5lZCwgY29sb3I6IHVuZGVmaW5lZCwgLi4udGhpcy5ib3JkZXIgfTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhib3JkZXJPYmopLmZpbHRlcihrZXkgPT4gYm9yZGVyT2JqW2tleV0gIT09IHVuZGVmaW5lZCk7XG4gICAgICBjb25zdCBjbGFzc2VzID0ge307XG4gICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCB2YWwgPSBib3JkZXJPYmpba2V5XTtcbiAgICAgICAgaWYgKCB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgY2xhc3Nlc1tgYm9yZGVyLSR7a2V5fWBdID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGNsYXNzZXNbYGJvcmRlci0ke2tleX0tJHt2YWx9YF0gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKCB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyApIHtcbiAgICAgICAgICBpZiAoJ2NvbG9yJyBpbiB2YWwpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGNsYXNzZXNbYGJvcmRlci0ke2tleX0tJHt2YWwuY29sb3J9YF0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJ3dpZHRoJyBpbiB2YWwpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGNsYXNzZXNbYGJvcmRlci0ke2tleX0tJHt2YWwud2lkdGh9YF0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY2xhc3NlcykubGVuZ3RoID09PSAwID8ge2JvcmRlcjogZmFsc2V9IDogY2xhc3NlcztcbiAgICB9XG4gIH1cbn1cbiJdfQ==