UNPKG

@smart-webcomponents-angular/cardview

Version:

[![Price](https://img.shields.io/badge/price-COMMERCIAL-0098f7.svg)](https://jqwidgets.com/license/)

664 lines (656 loc) 29 kB
if (!window['Smart']) { window['Smart'] = { RenderMode: 'manual' }; } else { window['Smart'].RenderMode = 'manual'; } import './../source/modules/smart.cardview'; import * as i0 from '@angular/core'; import { EventEmitter, Directive, Output, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; class BaseElement { constructor(ref) { this.onCreate = new EventEmitter(); this.onReady = new EventEmitter(); this.onAttach = new EventEmitter(); this.onDetach = new EventEmitter(); const that = this; this.nativeElement = ref.nativeElement; that.nativeElement.onAttached = () => { that.onAttach.emit(that.nativeElement); }; that.nativeElement.onDetached = () => { that.onDetach.emit(that.nativeElement); }; } addEventListener(type, listener, options = false) { this.nativeElement.addEventListener(type, listener, options); } removeEventListener(type, listener, options = false) { this.nativeElement.removeEventListener(type, listener, options); } dispatchEvent(event) { return this.nativeElement.dispatchEvent(event); } blur() { this.nativeElement.blur(); } click() { this.nativeElement.click(); } focus(options) { this.nativeElement.focus(options); } /** @description Sets or gets the license. */ get license() { return this.nativeElement ? this.nativeElement.license : undefined; } set license(value) { this.nativeElement ? this.nativeElement.license = value : undefined; } /** @description Sets or gets the language. Used in conjunction with the property messages. */ get locale() { return this.nativeElement ? this.nativeElement.locale : undefined; } set locale(value) { this.nativeElement ? this.nativeElement.locale = value : undefined; } /** @description Callback used to customize the format of the messages that are returned from the Localization Module. */ get localizeFormatFunction() { return this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined; } set localizeFormatFunction(value) { this.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined; } /** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */ get messages() { return this.nativeElement ? this.nativeElement.messages : undefined; } set messages(value) { this.nativeElement ? this.nativeElement.messages = value : undefined; } /** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */ get rightToLeft() { return this.nativeElement ? this.nativeElement.rightToLeft : undefined; } set rightToLeft(value) { this.nativeElement ? this.nativeElement.rightToLeft = value : undefined; } /** @description Determines the theme. Theme defines the look of the element */ get theme() { return this.nativeElement ? this.nativeElement.theme : undefined; } set theme(value) { this.nativeElement ? this.nativeElement.theme = value : undefined; } } BaseElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BaseElement, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); BaseElement.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: BaseElement, inputs: { license: "license", locale: "locale", localizeFormatFunction: "localizeFormatFunction", messages: "messages", rightToLeft: "rightToLeft", theme: "theme" }, outputs: { onCreate: "onCreate", onReady: "onReady", onAttach: "onAttach", onDetach: "onDetach" }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BaseElement, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onCreate: [{ type: Output }], onReady: [{ type: Output }], onAttach: [{ type: Output }], onDetach: [{ type: Output }], license: [{ type: Input }], locale: [{ type: Input }], localizeFormatFunction: [{ type: Input }], messages: [{ type: Input }], rightToLeft: [{ type: Input }], theme: [{ type: Input }] } }); let Smart; if (typeof window !== "undefined") { Smart = window.Smart; } class CardViewComponent extends BaseElement { constructor(ref) { super(ref); this.eventHandlers = []; /** @description This event is triggered when a filter has been applied. * @param event. The custom event. */ this.onFilter = new EventEmitter(); /** @description This event is triggered when sorting has been applied. * @param event. The custom event. */ this.onSort = new EventEmitter(); /** @description This event is triggered when the window is opened. * @param event. The custom event. */ this.onOpen = new EventEmitter(); /** @description This event is triggered when the window is about to be opened. The opening operation can be canceled by calling event.preventDefault() in the event handler function. * @param event. The custom event. */ this.onOpening = new EventEmitter(); /** @description This event is triggered when the window is closed. * @param event. The custom event. */ this.onClose = new EventEmitter(); /** @description This event is triggered when the window is about to be closed. The closing operation can be canceled by calling event.preventDefault() in the event handler function. * @param event. The custom event. */ this.onClosing = new EventEmitter(); /** @description This event is triggered when the user starts dragging the card. * @param event. The custom event. */ this.onDragStart = new EventEmitter(); /** @description This event is triggered when the user is dragging the card. * @param event. The custom event. */ this.onDragging = new EventEmitter(); /** @description This event is triggered when the user dragged the card. * @param event. The custom event. */ this.onDragEnd = new EventEmitter(); this.nativeElement = ref.nativeElement; } /** @description Creates the component on demand. * @param properties An optional object of properties, which will be added to the template binded ones. */ createComponent(properties = {}) { this.nativeElement = document.createElement('smart-card-view'); for (let propertyName in properties) { this.nativeElement[propertyName] = properties[propertyName]; } return this.nativeElement; } /** @description Toggles the button for adding new cards. */ get addNewButton() { return this.nativeElement ? this.nativeElement.addNewButton : undefined; } set addNewButton(value) { this.nativeElement ? this.nativeElement.addNewButton = value : undefined; } /** @description Allows reordering by dragging cards. */ get allowDrag() { return this.nativeElement ? this.nativeElement.allowDrag : undefined; } set allowDrag(value) { this.nativeElement ? this.nativeElement.allowDrag = value : undefined; } /** @description Sets or gets the animation mode. Animation is disabled when the property is set to 'none' */ get animation() { return this.nativeElement ? this.nativeElement.animation : undefined; } set animation(value) { this.nativeElement ? this.nativeElement.animation = value : undefined; } /** @description Describes the height for each card. */ get cardHeight() { return this.nativeElement ? this.nativeElement.cardHeight : undefined; } set cardHeight(value) { this.nativeElement ? this.nativeElement.cardHeight = value : undefined; } /** @description Describes the orientation of the card cells. */ get cellOrientation() { return this.nativeElement ? this.nativeElement.cellOrientation : undefined; } set cellOrientation(value) { this.nativeElement ? this.nativeElement.cellOrientation = value : undefined; } /** @description Allows collapsing the card content. */ get collapsible() { return this.nativeElement ? this.nativeElement.collapsible : undefined; } set collapsible(value) { this.nativeElement ? this.nativeElement.collapsible = value : undefined; } /** @description Describes the columns properties:label - Sets the column namedataField - Sets the dataField nameicon - Sets the icon for the columnformatSettings - Sets the settings about the format for the current columnformatFunction - Function for customizing the value */ get columns() { return this.nativeElement ? this.nativeElement.columns : undefined; } set columns(value) { this.nativeElement ? this.nativeElement.columns = value : undefined; } /** @description Describes which data field to be set as cover. */ get coverField() { return this.nativeElement ? this.nativeElement.coverField : undefined; } set coverField(value) { this.nativeElement ? this.nativeElement.coverField = value : undefined; } /** @description Describes the cover image fit property. */ get coverMode() { return this.nativeElement ? this.nativeElement.coverMode : undefined; } set coverMode(value) { this.nativeElement ? this.nativeElement.coverMode = value : undefined; } /** @description Determines the data source for the item that will be displayed inside the card. */ get dataSource() { return this.nativeElement ? this.nativeElement.dataSource : undefined; } set dataSource(value) { this.nativeElement ? this.nativeElement.dataSource = value : undefined; } /** @description Sets the grid's data source settings when the dataSource property is set to an Array or URL. */ get dataSourceSettings() { return this.nativeElement ? this.nativeElement.dataSourceSettings : undefined; } set dataSourceSettings(value) { this.nativeElement ? this.nativeElement.dataSourceSettings = value : undefined; } /** @description Allows the edit option for the cards. */ get editable() { return this.nativeElement ? this.nativeElement.editable : undefined; } set editable(value) { this.nativeElement ? this.nativeElement.editable = value : undefined; } /** @description Sets or gets the header position. The header contains the Customize, Filter, Sort, and Search buttons. */ get headerPosition() { return this.nativeElement ? this.nativeElement.headerPosition : undefined; } set headerPosition(value) { this.nativeElement ? this.nativeElement.headerPosition = value : undefined; } /** @description Sets or gets the unlockKey which unlocks the product. */ get unlockKey() { return this.nativeElement ? this.nativeElement.unlockKey : undefined; } set unlockKey(value) { this.nativeElement ? this.nativeElement.unlockKey = value : undefined; } /** @description Sets or gets the locale. Used in conjunction with the property messages. */ get locale() { return this.nativeElement ? this.nativeElement.locale : undefined; } set locale(value) { this.nativeElement ? this.nativeElement.locale = value : undefined; } /** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */ get messages() { return this.nativeElement ? this.nativeElement.messages : undefined; } set messages(value) { this.nativeElement ? this.nativeElement.messages = value : undefined; } /** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */ get rightToLeft() { return this.nativeElement ? this.nativeElement.rightToLeft : undefined; } set rightToLeft(value) { this.nativeElement ? this.nativeElement.rightToLeft = value : undefined; } /** @description Determines the theme. Theme defines the look of the element */ get theme() { return this.nativeElement ? this.nativeElement.theme : undefined; } set theme(value) { this.nativeElement ? this.nativeElement.theme = value : undefined; } /** @description Describes the scrolling behavior of the element. */ get scrolling() { return this.nativeElement ? this.nativeElement.scrolling : undefined; } set scrolling(value) { this.nativeElement ? this.nativeElement.scrolling = value : undefined; } /** @description Describes which data field to be set as title. */ get titleField() { return this.nativeElement ? this.nativeElement.titleField : undefined; } set titleField(value) { this.nativeElement ? this.nativeElement.titleField = value : undefined; } /** @description Adds filtering * @param {string[]} filters. Filter information * @param {string} operator?. Logical operator between the filters of different fields */ addFilter(filters, operator) { if (this.nativeElement.isRendered) { this.nativeElement.addFilter(filters, operator); } else { this.nativeElement.whenRendered(() => { this.nativeElement.addFilter(filters, operator); }); } } /** @description Adds a new record * @param {number | string} recordId?. The id of the record to add * @param {any} data?. The data of the record to add * @param {string} position?. The position to add the record to. Possible values: 'first' and 'last'. */ addRecord(recordId, data, position) { if (this.nativeElement.isRendered) { this.nativeElement.addRecord(recordId, data, position); } else { this.nativeElement.whenRendered(() => { this.nativeElement.addRecord(recordId, data, position); }); } } /** @description Adds sorting * @param {[] | string} dataFields. The data field(s) to sort by * @param {[] | string} orderBy. The sort direction(s) to sort the data field(s) by */ addSort(dataFields, orderBy) { if (this.nativeElement.isRendered) { this.nativeElement.addSort(dataFields, orderBy); } else { this.nativeElement.whenRendered(() => { this.nativeElement.addSort(dataFields, orderBy); }); } } /** @description Begins an edit operation * @param {number | string} recordId. The id of the record to edit */ beginEdit(recordId) { if (this.nativeElement.isRendered) { this.nativeElement.beginEdit(recordId); } else { this.nativeElement.whenRendered(() => { this.nativeElement.beginEdit(recordId); }); } } /** @description Ends the current edit operation and discards changes */ cancelEdit() { if (this.nativeElement.isRendered) { this.nativeElement.cancelEdit(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.cancelEdit(); }); } } /** @description Closes any open header panel (drop down) */ closePanel() { if (this.nativeElement.isRendered) { this.nativeElement.closePanel(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.closePanel(); }); } } /** @description Ends the current edit operation and saves changes */ endEdit() { if (this.nativeElement.isRendered) { this.nativeElement.endEdit(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.endEdit(); }); } } /** @description Makes sure a record is visible by scrolling to it. If succcessful, the method returns the HTML element of the record's card. * @param {number | string} recordId. The id of the record to scroll to * @returns {HTMLElement} */ async ensureVisible(recordId) { const getResultOnRender = () => { return new Promise(resolve => { this.nativeElement.whenRendered(() => { const result = this.nativeElement.ensureVisible(recordId); resolve(result); }); }); }; const result = await getResultOnRender(); return result; } /** @description Opens the "Customize cards" header panel (drop down) */ openCustomizePanel() { if (this.nativeElement.isRendered) { this.nativeElement.openCustomizePanel(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.openCustomizePanel(); }); } } /** @description Opens the "Filter" header panel (drop down) */ openFilterPanel() { if (this.nativeElement.isRendered) { this.nativeElement.openFilterPanel(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.openFilterPanel(); }); } } /** @description Opens the "Sort" header panel (drop down) */ openSortPanel() { if (this.nativeElement.isRendered) { this.nativeElement.openSortPanel(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.openSortPanel(); }); } } /** @description Removes filtering */ removeFilter() { if (this.nativeElement.isRendered) { this.nativeElement.removeFilter(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.removeFilter(); }); } } /** @description Removes a record * @param {number | string} recordId. The id of the record to remove */ removeRecord(recordId) { if (this.nativeElement.isRendered) { this.nativeElement.removeRecord(recordId); } else { this.nativeElement.whenRendered(() => { this.nativeElement.removeRecord(recordId); }); } } /** @description Removes sorting */ removeSort() { if (this.nativeElement.isRendered) { this.nativeElement.removeSort(); } else { this.nativeElement.whenRendered(() => { this.nativeElement.removeSort(); }); } } /** @description Shows a column * @param {string} dataField. The data field of the column */ showColumn(dataField) { if (this.nativeElement.isRendered) { this.nativeElement.showColumn(dataField); } else { this.nativeElement.whenRendered(() => { this.nativeElement.showColumn(dataField); }); } } get isRendered() { return this.nativeElement ? this.nativeElement.isRendered : false; } ngOnInit() { } ngAfterViewInit() { const that = this; that.onCreate.emit(that.nativeElement); if (Smart) Smart.Render(); this.nativeElement.classList.add('smart-angular'); if (this.nativeElement.whenRendered) this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); }); this.listen(); } ngOnDestroy() { this.unlisten(); } ngOnChanges(changes) { if (this.nativeElement && this.nativeElement.isRendered) { for (const propName in changes) { if (changes.hasOwnProperty(propName)) { this.nativeElement[propName] = changes[propName].currentValue; } } } } /** @description Add event listeners. */ listen() { const that = this; that.eventHandlers['filterHandler'] = (event) => { that.onFilter.emit(event); }; that.nativeElement.addEventListener('filter', that.eventHandlers['filterHandler']); that.eventHandlers['sortHandler'] = (event) => { that.onSort.emit(event); }; that.nativeElement.addEventListener('sort', that.eventHandlers['sortHandler']); that.eventHandlers['openHandler'] = (event) => { that.onOpen.emit(event); }; that.nativeElement.addEventListener('open', that.eventHandlers['openHandler']); that.eventHandlers['openingHandler'] = (event) => { that.onOpening.emit(event); }; that.nativeElement.addEventListener('opening', that.eventHandlers['openingHandler']); that.eventHandlers['closeHandler'] = (event) => { that.onClose.emit(event); }; that.nativeElement.addEventListener('close', that.eventHandlers['closeHandler']); that.eventHandlers['closingHandler'] = (event) => { that.onClosing.emit(event); }; that.nativeElement.addEventListener('closing', that.eventHandlers['closingHandler']); that.eventHandlers['dragStartHandler'] = (event) => { that.onDragStart.emit(event); }; that.nativeElement.addEventListener('dragStart', that.eventHandlers['dragStartHandler']); that.eventHandlers['draggingHandler'] = (event) => { that.onDragging.emit(event); }; that.nativeElement.addEventListener('dragging', that.eventHandlers['draggingHandler']); that.eventHandlers['dragEndHandler'] = (event) => { that.onDragEnd.emit(event); }; that.nativeElement.addEventListener('dragEnd', that.eventHandlers['dragEndHandler']); } /** @description Remove event listeners. */ unlisten() { const that = this; if (that.eventHandlers['filterHandler']) { that.nativeElement.onfilterHandler = null; } if (that.eventHandlers['sortHandler']) { that.nativeElement.removeEventListener('sort', that.eventHandlers['sortHandler']); } if (that.eventHandlers['openHandler']) { that.nativeElement.removeEventListener('open', that.eventHandlers['openHandler']); } if (that.eventHandlers['openingHandler']) { that.nativeElement.removeEventListener('opening', that.eventHandlers['openingHandler']); } if (that.eventHandlers['closeHandler']) { that.nativeElement.removeEventListener('close', that.eventHandlers['closeHandler']); } if (that.eventHandlers['closingHandler']) { that.nativeElement.removeEventListener('closing', that.eventHandlers['closingHandler']); } if (that.eventHandlers['dragStartHandler']) { that.nativeElement.removeEventListener('dragStart', that.eventHandlers['dragStartHandler']); } if (that.eventHandlers['draggingHandler']) { that.nativeElement.removeEventListener('dragging', that.eventHandlers['draggingHandler']); } if (that.eventHandlers['dragEndHandler']) { that.nativeElement.removeEventListener('dragEnd', that.eventHandlers['dragEndHandler']); } } } CardViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); CardViewComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: CardViewComponent, selector: "smart-card-view, [smart-card-view]", inputs: { addNewButton: "addNewButton", allowDrag: "allowDrag", animation: "animation", cardHeight: "cardHeight", cellOrientation: "cellOrientation", collapsible: "collapsible", columns: "columns", coverField: "coverField", coverMode: "coverMode", dataSource: "dataSource", dataSourceSettings: "dataSourceSettings", editable: "editable", headerPosition: "headerPosition", unlockKey: "unlockKey", locale: "locale", messages: "messages", rightToLeft: "rightToLeft", theme: "theme", scrolling: "scrolling", titleField: "titleField" }, outputs: { onFilter: "onFilter", onSort: "onSort", onOpen: "onOpen", onOpening: "onOpening", onClose: "onClose", onClosing: "onClosing", onDragStart: "onDragStart", onDragging: "onDragging", onDragEnd: "onDragEnd" }, exportAs: ["smart-card-view"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardViewComponent, decorators: [{ type: Directive, args: [{ exportAs: 'smart-card-view', selector: 'smart-card-view, [smart-card-view]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { addNewButton: [{ type: Input }], allowDrag: [{ type: Input }], animation: [{ type: Input }], cardHeight: [{ type: Input }], cellOrientation: [{ type: Input }], collapsible: [{ type: Input }], columns: [{ type: Input }], coverField: [{ type: Input }], coverMode: [{ type: Input }], dataSource: [{ type: Input }], dataSourceSettings: [{ type: Input }], editable: [{ type: Input }], headerPosition: [{ type: Input }], unlockKey: [{ type: Input }], locale: [{ type: Input }], messages: [{ type: Input }], rightToLeft: [{ type: Input }], theme: [{ type: Input }], scrolling: [{ type: Input }], titleField: [{ type: Input }], onFilter: [{ type: Output }], onSort: [{ type: Output }], onOpen: [{ type: Output }], onOpening: [{ type: Output }], onClose: [{ type: Output }], onClosing: [{ type: Output }], onDragStart: [{ type: Output }], onDragging: [{ type: Output }], onDragEnd: [{ type: Output }] } }); class CardViewModule { } CardViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); CardViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardViewModule, declarations: [CardViewComponent], exports: [CardViewComponent] }); CardViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardViewModule }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CardViewModule, decorators: [{ type: NgModule, args: [{ declarations: [CardViewComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA], exports: [CardViewComponent] }] }] }); /** * Generated bundle index. Do not edit. */ export { CardViewComponent, CardViewModule, Smart }; //# sourceMappingURL=smart-webcomponents-angular-cardview.mjs.map