ng-tailwind 3.30.366 → 3.30.367
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/bundles/ng-tailwind.umd.js +10 -2
- package/bundles/ng-tailwind.umd.js.map +1 -1
- package/components/ngt-dropzone/ngt-dropzone.component.d.ts +2 -1
- package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +5 -2
- package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +2 -1
- package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +6 -2
- package/fesm2015/ng-tailwind.js +10 -2
- package/fesm2015/ng-tailwind.js.map +1 -1
- package/ng-tailwind.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-tailwind.js","sources":["../../../projects/ng-tailwind/src/services/http/ngt-translate.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-validation.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-resource.service.ts","../../../projects/ng-tailwind/src/services/ngt-stylizable/ngt-stylizable.service.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.directive.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.module.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.component.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.module.ts","../../../projects/ng-tailwind/src/base/ngt-base-ng-model.ts","../../../projects/ng-tailwind/src/helpers/enum/enum.ts","../../../projects/ng-tailwind/src/helpers/form/form.ts","../../../projects/ng-tailwind/src/helpers/routing/route.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-form.service.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.component.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.component.ts","../../../projects/ng-tailwind/src/helpers/uuid.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.module.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.module.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.component.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.module.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.component.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.module.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.module.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.component.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.module.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.directive.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.module.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.component.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.module.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.component.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.module.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tbody/ngt-tbody.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td-check/ngt-td-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td/ngt-td.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th-check/ngt-th-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th/ngt-th.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-thead/ngt-thead.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tr/ngt-tr.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.module.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.component.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.module.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.component.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.module.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.component.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.module.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.module.ts","../../../projects/ng-tailwind/src/enums/size.enum.ts","../../../projects/ng-tailwind/src/animations/ngt-angular-animations.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.component.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.module.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.component.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.module.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.component.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.module.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.component.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.module.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.module.ts","../../../projects/ng-tailwind/src/services/http/ngt-attachment-http.service.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.module.ts","../../../projects/ng-tailwind/src/components/ngt-popover/ngt-popover.component.ts","../../../projects/ng-tailwind/src/components/ngt-popover/ngt-popover.module.ts","../../../projects/ng-tailwind/src/public-api.ts","../../../projects/ng-tailwind/src/ng-tailwind.ts"],"sourcesContent":["export abstract class NgtTranslateService {\n public abstract ngtFormDefaultValidationMessage: string;\n\n public abstract ngtDatatableNoDataFound: string;\n public abstract ngtMultiSelectNoDataFound: string;\n\n public abstract ngtSelectLoadingText: string;\n public abstract ngtSelectNotFoundText: string;\n public abstract ngtSelectTypeToSearchText: string;\n public abstract ngtSelectClearAllTooltip: string;\n public abstract ngtSelectPlaceholder: string;\n public abstract ngtSelectCreateText: string;\n\n public abstract ngtTextAreaRemainingCharacters: string;\n\n public abstract ngtStandardHelperTitle: string;\n\n public abstract ngtFileTooLargeForPreview: string;\n public abstract ngtFileTooLargeForPreviewNoDownloadPermission: string;\n\n public abstract ngtValidationMaxCharactersExceded: string;\n public abstract ngtValidationRequiredField: string;\n public abstract ngtValidationInvalidEmail: string;\n public abstract ngtValidationAlreadyExists: string;\n public abstract ngtValidationInvalidCnpj: string;\n public abstract ngtValidationInvalidCpf: string;\n public abstract ngtValidationPasswordRequiredMinCharacters: string;\n public abstract ngtValidationFieldsNotMatch: string;\n public abstract ngtValidationInvalidDate: string;\n public abstract ngtValidationInvalidPrevision: string;\n public abstract ngtValidationExternalServerUnavailable: string;\n public abstract ngtValidationValueMustBeGreaterThan(minValue?: number | string): string;\n public abstract ngtValidationMinLengthField(minLenth?: number | string): string;\n\n public abstract ngtPagination(from: number | string, to: number | string, total: number | string): string;\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtHttpService {\n abstract get(connector: any, filters: any, pagination: NgtHttpPagination, sort?: NgtHttpSort): Observable<NgtHttpResponse>;\n\n abstract post(data: any): Observable<any>;\n\n abstract put(data: any): Observable<any>;\n\n abstract delete(data: any): Observable<any>;\n}\n\nexport interface NgtHttpResponse {\n data?: any;\n meta: NgtHttpMeta;\n}\n\nexport interface NgtHttpMeta {\n pagination: NgtHttpPagination;\n}\n\nexport interface NgtHttpPagination {\n count: number;\n page: number;\n pages: number;\n total: number;\n from: number;\n to: number;\n per_page: number;\n}\n\nexport interface NgtHttpSort {\n field: string;\n direction: string;\n}\n","export interface NgtHttpValidationService {\n emailValidation(email: string): Promise<NgtHttpValidationResponse>;\n phoneValidation(phone: string): Promise<NgtHttpValidationResponse>;\n}\n\nexport abstract class NgtHttpValidationService {\n public abstract unique(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\n\n public abstract exists(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\n}\n\nexport interface NgtHttpValidationResponse {\n valid: any;\n}\n","export interface NgtHttpFindExistingResourceInterface {\n table: string;\n column: string;\n value?: string;\n ignore_id?: string;\n}\n\nexport interface NgtHttpFindExistingResourceResponse {\n id: string;\n}\n\nexport abstract class NgtHttpResourceService {\n public abstract findExisting(findExistingResource: NgtHttpFindExistingResourceInterface): Promise<NgtHttpFindExistingResourceResponse>;\n}\n","import { Injector } from '@angular/core';\n\nexport class NgtStylizableService {\n private _color: any;\n private _h: string;\n private _w: string;\n private _p: string;\n private _px: string;\n private _py: string;\n private _pt: string;\n private _pr: string;\n private _pb: string;\n private _pl: string;\n private _m: string;\n private _mx: string;\n private _my: string;\n private _mt: string;\n private _mr: string;\n private _mb: string;\n private _ml: string;\n private _border: string;\n private _shadow: string;\n private _rounded: string;\n private _font: string;\n private _text: string;\n private _breakWords: string;\n private _overflow: string;\n private _position: string;\n private _justifyContent: string;\n private _cursor: string;\n private _fontCase: string;\n\n public get color() {\n return this._color;\n }\n\n public set color(color) {\n if (color.bg) {\n color.bg = this.getQualifiedValue('bg-', color.bg);\n }\n\n if (color.text) {\n color.text = this.getQualifiedValue('text-', color.text);\n }\n\n if (color.border) {\n color.border = this.getQualifiedValue('border-', color.border);\n }\n\n this._color = color;\n }\n\n public set textColor(textColor) {\n this._color = this._color ? this._color : {};\n this._color.text = this.getQualifiedValue('text-', textColor);\n }\n\n public set bgColor(bgColor) {\n this._color = this._color ? this._color : {};\n this._color.bg = this.getQualifiedValue('bg-', bgColor);\n }\n\n public set borderColor(borderColor) {\n this._color = this._color ? this._color : {};\n this._color.border = this.getQualifiedValue('border-', borderColor);\n }\n\n public get h(): string {\n return this._h;\n }\n\n public set h(h: string) {\n this._h = this.getQualifiedValue('h-', h);\n }\n\n public get w(): string {\n return this._w;\n }\n\n public set w(w: string) {\n this._w = this.getQualifiedValue('w-', w);\n }\n\n public get p(): string {\n return this._p;\n }\n\n public set p(p: string) {\n this._p = this.getQualifiedValue('p-', p);\n }\n\n public get px(): string {\n return this._px;\n }\n\n public set px(px: string) {\n this._px = this.getQualifiedValue('px-', px);\n }\n\n public get py(): string {\n return this._py;\n }\n\n public set py(py: string) {\n this._py = this.getQualifiedValue('py-', py);\n }\n\n public get pt(): string {\n return this._pt;\n }\n\n public set pt(pt: string) {\n this._pt = this.getQualifiedValue('pt-', pt);\n }\n\n public get pr(): string {\n return this._pr;\n }\n\n public set pr(pr: string) {\n this._pr = this.getQualifiedValue('pr-', pr);\n }\n\n public get pb(): string {\n return this._pb;\n }\n\n public set pb(pb: string) {\n this._pb = this.getQualifiedValue('pb-', pb);\n }\n\n public get pl(): string {\n return this._pl;\n }\n\n public set pl(pl: string) {\n this._pl = this.getQualifiedValue('pl-', pl);\n }\n\n public get m(): string {\n return this._m;\n }\n\n public set m(m: string) {\n this._m = this.getQualifiedValue('m-', m);\n }\n\n public get mx(): string {\n return this._mx;\n }\n\n public set mx(mx: string) {\n this._mx = this.getQualifiedValue('mx-', mx);\n }\n\n public get my(): string {\n return this._my;\n }\n\n public set my(my: string) {\n this._my = this.getQualifiedValue('my-', my);\n }\n\n public get mt(): string {\n return this._mt;\n }\n\n public set mt(mt: string) {\n this._mt = this.getQualifiedValue('mt-', mt);\n }\n\n public get mr(): string {\n return this._mr;\n }\n\n public set mr(mr: string) {\n this._mr = this.getQualifiedValue('mr-', mr);\n }\n\n public get mb(): string {\n return this._mb;\n }\n\n public set mb(mb: string) {\n this._mb = this.getQualifiedValue('mb-', mb);\n }\n\n public get ml(): string {\n return this._ml;\n }\n\n public set ml(ml: string) {\n this._ml = this.getQualifiedValue('ml-', ml);\n }\n\n public get border(): string {\n return this._border;\n }\n\n public set border(border: string) {\n this._border = this.getQualifiedValue('border', border);\n }\n\n public get shadow(): string {\n return this._shadow;\n }\n\n public set shadow(shadow: string) {\n this._shadow = this.getQualifiedValue('shadow', shadow);\n }\n\n public get rounded(): string {\n return this._rounded;\n }\n\n public set rounded(rounded: string) {\n this._rounded = this.getQualifiedValue('rounded', rounded);\n }\n\n public get font(): string {\n return this._font;\n }\n\n public set font(font: string) {\n this._font = this.getQualifiedValue('font', font);\n }\n\n public get text(): string {\n return this._text;\n }\n\n public set text(text: string) {\n this._text = this.getQualifiedValue('text', text);\n }\n\n public get breakWords(): string {\n return this._breakWords;\n }\n\n public set breakWords(breakWords: string) {\n this._breakWords = this.getQualifiedValue('break', breakWords);\n }\n\n public get overflow(): string {\n return this._overflow;\n }\n\n public set overflow(overflow: string) {\n this._overflow = this.getQualifiedValue('overflow', overflow);\n }\n\n public get position(): string {\n return this._position;\n }\n\n public set position(position: string) {\n this._position = position;\n }\n\n public get justifyContent(): string {\n return this._justifyContent;\n }\n\n public set justifyContent(justifyContent: string) {\n this._justifyContent = this.getQualifiedValue('justify', justifyContent);\n }\n\n public get cursor(): string {\n return this._cursor;\n }\n\n public set cursor(cursor: string) {\n this._cursor = this.getQualifiedValue('cursor', cursor);\n }\n\n public get fontCase(): string {\n return this._fontCase;\n }\n\n public set fontCase(fontCase: string) {\n this._fontCase = this.getQualifiedValue('', fontCase);\n }\n\n public load(injector: Injector, style: string, defaultValue = null, inheritanceStyles = []) {\n let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});\n\n defaultValue = defaultValue ? defaultValue : {};\n\n let requestedStyle = <NgtStylizableService>injector.get(style + 'Style', defaultValue);\n\n this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));\n\n inheritanceStyles.forEach(style => {\n let requestedStyle = <NgtStylizableService>injector.get(style, {});\n\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\n });\n\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\n }\n\n public compile(styles: Array<string>) {\n return styles\n .map((style: string) => this.getQualifiedStyle(style))\n .join(' ');\n }\n\n private loadObjectProperties(targetObject, object, properties: Array<string>) {\n properties.forEach((key) => {\n if (typeof (object[key]) === 'object') {\n targetObject[key] = targetObject[key] ? targetObject[key] : {};\n targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));\n } else {\n targetObject[key] = object[key];\n }\n });\n\n return targetObject;\n }\n\n private getQualifiedStyle(style: string) {\n if (!style.includes('color')) {\n return this['_' + style];\n }\n\n switch (style) {\n case 'color.bg': return this._color.bg;\n case 'color.text': return this._color.text;\n case 'color.border': return this._color.border;\n }\n }\n\n private getAllowedKeys(style: NgtStylizableService) {\n let keys = Object.keys(style);\n\n if (Array.isArray(keys)) {\n return keys.filter(key => [\n 'color',\n 'h',\n 'w',\n 'p',\n 'px',\n 'py',\n 'pt',\n 'pr',\n 'pb',\n 'pl',\n 'm',\n 'mx',\n 'my',\n 'mt',\n 'mr',\n 'mb',\n 'ml',\n 'border',\n 'shadow',\n 'rounded',\n 'font',\n 'text',\n 'breakWords',\n 'overflow',\n 'position',\n 'justifyContent',\n 'cursor',\n 'fontCase'\n ].includes(key));\n }\n }\n\n private getQualifiedValue(requiredPrefix: string, value: string) {\n value.split(' ').forEach((item) => {\n if (!item.includes(requiredPrefix)) {\n throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');\n }\n });\n\n return value;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Directive({\n selector: '[ngt-stylizable]'\n})\nexport class NgtStylizableDirective {\n private ngtStylizableService: NgtStylizableService;\n\n public constructor() {\n this.ngtStylizableService = new NgtStylizableService();\n }\n\n public getNgtStylizableService() {\n return this.ngtStylizableService;\n }\n\n public get color() {\n return this.ngtStylizableService.color;\n }\n\n @Input('color')\n public set color(color) {\n this.ngtStylizableService.color = color;\n }\n\n @Input('color.text')\n public set textColor(textColor: string) {\n this.ngtStylizableService.textColor = textColor;\n }\n\n @Input('color.bg')\n public set bgColor(bgColor: string) {\n this.ngtStylizableService.bgColor = bgColor;\n }\n\n @Input('color.border')\n public set borderColor(borderColor) {\n this.ngtStylizableService.borderColor = borderColor;\n }\n\n public get h(): string {\n return this.ngtStylizableService.h;\n }\n\n @Input('h')\n public set h(h: string) {\n this.ngtStylizableService.h = h;\n }\n\n public get w(): string {\n return this.ngtStylizableService.w;\n }\n\n @Input('w')\n public set w(w: string) {\n this.ngtStylizableService.w = w;\n }\n\n public get p(): string {\n return this.ngtStylizableService.p;\n }\n\n @Input('p')\n public set p(p: string) {\n this.ngtStylizableService.p = p;\n }\n\n public get px(): string {\n return this.ngtStylizableService.px;\n }\n\n @Input('px')\n public set px(px: string) {\n this.ngtStylizableService.px = px;\n }\n\n public get py(): string {\n return this.ngtStylizableService.py;\n }\n\n @Input('py')\n public set py(py: string) {\n this.ngtStylizableService.py = py;\n }\n\n public get pt(): string {\n return this.ngtStylizableService.pt;\n }\n\n @Input('pt')\n public set pt(pt: string) {\n this.ngtStylizableService.pt = pt;\n }\n\n public get pr(): string {\n return this.ngtStylizableService.pr;\n }\n\n @Input('pr')\n public set pr(pr: string) {\n this.ngtStylizableService.pr = pr;\n }\n\n public get pb(): string {\n return this.ngtStylizableService.pb;\n }\n\n @Input('pb')\n public set pb(pb: string) {\n this.ngtStylizableService.pb = pb;\n }\n\n public get pl(): string {\n return this.ngtStylizableService.pl;\n }\n\n @Input('pl')\n public set pl(pl: string) {\n this.ngtStylizableService.pl = pl;\n }\n\n public get m(): string {\n return this.ngtStylizableService.m;\n }\n\n @Input('m')\n public set m(m: string) {\n this.ngtStylizableService.m = m;\n }\n\n public get mx(): string {\n return this.ngtStylizableService.mx;\n }\n\n @Input('mx')\n public set mx(mx: string) {\n this.ngtStylizableService.mx = mx;\n }\n\n public get my(): string {\n return this.ngtStylizableService.my;\n }\n\n @Input('my')\n public set my(my: string) {\n this.ngtStylizableService.my = my;\n }\n\n public get mt(): string {\n return this.ngtStylizableService.mt;\n }\n\n @Input('mt')\n public set mt(mt: string) {\n this.ngtStylizableService.mt = mt;\n }\n\n public get mr(): string {\n return this.ngtStylizableService.mr;\n }\n\n @Input('mr')\n public set mr(mr: string) {\n this.ngtStylizableService.mr = mr;\n }\n\n public get mb(): string {\n return this.ngtStylizableService.mb;\n }\n\n @Input('mb')\n public set mb(mb: string) {\n this.ngtStylizableService.mb = mb;\n }\n\n public get ml(): string {\n return this.ngtStylizableService.ml;\n }\n\n @Input('ml')\n public set ml(ml: string) {\n this.ngtStylizableService.ml = ml;\n }\n\n public get border(): string {\n return this.ngtStylizableService.border;\n }\n\n @Input('border')\n public set border(border: string) {\n this.ngtStylizableService.border = border;\n }\n\n public get shadow(): string {\n return this.ngtStylizableService.shadow;\n }\n\n @Input('shadow')\n public set shadow(shadow: string) {\n this.ngtStylizableService.shadow = shadow;\n }\n\n public get rounded(): string {\n return this.ngtStylizableService.rounded;\n }\n\n @Input('rounded')\n public set rounded(rounded: string) {\n this.ngtStylizableService.rounded = rounded;\n }\n\n public get font(): string {\n return this.ngtStylizableService.font;\n }\n\n @Input('font')\n public set font(font: string) {\n this.ngtStylizableService.font = font;\n }\n\n public get text(): string {\n return this.ngtStylizableService.text;\n }\n\n @Input('text')\n public set text(text: string) {\n this.ngtStylizableService.text = text;\n }\n\n public get breakWords(): string {\n return this.ngtStylizableService.breakWords;\n }\n\n @Input('breakWords')\n public set breakWords(breakWords: string) {\n this.ngtStylizableService.breakWords = breakWords;\n }\n\n public get overflow(): string {\n return this.ngtStylizableService.overflow;\n }\n\n @Input('overflow')\n public set overflow(overflow: string) {\n this.ngtStylizableService.overflow = overflow;\n }\n\n public get position(): string {\n return this.ngtStylizableService.position;\n }\n\n @Input('position')\n public set position(position: string) {\n this.ngtStylizableService.position = position;\n }\n\n public get justifyContent(): string {\n return this.ngtStylizableService.justifyContent;\n }\n\n @Input('justifyContent')\n public set justifyContent(justifyContent: string) {\n this.ngtStylizableService.justifyContent = justifyContent;\n }\n\n public get cursor(): string {\n return this.ngtStylizableService.cursor;\n }\n\n @Input('cursor')\n public set cursor(cursor: string) {\n this.ngtStylizableService.cursor = cursor;\n }\n\n public get fontCase(): string {\n return this.ngtStylizableService.fontCase;\n }\n\n @Input('fontCase')\n public set fontCase(fontCase: string) {\n this.ngtStylizableService.fontCase = fontCase;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtStylizableDirective } from './ngt-stylizable.directive';\n\n@NgModule({\n declarations: [NgtStylizableDirective],\n exports: [NgtStylizableDirective],\n imports: [\n CommonModule\n ]\n})\nexport class NgtStylizableModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-shining',\n templateUrl: './ngt-shining.component.html',\n styleUrls: ['./ngt-shining.component.css']\n})\nexport class NgtShiningComponent {\n @Input() public shiningWidth: NgtShiningWidth = NgtShiningWidth.xs;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtShining', {\n rounded: 'rounded-none',\n });\n }\n}\n\nexport enum NgtShiningWidth {\n xs = 'xs',\n sm = 'sm',\n lg = 'lg',\n xl = 'xl',\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningComponent } from './ngt-shining.component';\n\n@NgModule({\n declarations: [NgtShiningComponent],\n exports: [NgtShiningComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtShiningModule { }\n","import { EventEmitter, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Based on https://stackoverflow.com/a/37786142/8055997\n */\nexport abstract class NgtBaseNgModel implements ControlValueAccessor {\n public formControl: AbstractControl;\n public formContainer: ControlContainer;\n\n public onValueChangeEvent = new EventEmitter;\n\n private ignore = '{{{{INITIAL_VALUE_IGNORE}}}}';\n private _value: any = this.ignore;\n\n public constructor() {\n this.registerOnTouched(this.onTouched);\n }\n\n public onValueChange() {\n return this.onValueChangeEvent;\n }\n\n public get value(): any {\n return this._value != this.ignore ? this._value : null;\n };\n\n public set value(v: any) {\n if (!this.valuesAreEquals(v, this._value)) {\n this._value = v;\n this.onChange(v);\n\n if (this.formControl) {\n this.formControl.markAsDirty();\n }\n\n this.change(v);\n }\n }\n\n public writeValue(value: any) {\n if (value == this.ignore || this.valuesAreEquals(value, this._value)) {\n return;\n }\n\n this._value = value;\n this.onChange(value);\n this.change(value);\n }\n\n public onChange = (_) => { };\n\n public change(v) { };\n\n public onTouched = () => {\n if (this.formControl) {\n this.formControl.markAsTouched();\n }\n };\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public isValid(): boolean {\n if (this.formControl) {\n this.formControl.markAsDirty();\n\n return this.formControl.valid;\n }\n }\n\n public markAsPristine() {\n if (this.formControl) {\n this.formControl.markAsPristine();\n }\n }\n\n public markAsDirty() {\n if (this.formControl) {\n this.formControl.markAsDirty();\n }\n }\n\n public setSubmitted(submitted: boolean) {\n if (this.formContainer) {\n this.formContainer['submitted'] = submitted;\n }\n }\n\n private valuesAreEquals(value1, value2) {\n if (Array.isArray(value1)) {\n value1 = JSON.stringify(value1);\n }\n\n if (Array.isArray(value2)) {\n value2 = JSON.stringify(value2);\n }\n\n return value1 === value2;\n }\n}\n\nexport function NgtMakeProvider(type: any) {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => type),\n multi: true\n };\n}\n","export function getEnumFromString(string: string, enumClass: any) {\n if (string && enumClass && enumClass[string.toUpperCase()]) {\n return enumClass[string.toUpperCase()];\n }\n\n throw new Error('Invalid enum [' + string + ']!');\n}\n","import { NgForm } from '@angular/forms';\n\nexport function resetNgForm(ngForm: NgForm) {\n ngForm.resetForm();\n setTimeout(() => {\n ngForm.reset();\n }, 500);\n}\n\nexport function triggerNgFormSubmit(ngForm: NgForm) {\n ngForm.onSubmit(new Event(\"submit\"));\n}\n\nexport function isValidNgForm(ngForm: NgForm) {\n triggerNgFormSubmit(ngForm);\n\n return ngForm.valid;\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { Observable, zip } from 'rxjs';\n\nexport function getIdFromUri(route: ActivatedRoute, routeIdentifier: string) {\n return Observable.create((observer) => {\n zip(route.parent.params, route.params)\n .subscribe((results) => {\n let params = { ...results[0], ...results[1] };\n\n observer.next(params[routeIdentifier]);\n });\n });\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtHttpFormService {\n abstract loadResourceById(resource: any, resourceId: any): Observable<any>;\n\n abstract saveResource(resource: any): Observable<any>;\n}\n","import {Component, EventEmitter, Host, Input, OnDestroy, OnInit, Optional, Output} from '@angular/core';\nimport {ControlContainer, NgForm} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Observable, Subscription} from 'rxjs';\n\nimport {isValidNgForm} from '../../helpers/form/form';\nimport {getIdFromUri} from '../../helpers/routing/route';\nimport {NgtHttpFormService} from '../../services/http/ngt-http-form.service';\n\n@Component({\n selector: 'ngt-form',\n templateUrl: './ngt-form.component.html',\n})\nexport class NgtFormComponent implements OnInit, OnDestroy {\n @Input() public guessFormState: boolean = true;\n @Input() public message: string = '';\n @Input() public routeIdentifier: string = 'id';\n @Input() public resource: any;\n @Input() public customLayout: boolean;\n\n @Output() public static onSubmitInvalidForm: EventEmitter<NgForm> = new EventEmitter;\n\n @Output() public onCreating: EventEmitter<any> = new EventEmitter;\n @Output() public onEditing: EventEmitter<any> = new EventEmitter;\n @Output() public onLoadingChange: EventEmitter<boolean> = new EventEmitter;\n @Output() public onShiningChange: EventEmitter<boolean> = new EventEmitter;\n @Output() public setupComponent: EventEmitter<any> = new EventEmitter;\n @Output() public onResourceLoadingError: EventEmitter<string> = new EventEmitter;\n\n public formState: NgtFormState;\n public uriId: any;\n\n private loading: boolean;\n private shining: boolean;\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @Host()\n public ngForm: NgForm,\n public router: Router,\n public route: ActivatedRoute,\n private ngtHttpFormService: NgtHttpFormService\n ) {\n }\n\n public ngOnInit() {\n if (this.guessFormState) {\n this.subscriptions.push(\n this.determineFormState().subscribe(() => {\n this.setupComponent.emit();\n })\n );\n } else {\n this.setupComponent.emit();\n }\n\n this.subscriptions.push(\n this.ngForm.ngSubmit.subscribe(() => {\n if (!this.ngForm.valid) {\n NgtFormComponent.onSubmitInvalidForm.emit(this.ngForm);\n }\n })\n );\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public isCreating() {\n return this.formState === NgtFormState.CREATING;\n }\n\n public isEditing() {\n return this.formState === NgtFormState.EDITING;\n }\n\n public isLoading() {\n return this.loading;\n }\n\n public isShining() {\n return this.shining;\n }\n\n public canShowValidationMessage() {\n return this.formContainer &&\n this.formContainer['submitted'] &&\n this.formContainer.status != 'VALID' &&\n this.formContainer.status != 'DISABLED';\n }\n\n public setShining(shining: boolean) {\n this.shining = shining;\n this.onShiningChange.emit(this.shining);\n }\n\n public setLoading(loading: boolean) {\n this.loading = loading;\n this.onLoadingChange.emit(this.loading);\n }\n\n public setFormState(state: NgtFormState, triggerChange: boolean = true) {\n this.formState = state;\n\n if (triggerChange) {\n this.triggerFormStateChange();\n }\n }\n\n public getFormState() {\n return this.formState;\n }\n\n public triggerFormStateChange() {\n if (this.isEditing()) {\n this.triggerFormEditing();\n } else if (this.isCreating()) {\n this.triggerFormCreating();\n }\n }\n\n public formHasChanges() {\n return this.ngForm.dirty;\n }\n\n public saveResource() {\n return new Observable((observer) => {\n if (isValidNgForm(this.ngForm)) {\n this.setLoading(true);\n\n this.subscriptions.push(\n this.ngtHttpFormService.saveResource(this.resource)\n .subscribe((response: any) => {\n this.setLoading(false);\n observer.next(response);\n observer.complete();\n })\n );\n } else {\n observer.error();\n }\n });\n }\n\n protected triggerFormCreating() {\n this.onCreating.emit();\n }\n\n protected triggerFormEditing() {\n if (this.uriId && this.resource) {\n this.setLoading(true);\n this.setShining(true);\n\n this.subscriptions.push(\n this.ngtHttpFormService.loadResourceById(this.resource, this.uriId)\n .subscribe(\n (resource: any) => {\n this.setLoading(false);\n this.setShining(false);\n\n this.onEditing.emit(resource);\n\n setTimeout(() => this.ngForm.form.markAsPristine(), 1500);\n },\n (error) => {\n this.setLoading(false);\n this.setShining(false);\n\n this.onResourceLoadingError.emit(error);\n }\n )\n );\n\n return;\n }\n\n this.onEditing.emit(null);\n }\n\n private determineFormState() {\n return new Observable((observer) => {\n this.subscriptions.push(\n getIdFromUri(this.route, this.routeIdentifier).subscribe((id: string) => {\n this.uriId = id;\n\n if (this.uriId) {\n this.setFormState(NgtFormState.EDITING);\n } else {\n this.setFormState(NgtFormState.CREATING);\n }\n\n observer.next();\n })\n );\n });\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtFormState {\n CREATING = 'CREATING',\n EDITING = 'EDITING'\n};\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-checkbox',\n templateUrl: './ngt-checkbox.component.html',\n styleUrls: ['./ngt-checkbox.component.css'],\n providers: [\n NgtMakeProvider(NgtCheckboxComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ],\n animations: [\n trigger('slideLeftToRight', [\n state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),\n transition(':enter', [\n animate(200)\n ])\n ]),\n\n trigger('slideRightToLeft', [\n state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),\n transition(':enter', [\n animate(200)\n ])\n ]),\n ]\n})\nexport class NgtCheckboxComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public isClickDisabled: boolean = false;\n @Input() public name: string;\n @Input() public mode: NgtCheckboxMode = NgtCheckboxMode.DEFAULT;\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Self() @Optional()\n private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\n h: 'h-6',\n w: 'w-6',\n text: 'text-sm',\n fontCase: '',\n color: {\n bg: 'bg-gray-500',\n text: 'text-gray-500',\n border: 'border-gray-500',\n }\n });\n }\n\n public ngAfterViewInit() {\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\n this.onNativeChange(this.element.nativeElement.checked);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value) {\n if (this.hasChangesBetweenModels()) {\n this.element.nativeElement.checked = value;\n }\n }\n\n public onNativeChange(value) {\n if (this.hasChangesBetweenModels()) {\n this.value = value;\n }\n }\n\n public hasChangesBetweenModels() {\n return this.element.nativeElement.checked !== this.value;\n }\n\n public isToggleMode() {\n return this.mode === NgtCheckboxMode.TOGGLE;\n }\n\n public isDefaultMode() {\n return this.mode === NgtCheckboxMode.DEFAULT;\n }\n\n public isRadioMode() {\n return this.mode === NgtCheckboxMode.RADIO;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.mode) {\n this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);\n }\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtCheckboxMode {\n DEFAULT = 'DEFAULT',\n TOGGLE = 'TOGGLE',\n RADIO = 'RADIO',\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SvgIconComponent } from 'angular-svg-icon';\n\n@Component({\n selector: 'ngt-svg',\n templateUrl: './ngt-svg.component.html',\n styleUrls: ['./ngt-svg.component.css'],\n host: {\n class: 'flex justify-center'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtSvgComponent implements AfterViewChecked, OnChanges {\n @Input() public src: string;\n @Input() public class: string = '';\n\n @ViewChild(SvgIconComponent, { static: true, read: ElementRef }) private svgIconElement: ElementRef;\n\n private appliedClass = null;\n\n public ngAfterViewChecked() {\n this.checkClassChange();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.appliedClass = null;\n this.checkClassChange();\n }\n\n private checkClassChange() {\n if (this.appliedClass !== this.class) {\n if (this.svgIconElement && this.svgIconElement.nativeElement) {\n let svgElement = <SVGAElement>this.svgIconElement.nativeElement.querySelector('svg');\n\n if (svgElement) {\n while (svgElement.classList.length > 0) {\n svgElement.classList.remove(svgElement.classList.item(0));\n }\n\n svgElement.classList.add('fill-current');\n svgElement.classList.add('self-center');\n\n new String(this.class).trim().split(' ').forEach(className => {\n if (className) {\n svgElement.classList.add(className);\n }\n });\n\n this.appliedClass = this.class;\n }\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtSvgComponent } from './ngt-svg.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@NgModule({\n declarations: [NgtSvgComponent],\n exports: [NgtSvgComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule\n ]\n})\nexport class NgtSvgModule { }\n","import { Component, ElementRef, Injector, Input, Optional, Self, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-helper',\n templateUrl: './ngt-helper.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtHelperComponent {\n @ViewChild('dropdownRef', { static: true }) public dropdownRef: ElementRef;\n\n @Input() public helpTextColor: string;\n @Input() public helpText: string;\n @Input() public helpTitle: string;\n @Input() public icon: string;\n @Input() public iconSize: string;\n @Input() public iconColor: string;\n @Input() public iconTitle: string;\n @Input() public tooltipSize: string = 'max-w-xs';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n @Optional()\n public ngtTranslateService: NgtTranslateService,\n private injector: Injector,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtHelper', {\n text: 'text-sm',\n fontCase: '',\n px: 'px-2',\n color: {\n text: 'text-black',\n bg: 'bg-gray-200'\n }\n });\n }\n}\n","export function uuid() {\n return [\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9)\n ].join('_');\n};\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: '[ngt-dropdown-container]',\n templateUrl: './ngt-dropdown-container.component.html',\n styleUrls: ['./ngt-dropdown-container.component.css']\n})\nexport class NgtDropdownContainerComponent {\n @Output() public onActiveDropdownChange = new EventEmitter();\n\n public setActiveDropdown(activeDropdown) {\n this.onActiveDropdownChange.emit(activeDropdown);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\n\n@Component({\n selector: 'ngt-dropdown',\n templateUrl: './ngt-dropdown.component.html',\n styleUrls: ['./ngt-dropdown.component.css'],\n animations: [\n trigger('openClose', [\n state('open', style({ opacity: 1, transform: 'translateY(0px)' })),\n state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),\n transition('closed => open', [\n animate(300)\n ]),\n ]),\n ]\n})\nexport class NgtDropdownComponent implements OnDestroy {\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\n\n @Input() public autoXReverse: boolean;\n @Input() public autoYReverse: boolean = true;\n @Input() public reverseXPosition: boolean;\n @Input() public reverseYPosition: boolean;\n @Input() public closeOnClick: boolean;\n @Input() public closeTimeout: number = 1000;\n @Input() public openMethod: NgtDropdownOpenMethod = NgtDropdownOpenMethod.HOVER;\n\n @Output() public onToggle: EventEmitter<boolean> = new EventEmitter();\n @Output() public onHostClick: EventEmitter<any> = new EventEmitter();\n\n public name: string = uuid();\n public isOpen: boolean;\n public isYPositionReversed: boolean = false;\n public isXPositionReversed: boolean = false;\n public isBindingYPosition: boolean = true;\n public isBindingXPosition: boolean = true;\n\n private subscriptions: Array<Subscription> = [];\n private containerXPosition: number;\n private containerYPosition: number;\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtDropdownContainer: NgtDropdownContainerComponent\n ) {\n if (this.ngtDropdownContainer) {\n this.subscriptions.push(\n this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown: NgtDropdownComponent) => {\n this.isOpen = (activeDropdown.name === this.name);\n })\n );\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.openMethod) {\n this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public open(): void {\n this.isOpen = true;\n this.ngtDropdownContainer?.setActiveDropdown(this);\n }\n\n public closeOnSelectOption(): void {\n if (this.closeOnClick) {\n this.close();\n }\n }\n\n public close(): void {\n this.isOpen = false;\n this.containerXPosition = null;\n this.containerYPosition = null;\n }\n\n public toggle(): void {\n setTimeout(() => {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n\n this.onToggle.emit(this.isOpen);\n });\n }\n\n public onHover(host: any, container: any): void {\n if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {\n this.open();\n this.watchHover(host, container);\n }\n }\n\n public onClick(event: Event, host: any, container: any): void {\n this.onHostClick?.emit();\n\n if (this.isClickMethod()) {\n event.preventDefault();\n event.stopPropagation();\n\n this.toggle();\n }\n\n if (this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK) {\n this.watchHover(host, container);\n }\n }\n\n public onRightClick(event: Event): void {\n if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n }\n\n public shouldReverseXPosition(): boolean {\n if (!this.autoXReverse || this.reverseXPosition !== undefined) {\n return this.reverseXPosition;\n }\n\n if (this.isOpen) {\n this.bindContainerXPosition();\n\n this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);\n\n return !this.isBindingXPosition && this.isXPositionReversed;\n }\n }\n\n public shouldReverseYPosition(): boolean {\n if (!this.autoYReverse || this.reverseYPosition !== undefined) {\n return this.reverseYPosition;\n }\n\n if (this.isOpen) {\n this.bindContainerYPosition();\n\n this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);\n\n return !this.isBindingYPosition && this.isYPositionReversed;\n }\n }\n\n private bindContainerXPosition(): void {\n if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {\n this.isBindingXPosition = true;\n\n setTimeout(() => {\n this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x\n + this.containerRef.nativeElement.offsetWidth;\n\n this.isBindingXPosition = false;\n });\n }\n }\n\n private bindContainerYPosition(): void {\n if (!this.containerYPosition && this.containerRef?.nativeElement.offsetHeight) {\n this.isBindingYPosition = true;\n\n setTimeout(() => {\n this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y\n + this.containerRef.nativeElement.offsetHeight;\n\n this.isBindingYPosition = false;\n });\n }\n }\n\n private watchHover(host: any, container: any): void {\n const interval = setInterval(() => {\n if (!host || !container || !this.isInHover(host, container)) {\n this.close();\n clearInterval(interval);\n }\n }, this.closeTimeout);\n }\n\n private isInHover(host: any, container: any): boolean {\n return host.parentElement.querySelector(':hover') == host ||\n container.parentElement.querySelector(':hover') == container;\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n\n private isClickMethod(): boolean {\n return this.openMethod == NgtDropdownOpenMethod.CLICK\n || this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK;\n }\n}\n\nexport enum NgtDropdownOpenMethod {\n CLICK = 'CLICK',\n POPOVER_CLICK = 'POPOVER_CLICK',\n RIGHT_CLICK = 'RIGHT_CLICK',\n HOVER = 'HOVER'\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtDropdownComponent } from './ngt-dropdown.component';\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\n\n@NgModule({\n declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],\n exports: [NgtDropdownComponent, NgtDropdownContainerComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtDropdownModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgtSvgModule } from \"../ngt-svg/ngt-svg.module\";\nimport { NgtHelperComponent } from \"./ngt-helper.component\";\nimport { NgtDropdownModule } from '../ngt-dropdown/ngt-dropdown.module';\n\n@NgModule({\n declarations: [NgtHelperComponent],\n exports: [NgtHelperComponent],\n imports: [\n CommonModule,\n NgtSvgModule,\n NgtDropdownModule\n ]\n})\nexport class NgtHelperModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtCheckboxComponent } from './ngt-checkbox.component';\nimport {NgtHelperModule} from \"../ngt-helper/ngt-helper.module\";\n\n@NgModule({\n declarations: [NgtCheckboxComponent],\n exports: [NgtCheckboxComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n NgtHelperModule,\n ]\n})\nexport class NgtCheckboxModule { }\n","import { Component, Optional, SkipSelf } from '@angular/core';\nimport { NgtTranslateService } from '../../../services/http/ngt-translate.service';\nimport { NgtFormComponent } from '../ngt-form.component';\n\n@Component({\n selector: 'ngt-form-validation-message',\n templateUrl: './ngt-form-validation-message.component.html',\n})\nexport class NgtFormValidationMessageComponent {\n public constructor(\n @Optional() @SkipSelf()\n public ngtForm: NgtFormComponent,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n if (!ngtForm) {\n console.error('The ngt-form-validation-message must be inside a ngt-form!');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtFormValidationMessageComponent } from './ngt-form-validation-message.component';\n\n@NgModule({\n declarations: [NgtFormValidationMessageComponent],\n exports: [NgtFormValidationMessageComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtFormValidationMessageModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtFormValidationMessageModule } from './ngt-form-validation-message/ngt-form-validation-message.module';\nimport { NgtFormComponent } from './ngt-form.component';\n\n@NgModule({\n declarations: [NgtFormComponent],\n exports: [NgtFormComponent],\n imports: [\n CommonModule,\n NgtFormValidationMessageModule\n ]\n})\nexport class NgtFormModule { }\n","import { Component, Input, Optional } from '@angular/core';\nimport { ControlContainer, FormControl } from '@angular/forms';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\n\n@Component({\n selector: 'ngt-validation',\n templateUrl: './ngt-validation.component.html',\n styleUrls: ['./ngt-validation.component.css']\n})\nexport class NgtValidationComponent {\n @Input() public control: FormControl;\n @Input() public container: ControlContainer;\n @Input() public minValue: number;\n @Input() public minLength: number;\n\n public constructor(\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtValidationComponent } from './ngt-validation.component';\n\n@NgModule({\n declarations: [NgtValidationComponent],\n exports: [NgtValidationComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtValidationModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { AbstractControl, AsyncValidatorFn, ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../public-api';\nimport {\n NgtHttpFindExistingResourceInterface,\n NgtHttpFindExistingResourceResponse,\n NgtHttpResourceService,\n} from '../../services/http/ngt-http-resource.service';\nimport { NgtHttpValidationResponse, NgtHttpValidationService } from '../../services/http/ngt-http-validation.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\nlet Inputmask = require('inputmask');\n\nexport enum NgtInputMaskEnum {\n CPF = 'cpf',\n CNPJ = 'cnpj',\n CPF_CNPJ = 'cnpj-cpf',\n CPF_CNPJ_RUT = 'cnpj-cpf-rut',\n DECIMAL = 'decimal',\n CELLPHONE = 'cellphone',\n PLATE = 'plate',\n CEP = 'cep',\n INTEGER = 'integer',\n TIME = 'time',\n INTERNATIONAL_PHONE = 'international-phone'\n}\n\n@Component({\n selector: 'ngt-input',\n templateUrl: './ngt-input.component.html',\n styleUrls: ['./ngt-input.component.css'],\n providers: [\n NgtMakeProvider(NgtInputComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtInputComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\n\n // Visual\n @Input() public label: string;\n @Input() public placeholder: string = '';\n @Input() public shining: boolean;\n @Input() public loading: boolean;\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n @Input() public innerLeftIcon: string;\n @Input() public innerLeftIconColor: string;\n @Input() public innerRightIcon: string;\n @Input() public innerRightIconColor: string;\n @Input() public decimalMaskPrecision: number = 2;\n @Input() public showCharactersLength: boolean = false;\n\n //Behavior\n @Input() public isDisabled: boolean;\n @Input() public isReadonly: boolean;\n @Input() public showRoundedIcon: boolean;\n @Input() public type: string = 'text';\n @Input() public name: string;\n @Input() public mask: string;\n @Input() public focus: boolean;\n @Input() public allowClear: boolean;\n @Input() public jit: boolean;\n\n //Validations\n @Input() public findExistingResource: NgtHttpFindExistingResourceInterface;\n @Input() public allowPhoneValidation: boolean;\n @Input() public isRequired: boolean;\n @Input() public uniqueResource: any;\n @Input() public minValue: number;\n @Input() public maxValue: number;\n @Input() public maxLength: number;\n @Input() public minLength: number;\n @Input() public match: string;\n @Input() public multipleOf: number;\n @Input() public externalServerDependency: boolean;\n\n @Output() public onClickLeftIcon: EventEmitter<any> = new EventEmitter<any>();\n @Output() public onClickRightIcon: EventEmitter<any> = new EventEmitter<any>();\n @Output() public validatePhoneResult: EventEmitter<any> = new EventEmitter<any>();\n\n public maxTotalCharsCount: number;\n public existingResourceId: string;\n public componentReady: boolean;\n public inputProperties: {\n htmlType?: string;\n length?: number;\n } = {};\n\n public ngtStyle: NgtStylizableService;\n\n private emailValidatorTimeout: any;\n private phoneValidatorTimeout: any;\n private uniqueValidatorTimeout: any;\n private searchExistingResourceTimeout: any;\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private renderer: Renderer2,\n @Optional() @SkipSelf()\n private ngtValidationService: NgtHttpValidationService,\n @Optional() @SkipSelf()\n private ngtResourceService: NgtHttpResourceService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtInput', {\n h: 'h-12',\n rounded: 'rounded',\n text: 'text-sm',\n fontCase: '',\n color: {\n border: 'border-gray-400 focus:border-gray-700',\n bg: 'bg-bg-white focus:bg-white',\n text: 'text-gray-800'\n }\n });\n }\n\n public setFocus() {\n setTimeout(() => {\n this.element.nativeElement.focus();\n }, 200);\n }\n\n public hasFocus(): boolean {\n return document.activeElement === this.element.nativeElement;\n }\n\n public clearInput(event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n\n this.element.nativeElement.value = '';\n this.value = '';\n\n this.markAsPristine();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.setupMasks(changes.mask ? changes.mask.previousValue : null);\n\n if (changes.match || changes.isRequired || changes.type || changes.mask || changes.minValue) {\n this.updateValidations();\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: any) {\n if (value && typeof value === 'string' && this.mask == 'decimal') {\n value = parseFloat(value);\n }\n\n if (!this.getNativeValue()) {\n this.element.nativeElement.value = value;\n }\n\n if (!value && value !== 0) {\n this.clearInput();\n }\n\n let nativeValue = this.getNativeValue();\n\n if (this.mask) {\n let ngModelValue = this.removeMasks(nativeValue);\n\n if (nativeValue && ngModelValue != this.value) {\n this.value = ngModelValue;\n }\n\n if (\n (this.mask == NgtInputMaskEnum.CELLPHONE || this.mask == NgtInputMaskEnum.INTERNATIONAL_PHONE)\n && this.allowPhoneValidation && this.value\n ) {\n this.validatePhone();\n }\n } else {\n let ngModelValue = this.removeMasks(value);\n\n if (value && ngModelValue != value) {\n this.value = ngModelValue;\n }\n\n if (this.value != nativeValue) {\n this.element.nativeElement.value = ngModelValue;\n }\n }\n\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (this.ngtResourceService && this.findExistingResource && this.value) {\n this.searchExistingResource();\n }\n }\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\", this.element.nativeElement);\n } else {\n setTimeout(() => {\n this.componentReady = true;\n setTimeout(() => {\n this.initComponent();\n\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\n this.element.nativeElement.parentElement.parentElement.title = '';\n }\n });\n }, 500);\n }\n }\n\n public getInputPaddings() {\n let paddingClass: string = '';\n\n if (this.innerLeftIcon) {\n paddingClass += 'pl-8 pr-4 ';\n } else {\n paddingClass += 'px-4 ';\n }\n\n if (this.innerRightIcon || this.allowClear || this.type == 'password') {\n if (this.allowClear && this.value && (this.innerRightIcon || this.type == 'password')) {\n paddingClass += 'pr-16 ';\n } else {\n paddingClass += 'pr-8 ';\n }\n }\n\n return paddingClass;\n }\n\n public showPassword() {\n this.element.nativeElement.type = 'text';\n this.changeDetector.detectChanges();\n }\n\n public hidePassword() {\n this.element.nativeElement.type = 'password';\n this.changeDetector.detectChanges();\n }\n\n public getRemainingCharacters() {\n if (this.element?.nativeElement?.value?.length) {\n if ((this.maxTotalCharsCount - this.element.nativeElement.value.length) > 0) {\n return this.maxTotalCharsCount - this.element.nativeElement.value.length;\n } else {\n return 0;\n }\n }\n\n return this.maxTotalCharsCount;\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.focus) {\n this.setFocus();\n }\n\n let watch = \"change\";\n\n if (this.jit) {\n watch += \" keyup keydown keypress\";\n }\n\n watch.split(' ').forEach((evt) => {\n this.renderer.listen(this.element.nativeElement, evt, () => {\n let nativeValue = this.removeMasks(this.getNativeValue());\n\n if (this.value != nativeValue) {\n this.value = nativeValue;\n }\n });\n });\n\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\n // Backspace and delete\n if (event.keyCode != 8 && event.keyCode != 46) {\n event.preventDefault();\n\n return false;\n }\n }\n });\n\n this.maxTotalCharsCount = this.maxLength;\n this.updateValidations();\n\n if (this.match) {\n this.renderer.listen(this.element.nativeElement, \"keypress\", () => {\n this.matchValidator();\n });\n }\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n\n this.setupProperties();\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n const syncValidators = [];\n\n if (this.type == 'email') {\n syncValidators.push(Validators.email);\n }\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n if (this.maxLength) {\n syncValidators.push(Validators.maxLength(this.maxLength));\n }\n\n if (this.minLength) {\n syncValidators.push(Validators.minLength(this.minLength));\n }\n\n if (this.mask == 'cnpj-cpf' || this.mask == 'cnpj-cpf-rut' || this.mask == 'cpf') {\n syncValidators.push(this.cnpjCpfValidator());\n }\n\n if (this.mask == 'time') {\n syncValidators.push(this.timeValidator());\n }\n\n if (this.match) {\n syncValidators.push(this.matchValidator());\n }\n\n if (this.minValue !== undefined) {\n syncValidators.push(this.minValueValidator());\n }\n\n if (this.multipleOf) {\n syncValidators.push(this.multipleOfValidator());\n }\n\n if (this.externalServerDependency) {\n syncValidators.push(this.externalServerDependencyValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n\n const asyncValidators = [];\n\n if (this.uniqueResource) {\n asyncValidators.push(this.uniqueValidator());\n }\n\n if (this.type == 'email' && this.hasEmailServiceValidation()) {\n asyncValidators.push(this.emailValidator());\n }\n\n this.formControl.setAsyncValidators(asyncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private setupMasks(previousMask?: string) {\n if (this.mask != previousMask && !this.mask) {\n Inputmask.remove(this.element.nativeElement);\n\n return this.clearInput();\n }\n\n let masks = {\n [NgtInputMaskEnum.CPF]: '999.999.999-99',\n [NgtInputMaskEnum.CNPJ]: '99.999.999/9999-99',\n [NgtInputMaskEnum.CPF_CNPJ_RUT]: {\n mask: ['999.999.999-99', '99.999.999/9999', '99.999.999/9999-99'],\n keepStatic: true\n },\n [NgtInputMaskEnum.CPF_CNPJ]: {\n mask: ['999.999.999-99', '99.999.999/9999-99'],\n keepStatic: true\n },\n [NgtInputMaskEnum.DECIMAL]: {\n digits: this.decimalMaskPrecision,\n groupSeparator: '.',\n radixPoint: ',',\n autoGroup: true,\n repeat: 16,\n rightAlign: false,\n max: this.maxValue,\n },\n [NgtInputMaskEnum.CELLPHONE]: {\n mask: ['(99) 999-999', '(99) 9999-9999', '(99) 99999-9999'],\n keepStatic: true\n },\n [NgtInputMaskEnum.INTERNATIONAL_PHONE]: {\n mask: ['+999 99 999-999', '+99 (99) 9999-9999', '+99 (99) 99999-9999', '+999 (99) 9999-9999', '+999 (99) 99999-9999'],\n keepStatic: true\n },\n [NgtInputMaskEnum.PLATE]: {\n mask: ['AAA-9999', 'AAA9A99'],\n keepStatic: true\n },\n [NgtInputMaskEnum.CEP]: '99999-999',\n [NgtInputMaskEnum.INTEGER]: {\n max: this.maxValue,\n rightAlign: false\n },\n [NgtInputMaskEnum.TIME]: '99:99',\n };\n\n if (this.mask == NgtInputMaskEnum.DECIMAL) {\n Inputmask(NgtInputMaskEnum.DECIMAL, masks[this.mask]).mask(this.element.nativeElement);\n } else if (this.mask == NgtInputMaskEnum.INTEGER) {\n Inputmask(NgtInputMaskEnum.INTEGER, masks[this.mask]).mask(this.element.nativeElement);\n } else {\n Inputmask(masks[this.mask]).mask(this.element.nativeElement);\n }\n }\n\n private setupProperties() {\n let props = {\n shortText: {\n htmlType: \"text\",\n length: 30\n },\n text: {\n htmlType: \"text\",\n length: 100\n },\n longText: {\n htmlType: \"text\",\n length: 150\n },\n extraLongText: {\n htmlType: \"text\",\n length: 300\n },\n password: {\n htmlType: \"password\",\n length: 150\n },\n email: {\n htmlType: \"text\",\n length: 100,\n },\n decimal: {\n htmlType: \"text\",\n length: 9,\n }\n };\n\n if (this.type in props) {\n this.inputProperties = props[this.type];\n this.maxLength = this.inputProperties.length;\n } else {\n console.warn(\"Type [\" + this.type + \"] is not a valid tail-form-input type!\", this.element.nativeElement);\n }\n }\n\n private minValueValidator() {\n return (control: AbstractControl) => parseFloat(control.value) < this.minValue ? { 'minValue': true } : null;\n }\n\n private multipleOfValidator() {\n return (control: AbstractControl) => {\n if (control.value) {\n return (control.value % this.multipleOf !== 0) ? { 'multipleOf': true } : null;\n }\n };\n }\n\n private externalServerDependencyValidator() {\n // TODO: Validar tempo de requisição\n return (control: AbstractControl) => !control.value ? { 'externalServerDependency': true } : null;\n }\n\n private timeValidator() {\n const regexExp = new RegExp('^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$');\n\n return (control: AbstractControl) => {\n if (control.value) {\n if (regexExp.test(control.value)) {\n return null;\n } else {\n return { 'time': true };\n }\n }\n };\n }\n\n private cnpjCpfValidator() {\n return (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n\n if (control.value && control.value.length <= 11) {\n if (this.validatorCPF(control.value)) {\n return null;\n } else {\n return { 'cpf': true };\n }\n } else if (control.value && control.value.length == 12) {\n return null;\n } else {\n if (control.value && this.validatorCNPJ(control.value)) {\n return null;\n } else {\n return { 'cnpj': true };\n }\n }\n };\n }\n\n private matchValidator() {\n return (control: AbstractControl) => {\n if (this.value != this.match) {\n return { 'match': true };\n } else {\n return null;\n }\n };\n }\n\n private emailValidator(): AsyncValidatorFn {\n if (!this.ngtValidationService) {\n throw new Error(\"In order to use email validation you must provide a implementation for NgtHttpValidationService class!\");\n }\n\n return (control: AbstractControl) => {\n if (this.emailValidatorTimeout) {\n clearTimeout(this.emailValidatorTimeout);\n }\n\n if (this.value) {\n return new Promise((resolve) => {\n this.emailValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.emailValidation(this.value).then((response: NgtHttpValidationResponse) => {\n this.loading = false;\n resolve(response.valid ? null : { 'email': true });\n }).catch(() => {\n this.loading = false;\n resolve(null);\n });\n }, 500);\n });\n }\n\n return Promise.resolve(null);\n };\n }\n\n private async searchExistingResource(): Promise<void> {\n if (this.searchExistingResourceTimeout) {\n clearTimeout(this.searchExistingResourceTimeout);\n }\n\n this.searchExistingResourceTimeout = setTimeout(() => {\n this.loading = true;\n this.findExistingResource.value = this.value;\n\n this.ngtResourceService.findExisting(this.findExistingResource)\n .then((response: NgtHttpFindExistingResourceResponse) => this.existingResourceId = response.id)\n .catch(() => this.existingResourceId = null)\n .finally(() => this.loading = false);\n }, 500);\n }\n\n private async validatePhone(): Promise<void> {\n if (this.phoneValidatorTimeout) {\n clearTimeout(this.phoneValidatorTimeout);\n }\n\n this.phoneValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.phoneValidation(this.value)\n .then((response: any) => this.validatePhoneResult.emit(response))\n .finally(() => this.loading = false);\n });\n }\n\n private uniqueValidator(): AsyncValidatorFn {\n if (!this.ngtValidationService) {\n throw new Error(\"In order to use unique validation you must provide a implementation for NgtHttpValidationService class!\");\n }\n\n return (control: AbstractControl) => {\n if (this.uniqueValidatorTimeout) {\n clearTimeout(this.uniqueValidatorTimeout);\n }\n\n if (this.value && this.uniqueResource) {\n return new Promise((resolve) => {\n this.uniqueValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.unique(this.uniqueResource, this.value).then((response: NgtHttpValidationResponse) => {\n this.loading = false;\n\n resolve(response.valid ? null : { 'unique': true });\n }).catch(() => {\n this.loading = false;\n resolve(null);\n });\n }, 500);\n });\n }\n\n return Promise.resolve(null);\n };\n }\n\n private validatorCNPJ(value) {\n let b = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n if ((value = value.replace(/[^\\d]/g, \"\")).length != 14) {\n return false;\n }\n\n if (/0{14}/.test(value)) {\n return false;\n }\n\n let n = 0;\n\n for (let i = 0; i < 12; n += value[i] * b[++i]) {\n ;\n }\n\n if (value[12] != (((n %= 11) < 2) ? 0 : 11 - n)) {\n return false;\n }\n\n n = 0;\n\n for (let i = 0; i <= 12; n += value[i] * b[i++]) {\n ;\n }\n\n if (value[13] != (((n %= 11) < 2) ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n };\n\n private validatorCPF(value) {\n let numeros, digitos, soma, i, resultado, digitos_iguais;\n\n digitos_iguais = 1;\n\n if (value.length < 11) {\n return false;\n }\n\n for (i = 0; i < value.length - 1; i++) {\n if (value.charAt(i) != value.charAt(i + 1)) {\n digitos_iguais = 0;\n break;\n }\n }\n\n if (!digitos_iguais) {\n numeros = value.substring(0, 9);\n digitos = value.substring(9);\n soma = 0;\n\n for (i = 10; i > 1; i--) {\n soma += numeros.charAt(10 - i) * i;\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n if (resultado != digitos.charAt(0)) {\n return false;\n }\n\n numeros = value.substring(0, 10);\n soma = 0;\n\n for (i = 11; i > 1; i--) {\n soma += numeros.charAt(11 - i) * i;\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n if (resultado != digitos.charAt(1)) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n private getNativeValue() {\n return this.element.nativeElement.value;\n }\n\n private getElementTitle(): string {\n return this.element.nativeElement.parentElement.parentElement.title;\n }\n\n private removeMasks(value: string) {\n if (this.mask == \"decimal\") {\n value = (value + \"\")\n .replace(/\\./g, '')\n .replace(',', '.');\n } else if (this.mask == \"cnpj-cpf\" || this.mask == \"cpf\" || this.mask == \"cnpj\" || this.mask == \"cnpj-cpf-rut\") {\n value = (value + \"\")\n .replace('.', '')\n .replace('.', '')\n .replace('-', '')\n .replace('/', '');\n } else if (\n this.mask == NgtInputMaskEnum.CELLPHONE\n || this.mask == NgtInputMaskEnum.INTERNATIONAL_PHONE\n ) {\n value = (value + \"\")\n .replace('(', '')\n .replace(')', '')\n .replace(' ', '')\n .replace(' ', '')\n .replace('-', '')\n .replace('+', '');\n }\n\n return value;\n }\n\n private hasEmailServiceValidation(): boolean {\n return typeof this.ngtValidationService.emailValidation === 'function';\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtInputComponent } from './ngt-input.component';\n\n@NgModule({\n declarations: [NgtInputComponent],\n exports: [NgtInputComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtSvgModule,\n NgtFormModule,\n NgtHelperModule\n ]\n})\nexport class NgtInputModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngt-modal-body',\n templateUrl: './ngt-modal-body.component.html',\n styleUrls: ['./ngt-modal-body.component.css']\n})\nexport class NgtModalBodyComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngt-modal-footer',\n templateUrl: './ngt-modal-footer.component.html',\n styleUrls: ['./ngt-modal-footer.component.css']\n})\nexport class NgtModalFooterComponent { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-modal',\n templateUrl: './ngt-modal.component.html',\n styleUrls: ['./ngt-modal.component.css'],\n animations: [\n trigger('fade', [\n state('void', style({ opacity: 0 })),\n transition(':enter, :leave', [\n animate(300)\n ])\n ])\n ]\n})\nexport class NgtModalComponent {\n @Input() public customLayout: boolean = false;\n @Input() public disableDefaultCloses: boolean = false;\n @Input() public ngtStyle: NgtStylizableService;\n\n @Output() public onCloseModal: EventEmitter<any> = new EventEmitter();\n @Output() public onOpenModal: EventEmitter<any> = new EventEmitter();\n\n public isOpen: boolean = false;\n\n private keydownEventWasAdded: boolean = false;\n\n public constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtModal', {\n w: 'md:max-w-md',\n py: 'py-4',\n px: 'px-6',\n overflow: 'overflow-visible',\n color: {}\n });\n }\n\n public close() {\n this.isOpen = false;\n this.changeDetectorRef.detectChanges();\n this.onCloseModal.emit();\n }\n\n public open() {\n this.isOpen = true;\n this.changeDetectorRef.detectChanges();\n this.addKeydownEventListener();\n this.onOpenModal.emit();\n }\n\n private addKeydownEventListener() {\n if (!this.disableDefaultCloses && !this.keydownEventWasAdded) {\n this.keydownEventWasAdded = true;\n\n window.addEventListener('keydown', (event: any) => {\n if (event.keyCode == 27) {\n this.close();\n }\n }, true);\n }\n }\n}\n","import { Component, Injector, Input, Optional, Self, SkipSelf } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtModalComponent } from '../ngt-modal.component';\n\n@Component({\n selector: 'ngt-modal-header',\n templateUrl: './ngt-modal-header.component.html',\n styleUrls: ['./ngt-modal-header.component.css']\n})\nexport class NgtModalHeaderComponent {\n @Input() public ngtModal: NgtModalComponent;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtModalInstance: NgtModalComponent,\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\n ) {\n if (ngtModalInstance) {\n this.ngtModal = ngtModalInstance;\n }\n\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtModalHeader', {\n pb: 'pb-3',\n color: {}\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { NgtModalBodyComponent } from './ngt-modal-body/ngt-modal-body.component';\nimport { NgtModalFooterComponent } from './ngt-modal-footer/ngt-modal-footer.component';\nimport { NgtModalHeaderComponent } from './ngt-modal-header/ngt-modal-header.component';\nimport { NgtModalComponent } from './ngt-modal.component';\n\n@NgModule({\n declarations: [\n NgtModalComponent,\n NgtModalHeaderComponent,\n NgtModalBodyComponent,\n NgtModalFooterComponent\n ],\n exports: [\n NgtModalComponent,\n NgtModalHeaderComponent,\n NgtModalBodyComponent,\n NgtModalFooterComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class NgtModalModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-action',\n templateUrl: './ngt-action.component.html',\n styleUrls: ['./ngt-action.component.css']\n})\nexport class NgtActionComponent {\n @Input() public href: string;\n @Input() public icon: string;\n @Input() public ngtStyle: NgtStylizableService;\n @Input() public isDisabled: boolean;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtAction', {\n h: 'h-full',\n w: 'w-full',\n color: {\n bg: 'bg-gray-500',\n text: 'text-white',\n border: '',\n },\n text: 'text-xl',\n border: 'border-0',\n });\n }\n\n public onClick(event: Event) {\n if (this.isDisabled) {\n event.stopPropagation();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtActionComponent } from './ngt-action.component';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\n\n@NgModule({\n declarations: [NgtActionComponent],\n exports: [NgtActionComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtSvgModule\n ]\n})\nexport class NgtActionModule { }\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ngt-select-option]' })\nexport class NgtSelectOptionTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ngt-select-option-selected]' })\nexport class NgtSelectOptionSelectedTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ngt-select-header]' })\nexport class NgtSelectHeaderTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n DoCheck,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\nimport { Observable, Observer, Subject, Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\n\n@Component({\n selector: 'ngt-select',\n templateUrl: './ngt-select.component.html',\n styleUrls: ['./ngt-select.component.css'],\n providers: [\n NgtMakeProvider(NgtSelectComponent)\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtSelectComponent extends NgtBaseNgModel implements OnChanges, OnDestroy, OnInit, DoCheck {\n @ViewChild(NgSelectComponent, { static: true }) public ngSelectComponent: NgSelectComponent;\n @ContentChild(NgtSelectOptionTmp, { read: TemplateRef }) public ngtOptionTemplate: TemplateRef<any>;\n @ContentChild(NgtSelectOptionSelectedTmp, { read: TemplateRef }) public ngtOptionSelectedTemplate: TemplateRef<any>;\n @ContentChild(NgtSelectHeaderTmp, { read: TemplateRef }) public ngtSelectHeaderTemplate: TemplateRef<any>;\n\n /** Visual */\n @Input() public label: string = '';\n @Input() public labelIcon: string;\n @Input() public labelIconColor: string;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining = false;\n @Input() public loading: boolean = false;\n @Input() public loadingText: string = '';\n @Input() public notFoundText: string = '';\n @Input() public dropdownPosition = 'auto';\n @Input() public typeToSearchText: string = '';\n @Input() public clearAllTooltip: string = '';\n @Input() public placeholder: string = '';\n @Input() public createText: string = '';\n @Input() public labelForId: string = '';\n @Input() public dropdownPanelMinHeight: NgtSelectDropdownPanelHeight = NgtSelectDropdownPanelHeight.AUTO;\n\n /** Behavior */\n @Input() public name: string;\n @Input() public autoLoad: boolean;\n @Input() public allowCreate: boolean | Promise<any> | Function = false;\n @Input() public allowOriginalItemsUnselect: boolean = true;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public remoteResource: any;\n @Input() public hideSelected: boolean;\n @Input() public bindLabel: string = 'name';\n @Input() public bindValue: string;\n @Input() public items: Array<any> | Observable<any> = [];\n @Input() public inputAttrs: { [key: string]: string };\n @Input() public closeOnSelect: boolean = true;\n @Input() public clearable: boolean = true;\n @Input() public groupBy: string | Function = null;\n @Input() public maxSelectedItems: number;\n @Input() public multiple: boolean = false;\n @Input() public searchable: boolean = true;\n @Input() public clearSearchOnAdd: boolean = true;\n @Input() public virtualScroll: boolean = true;\n @Input() public tabIndex: number;\n @Input() public typeahead: Subject<any>;\n @Input() public guessCompareWith: boolean = true;\n @Input() public groupValue: (groupKey: string, cildren: any[]) => Object;\n @Input() public trackBy: (item: any) => any;\n\n /** Validation */\n @Input() public isRequired: boolean = false;\n\n @Output() public onLoadRemoteResource: EventEmitter<any> = new EventEmitter<any>();\n @Output() public onClear: EventEmitter<void> = new EventEmitter<void>();\n\n public nativeName = uuid();\n public ngtStyle: NgtStylizableService;\n public ngSelectItems: any = [];\n public nativeValue: any;\n public componentReady: boolean = false;\n public wasClicked: boolean;\n\n private ngSearchObserver: Observer<any>;\n private originalPerPage = 15;\n private subscriptions: Array<Subscription> = [];\n private originalItems: Array<any>;\n\n private currentState = {\n filters: {},\n sort: {\n field: '',\n direction: ''\n },\n pagination: {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n }\n };\n\n private searchTimeout: any;\n private hadFirstItemsLoad: boolean;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n public ngtFormComponent: NgtFormComponent,\n private ngtHttp: NgtHttpService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtSelect', {\n h: 'h-12',\n text: 'text-sm',\n fontCase: '',\n color: {\n bg: 'bg-white'\n }\n });\n }\n\n @Input() public compareWith = (a: any, b: any) => a === b;\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n }\n\n if (!this.multiple && this.isRequired) {\n this.clearable = false;\n }\n\n if (this.multiple) {\n this.closeOnSelect = false;\n }\n\n setTimeout(() => {\n this.componentReady = true;\n this.initComponentValidation();\n }, 500);\n\n this.ngSelectItems = new Observable((observer) => {\n this.ngSearchObserver = observer;\n observer.next([]);\n });\n }\n\n public ngAfterViewInit() {\n this.bindInnerInputUniqueId();\n }\n\n public ngDoCheck(): void {\n if (!this.hadFirstItemsLoad && this.canLoadItems()) {\n this.hadFirstItemsLoad = true;\n\n this.initNgSelectItems();\n\n setTimeout(() => {\n this.replaceShowAddTag();\n\n this.ngSelectComponent.itemsList.mapSelectedItems();\n\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\n this.ngSelectComponent.element.parentElement.parentElement.parentElement.title = '';\n }\n\n this.originalItems = this.ngSelectComponent.selectedItems?.map((element) => element.value);\n\n this.changeDetector.detectChanges();\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public removeItem(event: Event, item: any) {\n event.preventDefault();\n event.stopPropagation();\n\n return this.ngSelectComponent.clearItem(item);\n }\n\n public refresh() {\n this.initNgSelectItems();\n this.initComponentValidation();\n }\n\n public reset() {\n this.value = undefined;\n this.nativeValue = undefined;\n this.refresh();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n\n if (changes.remoteResource || changes.items) {\n this.initNgSelectItems();\n }\n\n if (changes.dropdownPanelMinHeight) {\n this.dropdownPanelMinHeight = getEnumFromString(changes.dropdownPanelMinHeight.currentValue, NgtSelectDropdownPanelHeight);\n }\n }\n\n public setFocus() {\n setTimeout(() => {\n this.ngSelectComponent.focus();\n });\n }\n\n public onClearSelect() {\n if (!this.nativeValue) {\n this.markAsPristine();\n }\n\n this.currentState.filters = {};\n\n this.onClear.emit();\n }\n\n public onRemoveSelectedItem(item: NgOption) {\n if (!this.allowOriginalItemsUnselect && this.hadPreviousSelection(item.value)) {\n setTimeout(() => this.ngSelectComponent.select(item));\n }\n }\n\n public getFilterInputValue() {\n let inputField = this.ngSelectComponent.searchInput ?\n this.ngSelectComponent.searchInput :\n this.ngSelectComponent['searchInput'];\n\n if (\n inputField &&\n inputField.nativeElement\n ) {\n return inputField.nativeElement.value;\n }\n }\n\n public search(filters: any) {\n this.currentState.filters = { ...this.currentState.filters, ...filters };\n\n if (!this.remoteResource) {\n return;\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.loading = true;\n this.changeDetector.detectChanges();\n\n this.searchTimeout = setTimeout(() => {\n this.subscriptions.push(\n this.ngtHttp\n .get(this.remoteResource, this.currentState.filters, this.currentState.pagination)\n .subscribe(\n (response: NgtHttpResponse) => {\n this.loading = false;\n\n this.bindCompareWithByResponse(response);\n\n this.ngSearchObserver.next(response.data);\n\n this.onLoadRemoteResource.emit(response.data);\n\n this.currentState.pagination = response.meta.pagination;\n\n this.changeDetector.detectChanges();\n },\n (error) => {\n this.loading = false;\n this.changeDetector.detectChanges();\n console.error(error);\n this.ngSearchObserver.next([]);\n }\n )\n );\n }, 500);\n }\n\n public onNativeChange(value) {\n if (this.hasChangesBetweenModels(this.value, value)) {\n this.value = value;\n }\n }\n\n public change(value) {\n if (this.hasChangesBetweenModels(value, this.nativeValue)) {\n if (Array.isArray(value)) {\n value = value.map((val) => val);\n }\n\n this.nativeValue = value;\n\n if (!value) {\n this.markAsPristine();\n }\n }\n }\n\n public onScroll({ end }) {\n let currentPerPage = this.currentState.pagination.per_page;\n let maxItensInBackend = this.currentState.pagination.total;\n\n if (end >= currentPerPage && end <= maxItensInBackend) {\n this.currentState.pagination.per_page = parseInt(this.currentState.pagination.per_page) + this.originalPerPage;\n this.search({});\n }\n }\n\n public hasSelectedValue() {\n return this.value && JSON.stringify(this.value);\n }\n\n public getSelectClass() {\n let selectClass = this.dropdownPanelMinHeight ? 'ng-select-dropdown-panel-' + this.dropdownPanelMinHeight : 'ng-select-dropdown-panel-auto';\n\n if (this.isDisabled) {\n selectClass += ' select-border-disabled';\n } else if (this.formControl && this.formControl.errors && (this.formControl.dirty || (this.formContainer && this.formContainer['submitted']))) {\n selectClass += ' select-border-error';\n } else {\n selectClass += ' select-border-normal';\n }\n\n if (this.multiple) {\n selectClass += ` h-auto ${this.ngtStyle.compile(['color.bg', 'color.text'])}`;\n } else {\n selectClass += ` ${this.ngtStyle.compile(['h', 'color.bg', 'color.text'])}`;\n }\n\n return selectClass;\n }\n\n private initNgSelectItems() {\n if (this.remoteResource && this.canLoadItems()) {\n this.ngSelectItems = new Observable(observer => {\n this.ngSearchObserver = observer;\n this.search({});\n });\n\n this.typeahead = new Subject();\n\n this.subscriptions.push(\n this.typeahead.subscribe((term) => {\n this.search({ term: term });\n })\n );\n } else if (this.items instanceof Observable) {\n this.ngSelectItems = this.items;\n } else {\n if (!this.items) {\n this.items = [];\n }\n\n this.ngSelectItems = new Observable((observer) => {\n this.ngSearchObserver = observer;\n observer.next(this.items);\n });\n }\n }\n\n private initComponentValidation() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n this.formControl = this.formContainer.control.get(this.name);\n this.markAsPristine();\n this.updateValidations();\n }\n }\n\n private getElementTitle(): string {\n return this.ngSelectComponent.element.parentElement.parentElement.parentElement.title;\n }\n\n private hasChangesBetweenModels(value, nativeValue) {\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(this.isRequiredValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private isRequiredValidator() {\n return (control: AbstractControl) => {\n if (this.multiple) {\n if (Array.isArray(this.value) && this.value.length > 0) {\n return null;\n }\n } else if (control.value && JSON.stringify(control.value)) {\n return null;\n }\n\n return { 'required': true };\n };\n }\n\n private replaceShowAddTag() {\n Object.defineProperty(this.ngSelectComponent, 'showAddTag', {\n get: () => {\n if (!this.ngSelectComponent['searchTerm']) {\n return false;\n }\n\n const term = this.ngSelectComponent['searchTerm'].toLocaleLowerCase();\n\n return this.ngSelectComponent.addTag && !this.ngSelectComponent.loading\n && (!this.hasTermInFilteredItems(term) && (!this.hasTermInSelectedItems(term)\n || !this.ngSelectComponent.hideSelected && this.ngSelectComponent.isOpen));\n }\n });\n }\n\n private bindInnerInputUniqueId() {\n const childInputs = this.ngSelectComponent.element.getElementsByTagName('input');\n\n if (childInputs?.length) {\n const innerInput = childInputs[0];\n\n innerInput.id = uuid();\n }\n }\n\n private bindCompareWithByResponse(response: NgtHttpResponse): void {\n if (this.guessCompareWith) {\n if (response.data?.length && typeof response.data[0]['getApiId'] === 'function') {\n this.compareWith = (a: any, b: any) => a.getApiId() == b.getApiId();\n } else {\n this.compareWith = (a: any, b: any) => a === b;\n }\n }\n }\n\n private hasTermInFilteredItems(term: string) {\n const filteredItems = this.ngSelectComponent.itemsList.filteredItems;\n\n if (filteredItems?.length && this.isColoquentResource()) {\n return filteredItems.some((element: any) => {\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n return filteredItems.some((element: any) => {\n const elementValue = (<any>element.value)[this.bindLabel];\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n private hasTermInSelectedItems(term: string) {\n const selectedItems = this.ngSelectComponent.selectedItems;\n\n if (selectedItems?.length && this.isColoquentResource()) {\n return selectedItems.some((element: any) => {\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n return selectedItems.some((element: any) => {\n const elementValue = (<any>element.value)[this.bindLabel];\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n private hadPreviousSelection(item: any): boolean {\n return !!this.originalItems?.find(element => this.compareWith(element, item));\n }\n\n private isColoquentResource() {\n const items = this.ngSelectComponent.itemsList.items;\n\n return items?.length && typeof items[0].value['getAttribute'] === 'function';\n }\n\n private canLoadItems(): boolean {\n return this.autoLoad || (!this.isDisabled && this.wasClicked);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtSelectDropdownPanelHeight {\n AUTO = 'auto',\n XS = 'xs',\n MD = 'md',\n SM = 'sm',\n LG = 'lg',\n XL = 'xl'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtSelectComponent } from './ngt-select.component';\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\nimport {NgtSvgModule} from \"../ngt-svg/ngt-svg.module\";\n\n@NgModule({\n declarations: [\n NgtSelectComponent,\n NgtSelectOptionTmp,\n NgtSelectOptionSelectedTmp,\n NgtSelectHeaderTmp\n ],\n exports: [\n NgtSelectComponent,\n NgtSelectOptionTmp,\n NgtSelectOptionSelectedTmp,\n NgtSelectHeaderTmp\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgSelectModule,\n NgtValidationModule,\n NgtFormModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtSvgModule\n ]\n})\nexport class NgtSelectModule { }\n","import { Component, EventEmitter, Injector, Input, Optional, Output } from '@angular/core';\n\nimport { NgtHttpMeta, NgtHttpPagination } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-pagination',\n templateUrl: './ngt-pagination.component.html',\n styleUrls: ['./ngt-pagination.component.css']\n})\nexport class NgtPaginationComponent {\n @Input() public pagesInterval: number;\n\n @Output() public onPageChange: EventEmitter<number> = new EventEmitter();\n @Output() public onPerPageChange: EventEmitter<number> = new EventEmitter();\n\n /** Styles */\n public ngtPaginationActivePageButtonStyle: NgtStylizableService;\n public ngtPaginationNextPreviousButtonStyle: NgtStylizableService;\n public ngtPaginationNextPreviousSectionButtonStyle: NgtStylizableService;\n public ngtPaginationFirstLastButtonStyle: NgtStylizableService;\n public ngtPaginationPageButtonStyle: NgtStylizableService;\n\n public sectionStartPage: number;\n public sectionEndPage: number;\n public displayNextSectionButton: boolean;\n public displayPreviousSectionButton: boolean;\n public displayPagination: boolean = true;\n\n public pagination: NgtHttpPagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n\n public pages = [];\n\n public registersPerPageOptions = [\n 5, 10, 15, 30, 50, 100\n ];\n\n public currentRegistersPerPage: number = 15;\n\n public constructor(\n private injector: Injector,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();\n this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();\n this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();\n this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();\n this.ngtPaginationPageButtonStyle = new NgtStylizableService();\n\n this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-700'\n }\n });\n\n this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-300'\n }\n });\n\n this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-900'\n }\n });\n\n this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-500'\n }\n });\n\n this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-300'\n }\n });\n }\n\n public onRegistersPerPageChange(value: any) {\n if (value && this.pagination.per_page != value) {\n this.pagination.per_page = value;\n this.currentRegistersPerPage = value;\n\n this.onPerPageChange.emit(value);\n }\n }\n\n public async goToPage(page: number) {\n this.onPageChange.emit(page);\n }\n\n public async goToPreviousPage() {\n if ((this.pagination.page - 1) > 0) {\n return this.goToPage(this.pagination.page - 1);\n }\n }\n\n public async goToNextPage() {\n if ((this.pagination.page + 1) <= this.pagination.pages) {\n return this.goToPage(this.pagination.page + 1);\n }\n }\n\n public async goToPreviousSection() {\n return this.goToPage(this.sectionStartPage - 1);\n }\n\n public async goToNextSection() {\n return this.goToPage(this.sectionEndPage + 1);\n }\n\n public async goToFirstPage() {\n if (this.pagination.page != 1) {\n return this.goToPage(1);\n }\n }\n\n public async goToLastPage() {\n if (this.pagination.page != this.pagination.pages) {\n return this.goToPage(this.pagination.pages);\n }\n }\n\n public getCurrentPage() {\n return this.pagination.page;\n }\n\n public getPagination() {\n return this.pagination;\n }\n\n public proccessPagination(meta: NgtHttpMeta) {\n this.pages = [];\n this.pagination = meta.pagination;\n\n this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;\n this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);\n\n const totalPages = this.pagination.pages;\n\n for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {\n this.pages.push(i);\n }\n\n this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);\n this.displayPagination = true;\n }\n\n public resetPagination() {\n this.pagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n }\n\n private bindDisplayedButtonSections(sectionStartPage: number, sectionEndPage: number, totalPages: number) {\n this.displayPreviousSectionButton = sectionStartPage > 1 ? true : false;\n this.displayNextSectionButton = sectionEndPage < totalPages ? true : false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\nimport { NgtSelectModule } from '../ngt-select/ngt-select.module';\nimport { NgtPaginationComponent } from './ngt-pagination.component';\n\n@NgModule({\n declarations: [NgtPaginationComponent],\n exports: [NgtPaginationComponent],\n imports: [\n CommonModule,\n FormsModule,\n NgtStylizableModule,\n NgtActionModule,\n NgtSelectModule,\n ]\n})\nexport class NgtPaginationModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-tag',\n templateUrl: './ngt-tag.component.html',\n styleUrls: ['./ngt-tag.component.css']\n})\nexport class NgtTagComponent {\n @Input() public icon: string;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Tag', {\n color: {\n bg: 'bg-gray-500',\n text: 'text-white'\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtTagComponent } from './ngt-tag.component';\n\n@NgModule({\n declarations: [NgtTagComponent],\n exports: [NgtTagComponent],\n imports: [\n CommonModule,\n NgtSvgModule\n ]\n})\nexport class NgtTagModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\nimport { NgtModalComponent } from '../ngt-modal/ngt-modal.component';\nimport { NgtPaginationComponent } from '../ngt-pagination/ngt-pagination.component';\n\n@Component({\n selector: 'ngt-datatable',\n templateUrl: './ngt-datatable.component.html',\n styleUrls: ['./ngt-datatable.component.css']\n})\nexport class NgtDatatableComponent implements OnInit, OnDestroy {\n @ViewChild('table', { static: true }) public table: ElementRef;\n @ViewChild('ngtPagination', { static: true }) public ngtPagination: NgtPaginationComponent;\n @ViewChild('searchModal', { static: true }) public searchModal: NgtModalComponent;\n\n @Input() public remoteResource: any;\n @Input() public type: NgtDatatableType = NgtDatatableType.REMOTE;\n @Input() public filterTagBgColor: string = 'bg-blue-500';\n @Input() public filterTagMargin: string = 'mb-4';\n @Input() public paginationMargin: string = 'mt-2 md:mt-8';\n @Input() public inputSearch: NgtInputComponent;\n @Input() public searchDelay: number = 500;\n @Input() public searchTermMinLength: number = 1;\n @Input() public searchTermOnEnter: boolean = true;\n @Input() public defaultFilters: any = {};\n @Input() public filtersDescription = {};\n\n @Output() public onDataChange: EventEmitter<any> = new EventEmitter();\n @Output() public onClearFilter: EventEmitter<any> = new EventEmitter();\n @Output() public onClearSelectedElements: EventEmitter<any> = new EventEmitter();\n @Output() public onSelectedElementsChange: EventEmitter<Array<NgtCheckedElement>> = new EventEmitter();\n @Output() public onToogleAllCheckboxes: EventEmitter<any> = new EventEmitter();\n @Output() public onToogleCheckbox: EventEmitter<NgtCheckedElement> = new EventEmitter();\n @Output() public onOpenSearchModal: EventEmitter<string> = new EventEmitter();\n @Output() public onSearch: EventEmitter<any> = new EventEmitter();\n\n public searchModalTemplate: TemplateRef<any>;\n public data = [];\n public loading = false;\n public cleaningFilter = false;\n public componentReady = false;\n public filtersTranslated = [];\n public emptyStateVisible: boolean;\n public columnCount = [];\n public selectedElements: Array<NgtCheckedElement> = [];\n\n private searching: boolean;\n private searchTimeout: any;\n private subscriptions: Array<Subscription> = [];\n private currentState = {\n filters: {\n defaultFilters: {},\n silentFilters: {},\n qualifiedFilters: {},\n },\n sort: {\n field: '',\n direction: ''\n }\n };\n\n public constructor(\n private injector: Injector,\n private ngtHttpService: NgtHttpService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n\n public ngOnInit() {\n if (this.table && this.table.nativeElement && this.table.nativeElement.rows\n && this.table.nativeElement.rows[0] && this.table.nativeElement.rows[0].cells) {\n this.columnCount = this.table.nativeElement.rows[0].cells;\n }\n\n if (this.inputSearch) {\n this.initSearchWithInput();\n }\n\n this.initCheckboxEvent();\n\n if (this.searchDelay == 500) {\n this.searchDelay = this.injector.get('NgtDatatableSearchDelay', 500);\n }\n\n if (this.searchTermMinLength == 1) {\n this.searchTermMinLength = this.injector.get('NgtDatatableSearchTermMinLength', 1);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public setSearchModalTemplate(template: TemplateRef<any>) {\n this.searchModalTemplate = template;\n }\n\n public openSearchModal(reference?: string) {\n this.searchModal.open();\n this.onOpenSearchModal.emit(reference);\n }\n\n public clearSelectedElements() {\n this.selectedElements = [];\n this.onClearSelectedElements.emit();\n }\n\n public getCurrentState() {\n return this.currentState;\n }\n\n public init() {\n this.componentReady = true;\n }\n\n public async search(\n filters: Object,\n searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT,\n applyDelayOnSearch: boolean = true\n ) {\n if (this.canApplyFilters(filters)) {\n this.onSearch.emit(filters);\n\n if (searchType == NgtDatatableSearchType.DEFAULT) {\n this.currentState.filters.defaultFilters = { ...this.currentState.filters.defaultFilters, ...filters };\n } else {\n this.currentState.filters.silentFilters = { ...this.currentState.filters.silentFilters, ...filters };\n }\n\n this.applyFiltersDescription();\n\n return this.apply(1, applyDelayOnSearch);\n }\n }\n\n public async sort(field: any, direction: any) {\n this.currentState.sort = {\n field: field,\n direction: direction\n };\n\n return this.apply(this.ngtPagination.getCurrentPage());\n }\n\n public async refresh(stayInPage: NgtDatatableParam = NgtDatatableParam.RESET_PAGE, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\n return this.apply(\n stayInPage ? this.ngtPagination.getCurrentPage() : 1,\n false,\n loader\n ).then(() => !this.data?.length ? this.apply(1, false) : null);\n }\n\n public getData() {\n return this.data;\n }\n\n public getCurrentSort() {\n return this.currentState.sort;\n }\n\n public setPerPage(perPage: number) {\n this.ngtPagination.onRegistersPerPageChange(perPage);\n }\n\n public applyFiltersDescription() {\n if (!this.cleaningFilter) {\n this.filtersTranslated = [];\n\n for (let reference in this.currentState.filters.defaultFilters) {\n if (this.filtersDescription[reference] && this.currentState.filters.defaultFilters[reference]) {\n this.filtersTranslated.push({\n reference: reference,\n value: this.currentState.filters.defaultFilters[reference],\n translation: this.filtersDescription[reference]\n });\n }\n }\n }\n }\n\n public setFilterDescription(reference: string, description: string) {\n this.filtersDescription[reference] = description;\n }\n\n public removeFilter(reference?: string, refresh: boolean = true): void {\n if (reference && !this.hasAppliedFilter(reference)) {\n return;\n }\n\n this.cleaningFilter = true;\n\n if (!reference) {\n this.currentState.filters.defaultFilters = {};\n this.currentState.filters.silentFilters = {};\n this.filtersTranslated = [];\n } else {\n delete this.currentState.filters.defaultFilters[reference];\n delete this.currentState.filters.silentFilters[reference];\n\n this.filtersTranslated = this.filtersTranslated.filter(element => element && element.reference !== reference);\n }\n\n this.onClearFilter.emit(reference);\n\n if (this.inputSearch && (reference === 'term' || !reference)) {\n this.inputSearch.clearInput();\n }\n\n if (refresh) {\n this.apply(this.ngtPagination.getCurrentPage(), false).then(() => this.cleaningFilter = false);\n }\n }\n\n public hasAppliedFilter(filter: Object | NgtCustomFilter | string): boolean {\n const reference: string = typeof filter === 'string' ? filter : Object.keys(filter ?? {})[0];\n const appliedFilters = this.currentState.filters.qualifiedFilters;\n\n return !!Object.keys(appliedFilters).find(key => key == reference);\n }\n\n public hasAppliedFilters(searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT) {\n let appliedFilters = {};\n\n if (searchType == NgtDatatableSearchType.DEFAULT) {\n appliedFilters = this.currentState.filters.defaultFilters;\n } else if (searchType == NgtDatatableSearchType.SILENT) {\n appliedFilters = this.currentState.filters.silentFilters;\n } else {\n appliedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\n }\n\n return !!Object.values(appliedFilters)?.find(filter => !!filter);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.inputSearch) {\n if (changes.inputSearch.currentValue) {\n this.initSearchWithInput();\n }\n }\n\n if (changes.type) {\n this.type = getEnumFromString(changes.type.currentValue, NgtDatatableType);\n }\n }\n\n public async apply(page = 1, applyDelayOnSearch: boolean = true, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\n return new Promise<void>(resolve => {\n if (!this.componentReady) {\n return resolve();\n } else if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.ngtPagination.displayPagination = false;\n this.selectedElements = [];\n\n if (this.type === NgtDatatableType.REMOTE) {\n if (this.remoteResource) {\n if (loader) {\n this.loading = true;\n this.bindVisibilityAttributes();\n }\n\n if (applyDelayOnSearch) {\n this.searchTimeout = setTimeout(() => {\n this.loadData(page).then(() => resolve());\n }, this.searchDelay);\n } else {\n this.loadData(page).then(() => resolve());\n }\n } else {\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\n }\n } else if (this.type == NgtDatatableType.FIXED) {\n this.bindVisibilityAttributes();\n\n resolve();\n }\n });\n }\n\n private loadData(page: number) {\n return new Promise<void>((resolve, reject) => {\n const pagination: NgtHttpPagination = { ...this.ngtPagination.getPagination(), ...{ page: page } };\n\n this.currentState.filters.qualifiedFilters = this.getQualifiedFilters();\n this.searching = true;\n\n if (this.inputSearch) {\n this.inputSearch.isDisabled = true;\n }\n\n this.subscriptions.push(\n this.ngtHttpService.get(\n this.remoteResource, this.currentState.filters.qualifiedFilters, pagination, this.currentState.sort\n ).subscribe(\n (response: NgtHttpResponse) => {\n this.proccessRemoteResponse(response.data);\n this.ngtPagination.proccessPagination(response.meta);\n\n this.searching = false;\n this.loading = false;\n\n if (this.inputSearch) {\n this.inputSearch.isDisabled = false;\n }\n\n this.onDataChange.emit(this.data);\n this.bindVisibilityAttributes();\n\n resolve();\n },\n (error) => {\n console.error(error);\n this.loading = false;\n this.inputSearch.isDisabled = false;\n this.changeDetector.detectChanges();\n\n reject();\n }\n )\n );\n });\n }\n\n private getQualifiedFilters() {\n const qualifiedFilters = {};\n const requestedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\n\n if (requestedFilters) {\n for (const reference in requestedFilters) {\n const filter = requestedFilters[reference];\n\n if (this.isValidFilter(filter)) {\n if (filter instanceof NgtCustomFilter) {\n if (filter.tagLabel) {\n this.filtersDescription[reference] = filter.tagLabel;\n this.applyFiltersDescription();\n }\n\n qualifiedFilters[reference] = filter.term;\n } else {\n qualifiedFilters[reference] = filter;\n }\n }\n }\n }\n\n return qualifiedFilters;\n }\n\n private bindVisibilityAttributes() {\n this.changeDetector.detectChanges();\n\n if (this.type == NgtDatatableType.REMOTE && !this.data.length && !this.loading) {\n this.emptyStateVisible = true;\n } else if (this.type == NgtDatatableType.FIXED) {\n this.emptyStateVisible = false;\n } else {\n this.emptyStateVisible = false;\n }\n\n this.changeDetector.detectChanges();\n }\n\n private proccessRemoteResponse(response: any) {\n this.data = response;\n }\n\n private initSearchWithInput() {\n this.subscriptions.push(\n this.inputSearch.onValueChange().subscribe((value: string) => {\n if (this.currentState.filters.defaultFilters['term']) {\n if (!value) {\n this.removeFilter('term');\n } else if (value.length < this.searchTermMinLength) {\n delete this.currentState.filters.defaultFilters['term'];\n\n this.search({ term: '' });\n }\n }\n\n if (value.length >= this.searchTermMinLength) {\n this.search({ term: value });\n }\n })\n );\n\n if (this.searchTermOnEnter) {\n this.inputSearch.element.nativeElement.addEventListener('keydown', (event: any) => {\n event.stopImmediatePropagation();\n\n if (event.keyCode == 13) {\n if (this.inputSearch.value && this.inputSearch.value.length >= this.searchTermMinLength) {\n this.apply(1, false);\n }\n }\n });\n }\n }\n\n private initCheckboxEvent() {\n this.subscriptions.push(\n this.onToogleCheckbox.subscribe((checkedElement: NgtCheckedElement) => {\n this.selectedElements = this.selectedElements.filter(item => item.id !== checkedElement.id);\n\n if (checkedElement.checked) {\n this.selectedElements.push(checkedElement);\n }\n\n this.onSelectedElementsChange.emit(this.selectedElements);\n })\n );\n }\n\n private canApplyFilters(filters: Object): boolean {\n if (!this.searching) {\n for (const reference in filters) {\n if (this.isValidFilter(filters[reference])) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private isValidFilter(filter: Object | NgtCustomFilter): boolean {\n const value: string | NgtCustomFilter = Object.values(filter ?? {})[0];\n const hasValue: boolean = !!((value instanceof NgtCustomFilter && value.term) || value);\n const isApplied: boolean = this.hasAppliedFilter(filter);\n\n return isApplied || (!isApplied && hasValue);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDatatableType {\n REMOTE = 'REMOTE',\n FIXED = 'FIXED'\n}\n\nexport enum NgtDatatableSearchType {\n DEFAULT = 'DEFAULT',\n SILENT = 'SILENT',\n}\n\nexport enum NgtDatatableParam {\n STAY_IN_PAGE = 1,\n RESET_PAGE = 0,\n ENABLE_LOADER = 1,\n DISABLE_LOADER = 0\n}\n\nexport class NgtCheckedElement {\n public id: string;\n public checked: boolean;\n public reference: any;\n}\n\nexport class NgtCustomFilter {\n public term: string;\n public tagValue: string;\n public tagLabel?: string;\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-tbody]',\n templateUrl: './ngt-tbody.component.html',\n styleUrls: ['./ngt-tbody.component.css'],\n})\nexport class NgtTbodyComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n this.bindNgtStyle();\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTbody', {\n color: {\n bg: 'bg-white',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Output,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { uuid } from '../../../helpers/uuid';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtCheckboxComponent } from '../../ngt-checkbox/ngt-checkbox.component';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-td-check]',\n templateUrl: './ngt-td-check.component.html',\n styleUrls: ['./ngt-td-check.component.css'],\n})\nexport class NgtTdCheckComponent implements OnDestroy {\n @ViewChild(NgtCheckboxComponent, { static: true }) public checkbox: NgtCheckboxComponent;\n @Input() public reference: any;\n @Input() public isDisabled: boolean;\n @Input() public checked: boolean = false;\n @Output() public onCheckboxInit: EventEmitter<any> = new EventEmitter();\n\n public ngtStyle: NgtStylizableService;\n\n private id: string = uuid();\n private subscriptions: Array<Subscription> = [];\n private isFirstChange: boolean = true;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtDataTable: NgtDatatableComponent\n ) {\n this.bindNgtStyle();\n }\n\n public ngAfterContentInit(): void {\n if (this.ngtDataTable) {\n this.subscriptions.push(\n this.ngtDataTable.onToogleAllCheckboxes.subscribe((checked: boolean) => {\n this.checked = checked;\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\n this.checked = false;\n })\n );\n\n this.onCheckboxInit.emit({\n id: this.id,\n checked: this.checked,\n reference: this.reference\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public onCheckboxChange(checked: boolean): void {\n if (this.ngtDataTable && !this.isFirstChange) {\n this.ngtDataTable.onToogleCheckbox.emit({\n id: this.id,\n checked: checked,\n reference: this.reference\n });\n }\n\n this.isFirstChange = false;\n }\n\n private bindNgtStyle(): void {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTdCheck', {\n py: 'py-4',\n px: 'px-6',\n text: 'text-center',\n border: 'border-b',\n color: {\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.border',\n ]);\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-td]',\n templateUrl: './ngt-td.component.html',\n styleUrls: ['./ngt-td.component.css'],\n})\nexport class NgtTdComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n this.bindNgtStyle();\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTd', {\n py: 'py-4',\n px: 'px-6',\n border: 'border-b',\n break: 'break-words',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n 'break'\n ]);\n }\n}\n","import { AfterContentInit, Component, ElementRef, Injector, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-th-check]',\n templateUrl: './ngt-th-check.component.html',\n styleUrls: ['./ngt-th-check.component.css'],\n})\nexport class NgtThCheckComponent implements AfterContentInit, OnDestroy {\n public checked = false;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtDataTable: NgtDatatableComponent\n ) {\n this.bindNgtStyle();\n }\n\n public ngAfterContentInit() {\n if (this.ngtDataTable) {\n this.subscriptions.push(\n this.ngtDataTable.onDataChange.subscribe(() => {\n this.checked = false;\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\n this.checked = false;\n })\n );\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public onCheckboxChange(checked: boolean) {\n if (this.ngtDataTable) {\n this.ngtDataTable.onToogleAllCheckboxes.emit(checked);\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtThCheck', {\n py: 'py-4',\n px: 'px-6',\n text: 'text-center',\n border: 'border-b',\n color: {\n border: '',\n bg: 'bg-gray-500',\n text: 'text-white'\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.border',\n 'color.bg',\n 'color.text'\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtInputComponent } from '../../ngt-input/ngt-input.component';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-th]',\n templateUrl: './ngt-th.component.html',\n styleUrls: ['./ngt-th.component.css'],\n})\nexport class NgtThComponent implements OnChanges, OnDestroy {\n @ViewChild('searchInput') public searchInput: NgtInputComponent;\n @ViewChild('modal', { static: true }) public modal: TemplateRef<any>;\n\n @Input() public reference: string;\n @Input() public sortReference: string;\n @Input() public sortable: boolean;\n @Input() public searchable: boolean;\n @Input() public hasCustomSearch: boolean = false;\n @Input() public searchLabel: string;\n @Input() public sortableTooltip: NgtSortableTooltip = {\n ascending: 'Ordenar de Z a A',\n descending: 'Limpar ordenação',\n unordered: 'Ordenar de A a Z'\n };\n\n @Output() public onEnableSearch = new EventEmitter();\n\n public inputFocused: boolean = false;\n public isCurrentSort = false;\n public sortDirection = '';\n public searchTerm: any;\n public customSearchTerm: any;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n public ngtDataTable: NgtDatatableComponent\n ) {\n if (this.checkDataTable()) {\n this.subscriptions.push(\n this.ngtDataTable.onDataChange.subscribe(() => {\n this.isCurrentSort = this.ngtDataTable.getCurrentSort().field == this.getSortReference();\n\n if (this.isCurrentSort) {\n this.sortDirection = this.ngtDataTable.getCurrentSort().direction;\n }\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearFilter.subscribe((reference) => {\n if (reference == this.reference || !reference) {\n this.searchTerm = '';\n this.customSearchTerm = null;\n }\n })\n );\n }\n\n this.bindNgtStyle();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.searchLabel && this.checkDataTable) {\n this.ngtDataTable.setFilterDescription(this.reference, this.searchLabel);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public async sort() {\n if (this.sortable && this.checkDataTable() && this.checkReference()) {\n let sortDirection = this.getNextSortDirection();\n\n if (sortDirection) {\n await this.ngtDataTable.sort(this.getSortReference(), sortDirection);\n } else {\n this.ngtDataTable.sort('', '');\n }\n\n this.sortDirection = sortDirection;\n }\n }\n\n public enableSearch(event: any) {\n event.stopPropagation();\n\n this.ngtDataTable.setSearchModalTemplate(this.modal);\n this.ngtDataTable.openSearchModal(this.reference);\n\n setTimeout(() => {\n if (this.searchInput) {\n this.searchInput.setFocus();\n }\n }, 100);\n\n this.onEnableSearch.emit();\n }\n\n public search(term: any) {\n if (!this.hasCustomSearch && this.searchTerm === undefined\n && this.customSearchTerm === undefined && !term) {\n return;\n }\n\n if (this.searchable && this.reference) {\n let filter = {};\n\n filter[this.reference] = term;\n this.ngtDataTable.search(filter);\n }\n }\n\n public customSearch(term: any) {\n this.customSearchTerm = term;\n }\n\n public getTooltip() {\n if (this.sortable && this.sortableTooltip) {\n if (this.sortDirection == 'asc') {\n return this.sortableTooltip.ascending;\n } else if (this.sortDirection == 'desc') {\n return this.sortableTooltip.descending;\n }\n\n return this.sortableTooltip.unordered;\n }\n\n return '';\n }\n\n private getSortReference() {\n return this.sortReference ? this.sortReference : this.reference;\n }\n\n private checkDataTable() {\n if (!this.ngtDataTable) {\n console.error('The [ngt-th] must be inside of a [ngt-datatable]');\n\n return false;\n }\n\n return true;\n }\n\n private checkReference() {\n if (!this.reference && !this.sortReference) {\n console.error('The [ngt-th] must have a [reference] or a [sortReference] property to be able to sort');\n\n return false;\n }\n\n return true;\n }\n\n private getNextSortDirection() {\n switch (this.sortDirection) {\n case 'asc': return 'desc';\n case 'desc': return '';\n case '': return 'asc';\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTh', {\n py: 'py-4',\n px: 'px-6',\n font: 'font-bold',\n text: 'text-sm',\n border: 'border-b',\n justifyContent: 'justify-center',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport interface NgtSortableTooltip {\n ascending: string;\n descending: string;\n unordered: string;\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-thead]',\n templateUrl: './ngt-thead.component.html',\n styleUrls: ['./ngt-thead.component.css'],\n})\nexport class NgtTheadComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtThead', {\n color: {\n bg: 'bg-gray-200',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n 'rounded'\n ]);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n Optional,\n Self,\n SkipSelf,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtTbodyComponent } from '../ngt-tbody/ngt-tbody.component';\nimport { NgtTheadComponent } from '../ngt-thead/ngt-thead.component';\n\n@Component({\n selector: '[ngt-tr]',\n templateUrl: './ngt-tr.component.html',\n styleUrls: ['./ngt-tr.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtTrComponent {\n @HostBinding('class.evenStripped') @Input() public evenStripped: boolean;\n @HostBinding('class.oddStripped') @Input() public oddStripped: boolean;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @SkipSelf() @Optional() private ngtThead: NgtTheadComponent,\n @SkipSelf() @Optional() private ngtTbody: NgtTbodyComponent,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTr', {\n border: 'border-r border-t md:border-r-0 md:border-t-0',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n }, [this.getInheritanceStyles()]);\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n\n private getInheritanceStyles() {\n if (this.ngtThead) {\n return 'NgtTheadStyle';\n } else if (this.ngtTbody) {\n return 'NgtTbodyStyle';\n }\n\n return '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\nimport { NgtModalModule } from '../ngt-modal/ngt-modal.module';\nimport { NgtPaginationModule } from '../ngt-pagination/ngt-pagination.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtTagModule } from '../ngt-tag/ngt-tag.module';\nimport { NgtDatatableComponent } from './ngt-datatable.component';\nimport { NgtTbodyComponent } from './ngt-tbody/ngt-tbody.component';\nimport { NgtTdCheckComponent } from './ngt-td-check/ngt-td-check.component';\nimport { NgtTdComponent } from './ngt-td/ngt-td.component';\nimport { NgtThCheckComponent } from './ngt-th-check/ngt-th-check.component';\nimport { NgtThComponent } from './ngt-th/ngt-th.component';\nimport { NgtTheadComponent } from './ngt-thead/ngt-thead.component';\nimport { NgtTrComponent } from './ngt-tr/ngt-tr.component';\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\n\n@NgModule({\n declarations: [\n NgtDatatableComponent,\n NgtTbodyComponent,\n NgtTdComponent,\n NgtTdCheckComponent,\n NgtThComponent,\n NgtThCheckComponent,\n NgtTheadComponent,\n NgtTrComponent\n ],\n exports: [\n NgtDatatableComponent,\n NgtTbodyComponent,\n NgtTdComponent,\n NgtTdCheckComponent,\n NgtThComponent,\n NgtThCheckComponent,\n NgtTheadComponent,\n NgtTrComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtShiningModule,\n NgtPaginationModule,\n NgtCheckboxModule,\n NgtInputModule,\n NgtModalModule,\n NgtTagModule,\n NgtActionModule,\n NgtStylizableModule\n ]\n})\nexport class NgtDatatableModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-floating-button',\n templateUrl: './ngt-floating-button.component.html',\n styleUrls: ['./ngt-floating-button.component.css'],\n animations: [\n trigger('fadeY', [\n state('void', style({ opacity: 0, transform: 'translateY(10px)' })),\n transition(':enter, :leave', [\n animate(300)\n ])\n ]),\n\n trigger('openClose', [\n state('open', style({\n transform: 'rotate(180deg)'\n })),\n state('closed', style({\n transform: 'rotate(-180deg)'\n })),\n transition('open => closed', [\n animate('0.5s ease-in')\n ]),\n transition('closed => open', [\n animate('0.5s ease-in')\n ]),\n ]),\n ]\n})\nexport class NgtFloatingButtonComponent {\n @Input() public menus: Array<NgtFloatingButtonMenu>;\n @Input() public icon: string;\n @Input() public label: string;\n @Input() public withAnimation: boolean = false;\n\n public isOpen: boolean = false;\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtFloatingButton', {\n color: {\n bg: 'bg-blue-500',\n text: 'text-white',\n },\n px: 'px-4',\n py: 'py-4',\n h: 'h-12',\n w: 'w-12'\n });\n }\n\n public toggleMenu() {\n this.isOpen = !(this.isOpen);\n }\n\n public openExternalLink(url: string) {\n window.open(url, \"_blank\");\n this.toggleMenu();\n }\n\n public onClick(event: Event, menu: NgtFloatingButtonMenu) {\n event.stopPropagation();\n this.toggleMenu();\n\n if (typeof menu.action === 'function') {\n return menu.action();\n }\n\n throw new Error('Action must be a function!');\n }\n\n public isTypeAction(menu: NgtFloatingButtonMenu) {\n return menu.type == NgtFloatingButtonType.ACTION;\n }\n\n public isTypeNavigation(menu: NgtFloatingButtonMenu) {\n return menu.type == NgtFloatingButtonType.NAVIGATION;\n }\n}\n\nexport interface NgtFloatingButtonMenu {\n name?: string;\n type: NgtFloatingButtonType;\n icon?: string;\n tooltip?: string;\n externalLink?: boolean;\n url?: string;\n action?: Function;\n}\n\nexport enum NgtFloatingButtonType {\n NAVIGATION = 'NAVIGATION',\n ACTION = 'ACTION'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtFloatingButtonComponent } from './ngt-floating-button.component';\n\n@NgModule({\n declarations: [NgtFloatingButtonComponent],\n exports: [NgtFloatingButtonComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtSvgModule\n ]\n})\nexport class NgtFloatingButtonModule { }\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-slider',\n templateUrl: './ngt-slider.component.html',\n styleUrls: ['./ngt-slider.component.css'],\n providers: [\n NgtMakeProvider(NgtSliderComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtSliderComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n @ViewChild('display', { static: true }) public display: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean;\n @Input() public name: string;\n @Input() public min: string = '0';\n @Input() public max: string = '100';\n @Input() public step: string = '1';\n @Input() public color: NgtSliderColorSchemeEnum = NgtSliderColorSchemeEnum.PRIMARY;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this.display.nativeElement.innerHTML = this.value;\n }, 500);\n\n this.renderer.listen(this.element.nativeElement, 'change', () => {\n this.onNativeChange(this.element.nativeElement.value);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: boolean) {\n this.element.nativeElement.value = value;\n }\n\n public onNativeChange(value: boolean) {\n this.value = value;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtSliderColorSchemeEnum {\n PRIMARY = 'primary',\n SUCCESS = 'success',\n WARNING = 'warning',\n DANGER = 'danger'\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtSliderComponent } from './ngt-slider.component';\n\n@NgModule({\n declarations: [NgtSliderComponent],\n exports: [NgtSliderComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n ]\n})\nexport class NgtSliderModule { }\n","import { Component, EventEmitter, Output } from '@angular/core';\n\nimport { NgtRadioButtonComponent } from '../ngt-radio-button.component';\n\n@Component({\n selector: '[ngt-radio-button-container]',\n templateUrl: './ngt-radio-button-container.component.html',\n})\nexport class NgtRadioButtonContainerComponent {\n @Output() public onActiveRadioButtonChange = new EventEmitter();\n\n public setActiveRadioButton(activeRadioButton: NgtRadioButtonComponent) {\n this.onActiveRadioButtonChange.emit(activeRadioButton);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\n\n@Component({\n selector: 'ngt-radio-button',\n templateUrl: './ngt-radio-button.component.html',\n styleUrls: ['./ngt-radio-button.component.css'],\n providers: [\n NgtMakeProvider(NgtRadioButtonComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtRadioButtonComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public label: string;\n @Input() public name: string;\n @Input() public shining: boolean;\n @Input() public isSelectable: boolean = true;\n @Input() public isDisabled: boolean;\n\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Self() @Optional()\n private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n @Optional() @SkipSelf()\n private ngtRadioButtonContainer: NgtRadioButtonContainerComponent\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtRadioButtonContainer) {\n this.subscriptions.push(\n this.ngtRadioButtonContainer.onActiveRadioButtonChange.subscribe((activeRadioButton: NgtRadioButtonComponent) => {\n this.value = (activeRadioButton.name === this.name);\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\n color: {\n text: 'text-gray-500',\n border: 'border-gray-500',\n }\n });\n }\n\n public ngAfterViewInit() {\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\n this.onNativeChange(this.element.nativeElement.checked);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: boolean) {\n if (value) {\n this.element.nativeElement.checked = value;\n\n if (this.ngtRadioButtonContainer) {\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\n }\n }\n }\n\n public onNativeChange(value: boolean) {\n this.value = value ? value : !value;\n\n if (this.ngtRadioButtonContainer) {\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\n }\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\nimport { NgtRadioButtonComponent } from './ngt-radio-button.component';\n\n@NgModule({\n declarations: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\n exports: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n NgtHelperModule\n ]\n})\nexport class NgtRadioButtonModule { }\n","import {\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-textarea',\n templateUrl: './ngt-textarea.component.html',\n styleUrls: ['./ngt-textarea.component.css'],\n providers: [\n NgtMakeProvider(NgtTextareaComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtTextareaComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\n\n // Visual\n @Input() public label: string = \"\";\n @Input() public placeholder: string = \"\";\n @Input() public rows: string = \"3\";\n @Input() public showCharactersLength: boolean = false;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining: boolean = false;\n\n // Behavior\n @Input() public name: string;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public jit: boolean = false;\n @Input() public focus: boolean = false;\n\n // Validation\n @Input() public isRequired: boolean = false;\n @Input() public maxLength: number = 300;\n\n public componentReady = false;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private renderer: Renderer2,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTextarea', {\n text: 'text-sm',\n fontCase: '',\n color: {\n border: 'border-gray-400 focus:border-gray-700',\n bg: 'bg-bg-white focus:bg-white',\n text: 'text-gray-800'\n }\n });\n }\n\n public ngOnChanges(changes) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n }\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.warn(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\n }\n\n if (!this.name) {\n console.warn(\"The element must contain a name attribute!\", this.element.nativeElement);\n } else {\n setTimeout(() => {\n this.componentReady = true;\n\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public setFocus() {\n setTimeout(() => {\n this.element.nativeElement.focus();\n }, 200);\n }\n\n public clear() {\n this.element.nativeElement.value = '';\n this.value = '';\n }\n\n public change(value) {\n let nativeValue = this.getNativeValue();\n let ngModelValue = value ? value : '';\n\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (this.value != nativeValue) {\n this.element.nativeElement.value = ngModelValue;\n }\n }\n\n public getRemainingCharacters() {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length) {\n if ((this.maxLength - this.element.nativeElement.value.length) > 0) {\n return this.maxLength - this.element.nativeElement.value.length;\n } else {\n return 0;\n }\n }\n\n return this.maxLength;\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.focus) {\n this.setFocus();\n }\n\n let watch = \"change\";\n\n if (this.jit) {\n watch += \" keyup keydown keypress\";\n }\n\n watch.split(' ').forEach((evt) => {\n this.renderer.listen(this.element.nativeElement, evt, () => {\n let nativeValue = this.getNativeValue();\n\n if (this.value != nativeValue) {\n this.value = nativeValue;\n }\n });\n });\n\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\n // Backspace and delete\n if (event.keyCode != 8 && event.keyCode != 46) {\n event.preventDefault();\n\n return false;\n }\n }\n });\n\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n } else {\n console.warn(\"The element must contain a ngModel property\", this.element.nativeElement);\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n if (this.maxLength) {\n syncValidators.push(Validators.maxLength(this.maxLength));\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private getNativeValue() {\n return this.element.nativeElement.value;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtTextareaComponent } from './ngt-textarea.component';\n\n@NgModule({\n declarations: [NgtTextareaComponent],\n exports: [NgtTextareaComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtFormModule\n ]\n})\nexport class NgtTextareaModule { }\n","import {\n Component,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { FlatpickrOptions, Ng2FlatpickrComponent } from 'ng2-flatpickr';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\nconst Brazil = require(\"flatpickr/dist/l10n/pt.js\").default.pt;\nconst US = require(\"flatpickr/dist/l10n/default.js\").default;\n\nlet moment = require('moment');\nlet Inputmask = require('inputmask');\n\n@Component({\n selector: 'ngt-date',\n templateUrl: './ngt-date.component.html',\n styleUrls: ['./ngt-date.component.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n NgtMakeProvider(NgtDateComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtDateComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"ng2FlatpickrComponent\", { static: true }) public ng2FlatpickrComponent: Ng2FlatpickrComponent;\n\n // Visual\n @Input() public label: string = \"\";\n @Input() public placeholder: string = \"dd/mm/yyyy\";\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining = false;\n @Input() public dateFormat: string = 'd/m/Y H:i';\n @Input() public dateFormatNgModel = 'YYYY-MM-DD HH:mm:00';\n @Input() public showCalendarIcon: boolean = false;\n\n // Behavior\n @Input() public name: string;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public mode: NgtDateMode;\n @Input() public time_24hr: boolean = true;\n @Input() public enableTime: boolean = true;\n @Input() public noCalendar: boolean = false;\n @Input() public minuteIncrement: number = 1;\n @Input() public allowInput: boolean = false;\n @Input() public locale: NgtDateLocale = NgtDateLocale.BRAZIL;\n @Input() public allowClear: boolean = true;\n @Input() public minDate: string;\n @Input() public maxDate: string;\n @Input() public defaultDate: string;\n\n // Validation\n @Input() public isRequired: boolean = false;\n\n public ngtStyle: NgtStylizableService;\n public dateConfig: FlatpickrOptions;\n public nativeValue: any;\n public componentReady = false;\n public nativeName = uuid();\n public inputProperties: {\n htmlType?: string;\n length?: number;\n } = {};\n\n private subscriptions: Array<Subscription> = [];\n private lastInputedDateString: string;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtDate', {\n h: 'h-12',\n text: 'text-sm',\n fontCase: '',\n color: {\n text: 'text-gray-800'\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n\n if (changes.mode) {\n this.mode = getEnumFromString(changes.mode.currentValue, NgtDateMode);\n }\n\n if (changes.locale) {\n this.locale = getEnumFromString(changes.locale.currentValue, NgtDateLocale);\n }\n }\n\n public ngOnInit() {\n this.dateConfig = {\n dateFormat: this.dateFormat,\n mode: this.getDateMode(),\n minuteIncrement: this.minuteIncrement,\n minDate: this.minDate,\n maxDate: this.maxDate,\n time_24hr: this.time_24hr,\n enableTime: this.enableTime,\n noCalendar: this.noCalendar,\n allowInput: this.allowInput && !this.enableTime,\n locale: this.getLocale(),\n onChange: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, dateStr, instance, true),\n onClose: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, dateStr, instance, false),\n };\n\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n } else {\n setTimeout(() => {\n this.componentReady = true;\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');\n\n if (flatpickrElement?.length) {\n flatpickrElement[flatpickrElement.length - 1].remove();\n }\n\n this.destroySubscriptions();\n }\n\n public clearInput(clearInstance = false) {\n this.value = '';\n this.nativeValue = '';\n\n if (this.ng2FlatpickrComponent && clearInstance) {\n this.ng2FlatpickrComponent.setDateFromInput('');\n }\n }\n\n public change(value: any) {\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\n return this.clearInput();\n }\n\n if (value && value != this.nativeValue) {\n let firstValue = moment(value);\n\n if ((value instanceof Object && Object.keys(value).length) || (value instanceof Array && value.length)) {\n firstValue = moment(value[0]);\n\n if (value.length == 2) {\n firstValue = firstValue;\n\n let secondValue = moment(value[1]);\n\n if (firstValue.isValid() && secondValue.isValid()) {\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate([\n firstValue.format(this.getMomentDateFormat()),\n secondValue.format(this.getMomentDateFormat())\n ], true, this.dateFormat);\n }\n }\n }\n\n if (firstValue.isValid()) {\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate(firstValue.format(this.getMomentDateFormat()), true, this.dateFormat);\n }\n\n this.ng2FlatpickrComponent.setDateFromInput('');\n this.clearInput();\n }\n }\n\n public onNativeChange(value: any, dateStr: string, instance: any, triggerClose: boolean) {\n if (dateStr && this.allowInput && !this.enableTime && dateStr != this.lastInputedDateString) {\n this.lastInputedDateString = dateStr;\n\n return this.change(this.convertDateToAmericanFormat(dateStr));\n }\n\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\n if (triggerClose) {\n instance.close();\n }\n\n return this.clearInput();\n }\n\n if (this.mode == NgtDateMode.RANGE) {\n this.nativeValue = [];\n\n value.forEach(element => {\n element = moment(element);\n\n if (element && element.isValid()) {\n this.nativeValue.push(element.format(this.dateFormatNgModel));\n }\n });\n } else if (value[0]) {\n value = moment(value[0]);\n\n if (value && value.isValid()) {\n this.nativeValue = value.format(this.dateFormatNgModel);\n }\n }\n\n if (this.value != this.nativeValue) {\n this.value = this.nativeValue;\n }\n }\n\n public getNativeValue() {\n let nativeValue: any = this.nativeValue;\n\n if (nativeValue && nativeValue.format) {\n nativeValue = nativeValue.format(this.dateFormatNgModel);\n }\n\n return nativeValue;\n }\n\n public getFormattedNativeValue() {\n let nativeValue: any = this.nativeValue;\n\n if (nativeValue && Array.isArray(nativeValue)) {\n let formattedNativeValue: string = '';\n\n nativeValue.forEach(element => {\n element = moment(element);\n\n if (element.format && !this.enableTime) {\n formattedNativeValue += element.format('DD/MM/YYYY') + ' ';\n } else if (element.format && this.enableTime) {\n formattedNativeValue += element.format('DD/MM/YYYY HH:mm:00') + ' ';\n }\n });\n\n return formattedNativeValue;\n } else if (this.dateFormat == 'H:i') {\n return nativeValue;\n } else if (nativeValue) {\n nativeValue = moment(nativeValue);\n\n if (nativeValue.format && !this.enableTime) {\n return nativeValue.format('DD/MM/YYYY') + ' ';\n } else if (nativeValue.format && this.enableTime) {\n return nativeValue.format('DD/MM/YYYY HH:mm:00') + ' ';\n }\n }\n\n return this.placeholder;\n }\n\n public hasErrors(): boolean {\n return this.formControl?.errors && (this.formControl?.dirty || (this.formContainer && this.formContainer['submitted']));\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.defaultDate && !this.value) {\n this.value = moment(this.defaultDate).format(this.dateFormatNgModel);\n }\n\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n\n if (this.allowInput && !this.enableTime) {\n this.setupDateInputMask();\n }\n }\n }\n\n private setupDateInputMask(): void {\n if (this.locale == NgtDateLocale.BRAZIL) {\n return Inputmask('date', { mask: '99/99/9999' }).mask(this.ng2FlatpickrComponent.flatpickr['input']);\n }\n\n if (this.locale == NgtDateLocale.US) {\n return Inputmask('date', { mask: '9999-99-99' }).mask(this.ng2FlatpickrComponent.flatpickr['input']);\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private getLocale() {\n return this.locale == NgtDateLocale.US\n ? US\n : Brazil;\n }\n\n private getDateMode() {\n if (this.mode) {\n if (this.mode == NgtDateMode.RANGE) {\n return 'range';\n }\n }\n\n return 'single';\n }\n\n private getMomentDateFormat() {\n let dateFormat = '';\n\n for (let i = 0; i < this.dateFormat.length; i++) {\n switch (this.dateFormat.charAt(i)) {\n case 'd':\n dateFormat += 'DD';\n break;\n case 'm':\n dateFormat += 'MM';\n break;\n case 'M':\n dateFormat += 'MMM';\n break;\n case 'Y':\n dateFormat += 'YYYY';\n break;\n case '/':\n dateFormat += '/';\n break;\n case '-':\n dateFormat += '-';\n break;\n case ':':\n dateFormat += ':';\n break;\n case 'H':\n dateFormat += 'HH';\n break;\n case 'i':\n dateFormat += 'mm';\n break;\n case 's':\n dateFormat += 'ss';\n break;\n default:\n if (this.dateFormat.charAt(i) != '.') {\n dateFormat += this.dateFormat.charAt(i);\n }\n }\n }\n\n return dateFormat ? dateFormat : 'DD/MM/YYYY HH:mm:00';\n }\n\n private convertDateToAmericanFormat(dateTimeString: string): string {\n if (this.locale == NgtDateLocale.US) {\n return dateTimeString;\n }\n\n const splittedDate: Array<string> = dateTimeString.split('/');\n\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDateLocale {\n BRAZIL = 'BRAZIL',\n US = 'US'\n}\n\nexport enum NgtDateMode {\n SINGLE = 'SINGLE',\n RANGE = 'RANGE'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2FlatpickrModule } from 'ng2-flatpickr';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtDateComponent } from './ngt-date.component';\n\n@NgModule({\n declarations: [NgtDateComponent],\n exports: [NgtDateComponent],\n imports: [\n CommonModule,\n FormsModule,\n Ng2FlatpickrModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n ]\n})\nexport class NgtDateModule { }\n","import { Component, Injector, Input, OnChanges, OnDestroy, Optional, Self, SimpleChanges, SkipSelf } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-button',\n templateUrl: './ngt-button.component.html',\n styleUrls: ['./ngt-button.component.css'],\n})\nexport class NgtButtonComponent implements OnChanges, OnDestroy {\n @Input() public link: boolean = false;\n @Input() public href: string;\n @Input() public type: string = 'success';\n @Input() public loading: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public noSubmit: boolean = false;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n if (this.ngtFormComponent) {\n this.subscriptions.push(\n this.ngtFormComponent.onLoadingChange.subscribe((loading: boolean) => {\n this.loading = loading;\n })\n );\n }\n }\n\n public onClick(event: Event) {\n if (this.isDisabled || this.loading) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.type) {\n if (changes.type.currentValue == 'success') {\n this.ngtStyle.load(this.injector, 'NgtSuccessButton', {\n color: {\n bg: 'bg-green-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else if (changes.type.currentValue == 'warning') {\n this.ngtStyle.load(this.injector, 'NgtWarningButton', {\n color: {\n bg: 'bg-orange-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else if (changes.type.currentValue == 'danger') {\n this.ngtStyle.load(this.injector, 'NgtDangerButton', {\n color: {\n bg: 'bg-red-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else {\n this.ngtStyle.load(this.injector, 'NgtInfoButton', {\n color: {\n bg: 'bg-blue-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n }\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtButtonComponent } from './ngt-button.component';\n\n@NgModule({\n declarations: [NgtButtonComponent],\n exports: [NgtButtonComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtFormModule\n ]\n})\nexport class NgtButtonModule { }\n","import { Component, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-body',\n templateUrl: './ngt-portlet-body.component.html',\n styleUrls: ['./ngt-portlet-body.component.css']\n})\nexport class NgtPortletBodyComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletBody', {\n color: {\n text: 'text-black'\n },\n py: 'py-6',\n px: 'px-4 md:px-8'\n }, ['NgtPortletStyle']);\n }\n}\n","import { Component, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-footer',\n templateUrl: './ngt-portlet-footer.component.html',\n styleUrls: ['./ngt-portlet-footer.component.css']\n})\nexport class NgtPortletFooterComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletFooter', {\n color: {\n bg: 'bg-gray-200',\n text: 'text-black'\n }\n }, ['NgtPortletStyle']);\n }\n}\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-header',\n templateUrl: './ngt-portlet-header.component.html',\n styleUrls: ['./ngt-portlet-header.component.css']\n})\nexport class NgtPortletHeaderComponent {\n @Input() public caption: string = '';\n @Input() public icon: string = '';\n @Input() public helperTitle: string = '';\n @Input() public helperText: string = '';\n @Input() public helperIconColor: string = '';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletHeader', {\n h: 'h-auto',\n w: 'w-auto',\n text: 'text-xl',\n fontCase: '',\n border: 'border-b',\n color: {}\n }, ['NgtPortletStyle']);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet',\n templateUrl: './ngt-portlet.component.html',\n styleUrls: ['./ngt-portlet.component.css'],\n animations: [\n trigger('fadeUp', [\n state('void', style({ transform: 'translateY(20px)', opacity: 0 })),\n transition(':enter', [\n animate(500)\n ])\n ])\n ]\n})\nexport class NgtPortletComponent {\n @Input() public caption: string;\n @Input() public icon: string = null;\n @Input() public customLayout: boolean = false;\n @Input() public withFooter: boolean = false;\n @Input() public withBody: boolean = true;\n @Input() public helpTitle: string = '';\n @Input() public helpText: string = '';\n @Input() public helpIconColor: string = '';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortlet', {\n h: 'h-auto',\n shadow: 'shadow',\n color: {}\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtPortletBodyComponent } from './ngt-portlet-body/ngt-portlet-body.component';\nimport { NgtPortletFooterComponent } from './ngt-portlet-footer/ngt-portlet-footer.component';\nimport { NgtPortletHeaderComponent } from './ngt-portlet-header/ngt-portlet-header.component';\nimport { NgtPortletComponent } from './ngt-portlet.component';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\n\n@NgModule({\n declarations: [\n NgtPortletComponent,\n NgtPortletHeaderComponent,\n NgtPortletBodyComponent,\n NgtPortletFooterComponent\n ],\n exports: [\n NgtPortletComponent,\n NgtPortletHeaderComponent,\n NgtPortletBodyComponent,\n NgtPortletFooterComponent\n ],\n imports: [\n CommonModule,\n NgtSvgModule,\n NgtHelperModule\n ]\n})\nexport class NgtPortletModule { }\n","export enum Size {\n AUTO = 'AUTO',\n XS = 'XS',\n SM = 'SM',\n MD = 'MD',\n XL = 'XL',\n FULL = 'FULL'\n};\n","import { animate, AnimationStyleMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport function slideLeftToRightAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateX(-50px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function slideRightToLeftAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateX(50px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function fadeDownAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateY(-20px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function fadeUpAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateY(20px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n Injector,\n Input,\n Optional,\n Self,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\nimport { fadeDownAnimation } from '../../animations/ngt-angular-animations';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { Size } from '../../enums/size.enum';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-sidenav',\n templateUrl: './ngt-sidenav.component.html',\n styleUrls: ['./ngt-sidenav.component.css'],\n animations: [\n fadeDownAnimation('fadeDownAnimation', 600)\n ],\n})\n\nexport class NgtSidenavComponent implements AfterViewInit {\n @ViewChild('sideMenu', { static: true }) public sideMenuRef: ElementRef;\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\n\n @Input() public size: Size = Size.XS;\n @Input() public initVisible: boolean = false;\n @Input() public closeMenuOnMobileView: boolean = true;\n\n public visible: boolean = false;\n public open: boolean = false;\n public isMenuContracted: boolean = false;\n public ngtStyle: NgtStylizableService;\n\n private screenWidth: number;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStyleDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStyleDirective) {\n this.ngtStyle = this.ngtStyleDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Sidenav', {\n h: 'md:h-auto h-screen',\n color: {}\n });\n\n this.bindScreenSize();\n }\n\n @HostListener('window:resize', ['$event'])\n public bindScreenSize(event?) {\n this.screenWidth = window.innerWidth;\n }\n\n public ngAfterViewInit() {\n if (this.initVisible) {\n setTimeout(() => {\n this.visible = true;\n });\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.size) {\n this.size = getEnumFromString(changes.size.currentValue, Size);\n }\n }\n\n public toggleMenu() {\n if (this.open) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n }\n\n public closeMenu() {\n this.open = false;\n }\n\n public openMenu() {\n this.open = true;\n }\n\n public getNavSize() {\n switch (this.size) {\n case Size.AUTO: return 'md:w-auto w-4/12';\n case Size.XS: return 'md:w-1/12 w-4/12';\n case Size.SM: return 'md:w-2/12 w-5/12';\n case Size.MD: return 'md:w-4/12 w-6/12';\n case Size.XL: return 'md:w-6/12 w-full';\n case Size.FULL: return 'w-full';\n }\n }\n\n public getContainerSize() {\n if (!this.visible) {\n return 'w-full';\n }\n\n if (this.isMobileView()) {\n return 'w-full';\n }\n\n switch (this.size) {\n case Size.AUTO: return 'w-full';\n case Size.XS: return 'md:w-11/12 w-full';\n case Size.SM: return 'md:w-10/12 w-full';\n case Size.MD: return 'md:w-8/12 w-full';\n case Size.XL: return 'md:w-6/12 w-full';\n case Size.FULL: return 'w-full';\n }\n }\n\n public toggleMenuSize(size: Size) {\n if (this.isMenuContracted) {\n this.size = size;\n this.isMenuContracted = false;\n } else {\n this.size = Size.AUTO;\n this.isMenuContracted = true;\n }\n }\n\n public isMobileView() {\n if (!this.closeMenuOnMobileView) {\n return false;\n }\n\n return this.screenWidth < 1024;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtSidenavComponent } from './ngt-sidenav.component';\n\n@NgModule({\n declarations: [NgtSidenavComponent],\n exports: [NgtSidenavComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtSidenavModule { }\n","import { Component, ElementRef, Injector, Input, Optional, Self, ViewChild } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-header-nav',\n templateUrl: './ngt-header-nav.component.html',\n styleUrls: ['./ngt-header-nav.component.css']\n})\nexport class NgtHeaderNavComponent {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'HeaderNav', {\n h: 'h-auto',\n color: {}\n });\n }\n\n public ngAfterViewInit() {\n this.element.nativeElement.classList.add('tail-animate-fade-up');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtHeaderNavComponent } from './ngt-header-nav.component';\n\n@NgModule({\n declarations: [NgtHeaderNavComponent],\n exports: [NgtHeaderNavComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtHeaderNavModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-content',\n templateUrl: './ngt-content.component.html',\n styleUrls: ['./ngt-content.component.css']\n})\nexport class NgtContentComponent {\n @Input() public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective\n ) {\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Content', {\n color: {}\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtContentComponent } from './ngt-content.component';\n\n@NgModule({\n declarations: [NgtContentComponent],\n exports: [NgtContentComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtContentModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-section',\n templateUrl: './ngt-section.component.html',\n styleUrls: ['./ngt-section.component.css'],\n animations: [\n trigger('enterAnimation', [\n state('void', style({ transform: 'translateY(-20px)', opacity: 0 })),\n transition(':enter', [\n animate(400)\n ])\n ]),\n ]\n})\nexport class NgtSectionComponent {\n @Input() public icon: string;\n @Input() public caption: string;\n @Input() public subtitle: string;\n @Input() public accordion: boolean;\n @Input() public showSection: boolean = true;\n @Input() public removable: boolean;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpIconColor: string;\n\n @Output() public onRemove: EventEmitter<void> = new EventEmitter();\n @Output() public onToggleSection: EventEmitter<boolean> = new EventEmitter();\n\n public ngtSectionStyle: NgtStylizableService;\n public ngtCaptionStyle: NgtStylizableService;\n public ngtSubtitleStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\n ) {\n this.ngtCaptionStyle = new NgtStylizableService();\n this.ngtSubtitleStyle = new NgtStylizableService();\n\n if (this.ngtStylizableDirective) {\n this.ngtSectionStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtSectionStyle = new NgtStylizableService();\n }\n\n this.ngtSectionStyle.load(this.injector, 'NgtSection', {\n h: 'h-12',\n w: 'w-12',\n my: 'my-1',\n pr: 'pr-1',\n px: 'md:px-5',\n color: {\n text: 'text-gray-800'\n }\n });\n\n this.ngtCaptionStyle.load(this.injector, 'NgtSectionCaption', {\n text: 'text-sm',\n font: 'font-normal',\n ml: 'ml-2',\n pb: 'pb-2',\n border: 'border-none',\n color: {\n text: 'text-gray-800',\n border: ''\n }\n });\n\n this.ngtSubtitleStyle.load(this.injector, 'NgtSectionSubtitle', {\n text: 'text-xs',\n font: 'font-normal',\n border: 'border-none',\n ml: 'ml-2',\n color: {\n text: 'text-gray-500',\n border: ''\n }\n });\n }\n\n public open(): void {\n this.showSection = true;\n\n this.onToggleSection.emit(this.showSection);\n }\n\n public close(): void {\n this.showSection = false;\n\n this.onToggleSection.emit(this.showSection);\n }\n\n public toggle(): void {\n this.showSection = !this.showSection;\n\n this.onToggleSection.emit(this.showSection);\n }\n\n public remove(event: Event): void {\n event.stopImmediatePropagation();\n\n this.onRemove.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtSectionComponent } from './ngt-section.component';\n\n@NgModule({\n declarations: [NgtSectionComponent],\n exports: [NgtSectionComponent],\n imports: [\n CommonModule,\n NgtStylizableModule,\n NgtSvgModule,\n NgtHelperModule\n ]\n})\nexport class NgtSectionModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\nimport { element } from 'protractor';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\n\n@Component({\n selector: 'ngt-multi-select',\n templateUrl: './ngt-multi-select.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./ngt-multi-select.component.css'],\n providers: [\n NgtMakeProvider(NgtMultiSelectComponent)\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtMultiSelectComponent extends NgtBaseNgModel implements OnInit, OnDestroy, OnChanges {\n @ViewChild('containerRef') public containerRef: ElementRef;\n @ViewChild('inputSearch') public inputSearch: NgtInputComponent;\n @ViewChild('elementCheckboxTemplate') public elementCheckboxTemplate: TemplateRef<any>;\n\n /** Visual */\n @Input() public customOptionTemplate: TemplateRef<any>;\n @Input() public customHeaderTemplate: TemplateRef<any>;\n @Input() public label: string;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining: boolean = false;\n @Input() public loading: boolean = false;\n\n /** Behavior */\n @Input() public bindLabel: string | Function = 'name';\n @Input() public bindSearch: string = 'name';\n @Input() public itemsPerPage: number = 15;\n @Input() public name: string;\n @Input() public remoteResource: any;\n @Input() public items: Array<any> = [];\n @Input() public searchable: boolean = true;\n\n /** Validation */\n @Input() public isRequired: boolean;\n @Input() public isDisabled: boolean;\n\n @Output() public onDataChange: EventEmitter<Array<NgtSelectContainerSelectableElementInterface>> = new EventEmitter();\n\n public searchTerm: string = '';\n public searchInputName: string = uuid();\n\n public selectAllCheckboxName: string = uuid();\n public displayOnlySelectedName: string = uuid();\n\n public selectedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n public itemsTotal: number;\n public selectAllCheckbox: boolean;\n public displayOnlySelected: boolean;\n\n public nativeName: string = uuid();\n public nativeValue: any;\n\n public ngtStyle: NgtStylizableService;\n public selectableElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n public selectableElementsOnSearch: Array<NgtSelectContainerSelectableElementInterface> = [];\n public componentReady: boolean;\n\n private pagination: NgtHttpPagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n\n private subscriptions: Array<Subscription> = [];\n private inSearch: boolean;\n private searchTimeout: any;\n private previousSearchTerm: string = '';\n private becameVisible: boolean;\n\n public constructor(\n private ngtHttpService: NgtHttpService,\n private injector: Injector,\n private changeDetector: ChangeDetectorRef,\n\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n\n @Optional() @Host()\n public formContainer: ControlContainer,\n\n @Optional() @SkipSelf()\n public ngtFormComponent: NgtFormComponent,\n\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtMultiSelect', { h: 'h-64' });\n }\n\n @HostListener('scroll', ['$event'])\n public onScroll(event: any): void {\n const isScrollEnd = event.target.scrollTop && event.target.offsetHeight + event.target.scrollTop >= (event.target.scrollHeight - 30);\n\n if (isScrollEnd && !this.loading && !this.displayOnlySelected && this.selectableElements?.length\n && this.pagination.per_page < this.pagination.total) {\n const currentPerPage = typeof this.pagination.per_page === 'string'\n ? Number.parseInt(this.pagination.per_page)\n : this.pagination.per_page;\n\n setTimeout(() => this.loadData(currentPerPage + this.itemsPerPage, this.searchTerm));\n }\n }\n\n public ngOnInit(): void {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n }\n }\n\n public ngDoCheck(): void {\n if (!this.becameVisible && !this.isHidden()) {\n this.becameVisible = true;\n\n this.loadData().then(() => this.initComponentValidation());\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.isRequired && this.componentReady) {\n this.updateValidations();\n }\n\n if (changes.isDisabled) {\n this.displayOnlySelected = changes.isDisabled.currentValue;\n }\n\n if (changes.items) {\n this.bindSelectableElements(changes.items.currentValue);\n this.componentReady = true;\n }\n\n if (changes.remoteResource && this.becameVisible) {\n this.loadData().then(() => this.initComponentValidation());\n }\n\n if (changes.itemsPerPage) {\n this.pagination.per_page = changes.itemsPerPage.currentValue;\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public setFocus(): void {\n setTimeout(() => this.inputSearch.setFocus());\n }\n\n public refresh(): void {\n this.loadData(this.itemsPerPage, this.searchTerm);\n }\n\n public reset(): void {\n this.value = [];\n this.nativeValue = [];\n this.selectedElements = [];\n this.refresh();\n }\n\n public selectAll(): void {\n if (!this.loading && !this.isDisabled) {\n this.selectAllCheckbox = !this.selectAllCheckbox;\n\n this.value = [];\n this.nativeValue = [];\n this.selectedElements = [];\n\n this.loadData(this.selectAllCheckbox ? this.pagination.total : this.itemsPerPage)\n .then(() => {\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\n this.selectableElements.forEach(element => element.isSelected = this.selectAllCheckbox);\n\n if (this.selectAllCheckbox) {\n this.selectedElements = this.selectableElements;\n }\n });\n }\n }\n\n public onNativeChange(selectableElement: NgtSelectContainerSelectableElementInterface): void {\n if (this.componentReady) {\n this.handleElementSelection(selectableElement);\n\n if (this.hasChangesBetweenBindings(this.value, this.selectedElements)) {\n this.value = this.selectedElements.map(e => e.value);\n }\n }\n }\n\n public change(selectedElements: Array<any>): void {\n if (this.hasChangesBetweenBindings(selectedElements, this.selectedElements)) {\n if (this.selectableElements?.length) {\n this.bindSelectedElements(selectedElements);\n\n this.selectableElements.filter(element => this.isSelectedElement(element))\n .forEach(element => element.isSelected = true);\n\n this.selectableElementsOnSearch.filter(element => this.isSelectedElement(element))\n .forEach(element => element.isSelected = true);\n } else {\n this.selectedElements = selectedElements?.map(\n element => ({ uuid: uuid(), isSelected: true, value: element })\n ) ?? [];\n\n this.changeDetector.detectChanges();\n }\n\n if (!selectedElements?.length) {\n this.markAsPristine();\n }\n }\n }\n\n public toggleItem(event: Event, selectableElement: NgtSelectContainerSelectableElementInterface): void {\n event.stopImmediatePropagation();\n\n if (!this.isDisabled) {\n selectableElement.isSelected = !selectableElement.isSelected;\n\n this.handleElementSelection(selectableElement);\n }\n }\n\n public search(term: string): void {\n if (!this.componentReady || term === undefined || term === null || term === this.previousSearchTerm) {\n return;\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.previousSearchTerm = term;\n\n if (!term) {\n this.inSearch = false;\n\n if (this.items?.length) {\n return;\n }\n }\n\n this.inSearch = true;\n\n if (this.items?.length) {\n this.selectableElementsOnSearch = this.selectableElements.filter(\n item => this.getSelectableElementValue(item).includes(term)\n );\n } else {\n this.loadData(this.itemsPerPage, term);\n }\n }, 500);\n }\n\n public getSelectableElements(): Array<any> {\n if (this.inSearch && this.items?.length) {\n return this.selectableElementsOnSearch;\n } else if (this.displayOnlySelected) {\n return this.selectedElements;\n }\n\n return this.selectableElements;\n }\n\n public getSelectableElementValue(selectableItem: any): string {\n if (typeof this.bindLabel === 'function') {\n return this.bindLabel(selectableItem.value);\n } else if (typeof selectableItem.value['getAttribute'] === 'function') {\n return selectableItem.value.getAttribute(this.bindLabel);\n }\n\n return selectableItem.value[this.bindLabel];\n }\n\n public hasValidationErrors(): boolean {\n return this.formControl?.errors && (\n this.formControl.dirty || (this.formContainer && this.formContainer['submitted'])\n );\n }\n\n private handleElementSelection(selectableElement: NgtSelectContainerSelectableElementInterface): void {\n if (selectableElement.isSelected && !this.isSelectedElement(selectableElement)) {\n this.selectedElements.push(selectableElement);\n } else if (!selectableElement.isSelected && this.isSelectedElement(selectableElement)) {\n this.selectedElements = this.selectedElements.filter(\n selectedElement => selectedElement.uuid !== selectableElement.uuid\n );;\n this.onNativeChange(selectableElement);\n\n if (this.displayOnlySelected && !this.selectedElements.length) {\n this.displayOnlySelected = false;\n }\n }\n }\n\n private async loadData(perpage: number = this.itemsPerPage, searchTerm?: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.remoteResource) {\n if (perpage == this.itemsPerPage) {\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\n }\n\n this.selectableElements = [];\n this.loading = true;\n\n const pagination: NgtHttpPagination = { ...this.pagination, ...{ per_page: perpage } };\n const filters = searchTerm ? { [this.bindSearch]: searchTerm } : null;\n\n this.subscriptions.push(\n this.ngtHttpService.get(\n this.remoteResource, filters, pagination\n ).subscribe(\n (response: NgtHttpResponse) => {\n this.bindSelectableElements(response.data);\n this.pagination = response.meta.pagination;\n\n this.itemsTotal = this.pagination.total;\n this.loading = false;\n\n this.onDataChange.emit(this.selectableElements);\n this.componentReady = true;\n this.changeDetector.detectChanges();\n\n setTimeout(() => this.displayOnlySelected = this.isDisabled);\n\n resolve();\n },\n (error) => {\n console.error(error);\n this.loading = false;\n this.changeDetector.detectChanges();\n\n reject();\n }\n )\n );\n } else {\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\n }\n });\n }\n\n private bindSelectableElements(data: Array<any>): void {\n const formattedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n\n data.forEach(item => {\n const alreadySelected = this.findSelectedElement(item);\n\n if (alreadySelected) {\n formattedElements.push(alreadySelected);\n } else {\n formattedElements.push({ uuid: uuid(), isSelected: false, value: item });\n }\n });\n\n this.selectableElements = formattedElements;\n }\n\n private bindSelectedElements(selectedElements: Array<any>): void {\n this.selectableElements.forEach(selectableElement => {\n const shouldBeSelected: boolean = !!selectedElements?.find(\n selectedElement => this.compareWith(selectedElement, selectableElement.value)\n );\n\n if (shouldBeSelected) {\n selectableElement.isSelected = true;\n this.handleElementSelection(selectableElement);\n }\n });\n }\n\n private initComponentValidation(): void {\n if (this.formContainer?.control && (this.formControl = this.formContainer.control.get(this.name))) {\n this.formControl = this.formContainer.control.get(this.name);\n this.markAsPristine();\n this.updateValidations();\n }\n }\n\n private updateValidations(): void {\n const syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(this.isRequiredValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private isRequiredValidator(): any {\n return (control: AbstractControl) => {\n if (Array.isArray(this.value) && this.value.length > 0) {\n return null;\n }\n\n return { 'required': true };\n };\n }\n\n private findSelectedElement(item: any): any {\n return this.selectedElements.find(selectedElement => this.compareWith(selectedElement.value, item));\n }\n\n private compareWith(a: any, b: any): boolean {\n if (typeof a['getApiId'] === 'function' && typeof b['getApiId'] === 'function') {\n return a.getApiId() == b.getApiId();\n } else if (a.id && b.id) {\n return a.id == b.id;\n }\n\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n private hasChangesBetweenBindings(value: Array<any>, nativeValue: Array<any>): boolean {\n if (value?.length && !value[0].uuid) {\n nativeValue = nativeValue.map(element => element.value);\n }\n\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\n }\n\n private isSelectedElement(selectableElement: NgtSelectContainerSelectableElementInterface): boolean {\n return !!this.selectedElements.find(selectedElement => selectedElement.uuid === selectableElement.uuid);\n }\n\n private isHidden(): boolean {\n return !this.containerRef?.nativeElement.offsetParent;\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport interface NgtSelectContainerSelectableElementInterface {\n uuid: string;\n isSelected: boolean;\n value: any;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtMultiSelectComponent } from './ngt-multi-select.component';\n\n@NgModule({\n declarations: [\n NgtMultiSelectComponent\n ],\n exports: [\n NgtMultiSelectComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtInputModule,\n NgtCheckboxModule,\n NgtStylizableModule\n ]\n})\nexport class NgtMultiSelectModule { }\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtAttachmentHttpService {\n abstract preview(attachment: any): Observable<NgtAttachmentHttpResponse>;\n\n abstract thumbnail(attachment: any): Observable<NgtAttachmentHttpResponse>;\n\n abstract download(attachment: any): Observable<any>;\n\n abstract upload(remoteResource: any, file: any): Observable<any>;\n}\n\nexport interface NgtAttachmentHttpResponse {\n data?: any;\n}\n","import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { EloverdeDocViewerComponent } from 'eloverde-doc-viewer';\n\nimport { NgtTranslateService } from '../../../services/http/ngt-translate.service';\n\n@Component({\n selector: 'ngt-dropzone-file-viewer',\n styleUrls: ['./ngt-dropzone-file-viewer.component.css'],\n templateUrl: './ngt-dropzone-file-viewer.component.html'\n})\nexport class NgtDropzoneFileViewerComponent {\n @ViewChild(EloverdeDocViewerComponent) public eloverdeDocViewer: EloverdeDocViewerComponent;\n\n @Input() public url: string;\n @Input() public fileName: string;\n @Input() public fileSize: number;\n @Input() public disableContent: string = 'none';\n @Input() public canDownloadFile: boolean = true;\n\n @Output() public onClose: EventEmitter<void> = new EventEmitter();\n\n public canShowViewer: boolean;\n public loading: boolean;\n public maxFileSize: number = 10000000; /** 10 MB */\n\n public constructor(\n public ngtTranslateService: NgtTranslateService\n ) { }\n\n @HostListener('window:keydown', ['$event'])\n public keyEvent(event: KeyboardEvent) {\n if (event.code == 'Escape') {\n this.canShowViewer = false;\n\n setTimeout(() => this.onClose.emit(), 500);\n }\n }\n\n public init(): void {\n if (this.fileSize < this.maxFileSize) {\n this.loading = true;\n this.canShowViewer = true;\n }\n }\n\n public close(): void {\n this.canShowViewer = false;\n }\n\n public handleClose(): void {\n this.onClose.emit();\n }\n\n public downloadFile(): void {\n let file = document.createElement(\"a\");\n\n file.target = '_blank';\n file.href = this.url;\n file.setAttribute(\"download\", this.fileName);\n file.click();\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { NgxDropzoneChangeEvent, NgxDropzoneComponent } from 'ngx-dropzone';\nimport { forkJoin, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport Viewer from 'viewerjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtAttachmentHttpService } from '../../services/http/ngt-attachment-http.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\n\nexport interface NgtDropzoneFile {\n downloadUrl: string;\n previewUrl: string;\n thumbnailUrl: string;\n name: string;\n mimeType: string;\n fileSize: any;\n};\n\nexport enum NgtDropzoneFileTypeEnum {\n DOC = 'DOC',\n PDF = 'PDF',\n XLS = 'XLS',\n OTHER = 'OTHER'\n}\n\nexport enum NgtDropzonePreviewType {\n DEFAULT = 'DEFAULT',\n IMAGE = 'IMAGE',\n VIDEO = 'VIDEO'\n}\n\nexport enum NgtDropzoneErrorType {\n DEFAULT = 'DEFAULT',\n SIZE = 'SIZE',\n NO_MULTIPLE = 'NO_MULTIPLE',\n ITEMS_LIMIT = 'ITEMS_LIMIT',\n TYPE = 'TYPE'\n}\n\n@Component({\n selector: 'ngt-dropzone',\n templateUrl: './ngt-dropzone.component.html',\n styleUrls: ['./ngt-dropzone.component.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n NgtMakeProvider(NgtDropzoneComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtDropzoneComponent extends NgtBaseNgModel implements OnInit, OnDestroy, AfterContentChecked {\n @ViewChild('container') public container: ElementRef;\n @ViewChild(NgxDropzoneComponent, { static: true }) public ngxDropzone: NgxDropzoneComponent;\n @ViewChild(NgtDropzoneFileViewerComponent, { static: true }) public ngtDropzoneFileViewer: NgtDropzoneFileViewerComponent;\n\n // Visual\n @Input() public label: string;\n @Input() public placeholder: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n @Input() public helpTitle: string;\n\n // Behavior\n @Input() public resources: Array<NgtDropzoneFile> = [];\n @Input() public multipleSelection: boolean = false;\n @Input() public itemsLimit: number;\n @Input() public showFileName: boolean = false;\n @Input() public disableClick: boolean = false;\n @Input() public disabled: boolean = false;\n @Input() public viewMode: boolean = false;\n @Input() public removable: boolean = false;\n @Input() public canDownloadFile: boolean = true;\n @Input() public verticalExpandable: boolean = false;\n @Input() public acceptedFiles: string = '*' /** Mime type */;\n @Input() public maxFileSize: number; /** Bytes */\n @Input() public previewType: NgtDropzonePreviewType = NgtDropzonePreviewType.DEFAULT;\n @Input() public isRequired: boolean = false;\n @Input() public name: string;\n @Input() public remoteResource: any;\n\n @Output() public onFileSelected: EventEmitter<NgxDropzoneChangeEvent> = new EventEmitter();\n @Output() public onFileSelectError: EventEmitter<NgtDropzoneErrorType> = new EventEmitter();\n @Output() public onFileUploadFail: EventEmitter<any> = new EventEmitter();\n @Output() public onFileRemoved = new EventEmitter();\n @Output() public onFileUploadInit = new EventEmitter();\n @Output() public onFileUploaded = new EventEmitter();\n @Output() public onFilePreviewLoaded = new EventEmitter();\n\n public dropzoneHeight: string = '180px';\n public uploadedResources = [];\n public forceDisableClick: boolean = false;\n public nativeValue = [];\n public showNgtDropzoneFileViewer: boolean = false;\n public componentReady = false;\n public loading: boolean = false;\n public ngtDropzoneLoaderStyle: NgtStylizableService;\n public ngxElementId: string = uuid();\n public imageViewerOptions: any = {\n navbar: true,\n toolbar: {\n zoomIn: true,\n zoomOut: true,\n reset: true,\n rotateLeft: true,\n rotateRight: true,\n prev: true,\n next: true,\n }\n };\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtAttachmentHttpService: NgtAttachmentHttpService,\n private injector: Injector,\n private changeDetector: ChangeDetectorRef,\n ) {\n super();\n\n this.ngtDropzoneLoaderStyle = new NgtStylizableService();\n\n this.ngtDropzoneLoaderStyle.load(this.injector, 'NgtDropzoneLoader', {\n h: 'h-8',\n color: {\n text: 'text-gray-600'\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.previewType) {\n this.previewType = getEnumFromString(changes.previewType.currentValue, NgtDropzonePreviewType);\n }\n }\n\n public ngAfterContentChecked() {\n if (this.container && this.container.nativeElement) {\n this.dropzoneHeight = `${this.container.nativeElement.parentElement.offsetHeight}px`;\n\n this.changeDetector.detectChanges();\n }\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.componentReady = true;\n\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public imagePreview(index) {\n const images = this.uploadedResources.filter((resource) => this.isImage(resource));\n const imagesDiv = document.createElement(\"div\");\n\n images.forEach((image) => {\n let imageElement = document.createElement(\"img\");\n\n imageElement.src = image.file.url;\n\n imagesDiv.appendChild(imageElement);\n });\n\n this.onImageClick(imagesDiv, index);\n }\n\n public onImageClick(element, index?) {\n if (!this.viewMode) {\n this.forceDisableClick = true;\n }\n\n const ngtDropzoneComponent = this;\n\n if (index) {\n this.imageViewerOptions = { ...this.imageViewerOptions, ...{ initialViewIndex: index } };\n }\n\n const viewer = new Viewer(element, {\n ...this.imageViewerOptions, ...{\n hidden() {\n ngtDropzoneComponent.forceDisableClick = false;\n viewer.destroy();\n }\n }\n });\n\n viewer.show();\n }\n\n public onFileClick(url: string, name: string, size: number) {\n this.forceDisableClick = true;\n this.showNgtDropzoneFileViewer = true;\n this.ngtDropzoneFileViewer.url = url;\n this.ngtDropzoneFileViewer.fileName = name;\n this.ngtDropzoneFileViewer.fileSize = size;\n this.ngtDropzoneFileViewer.init();\n\n this.subscriptions.push(this.ngtDropzoneFileViewer.onClose.subscribe(() => {\n this.showNgtDropzoneFileViewer = false;\n this.forceDisableClick = false;\n }));\n }\n\n public async onSelect(event: NgxDropzoneChangeEvent) {\n if (event.rejectedFiles.length) {\n for (const rejectedFile of <any>event.rejectedFiles) {\n if (rejectedFile.reason == 'size') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.SIZE);\n break;\n } else if (rejectedFile.reason == 'no_multiple') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.NO_MULTIPLE);\n break;\n } else if (rejectedFile.reason == 'type') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.TYPE);\n break;\n } else {\n this.onFileSelectError.emit(NgtDropzoneErrorType.DEFAULT);\n break;\n }\n }\n }\n\n if (this.itemsLimit) {\n if (this.itemsLimit == 1 && event.addedFiles\n && event.addedFiles.length == this.itemsLimit && this.uploadedResources.length == this.itemsLimit) {\n this.uploadedResources = [];\n }\n\n if (event.addedFiles\n && event.addedFiles.length + this.uploadedResources.length <= this.itemsLimit) {\n this.onFileSelected.emit(event);\n this.uploadFiles(event.addedFiles);\n } else {\n this.onFileSelectError.emit(NgtDropzoneErrorType.ITEMS_LIMIT);\n }\n } else {\n this.onFileSelected.emit(event);\n this.uploadFiles(event.addedFiles);\n }\n }\n\n public async uploadFiles(files: Array<File>) {\n if (files && files.length) {\n let temporaryFiles = [];\n let temporaryAttachments = [];\n let observables = [];\n\n this.loading = true;\n this.onFileUploadInit.emit();\n\n files.forEach(file => {\n observables.push(this.ngtAttachmentHttpService.upload(this.remoteResource, file).pipe(\n map((response: any) => {\n if (response && response.data) {\n if (response.data.attributes && response.data.attributes.data) {\n file['url'] = response.data.attributes.data.url;\n }\n\n temporaryFiles.push({\n id: response.data.id,\n size: file.size,\n file: file\n });\n response.data['loaded'] = true;\n temporaryAttachments.push(response.data);\n }\n })\n ));\n });\n\n this.subscriptions.push(\n forkJoin(observables).subscribe(\n (response) => {\n this.uploadedResources.push(...temporaryFiles);\n\n if (this.itemsLimit == 1) {\n this.onNativeChange([...temporaryAttachments]);\n } else {\n this.onNativeChange([...temporaryAttachments, ...this.nativeValue]);\n }\n\n this.onFileUploaded.emit();\n this.loading = false;\n },\n (error) => {\n this.onFileUploadFail.emit(error);\n this.loading = false;\n })\n );\n }\n }\n\n public async loadFilePreview(attachments: any) {\n if (attachments && attachments.length && attachments[0]) {\n let temporaryResource = [];\n let observables = [];\n\n attachments.forEach(attachment => {\n if (!(attachment instanceof File) && !attachment.loaded) {\n this.loading = true;\n attachment['loaded'] = true;\n observables.push(this.ngtAttachmentHttpService.thumbnail(attachment).pipe(\n map((response: any) => {\n temporaryResource.push({\n id: response.data.getApiId(),\n file: response.data.getAttribute('file')\n });\n })\n ));\n }\n });\n\n this.subscriptions.push(\n forkJoin(observables).subscribe(\n (response) => {\n this.uploadedResources.push(...temporaryResource);\n this.onNativeChange(attachments);\n this.onFilePreviewLoaded.emit();\n this.loading = false;\n },\n (error) => {\n this.loading = false;\n })\n );\n }\n }\n\n public onRemove(resource: any) {\n this.uploadedResources.splice(this.uploadedResources.indexOf(resource), 1);\n this.nativeValue = this.nativeValue.filter(element => element.id != resource.id);\n this.onNativeChange(this.nativeValue);\n this.onFileRemoved.emit(resource);\n }\n\n public isImage(resource: any) {\n return this.previewType == 'IMAGE' || (resource.file && resource.file.type && resource.file.type.includes('image'));\n }\n\n public isVideo(resource: any) {\n return this.previewType == 'VIDEO' || (resource.file && resource.file.type && resource.file.type.includes('video'));\n }\n\n public isAudio(resource: any) {\n return (resource.file && resource.file.type && resource.file.type.includes('audio'));\n }\n\n public isFile(resource: any) {\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\n }\n\n public getFormattedFileSize(resource: any) {\n if (resource) {\n let size = resource.size || resource.fileSize;\n\n if (!size) {\n if (resource.file && resource.file.size) {\n size = resource.file.size;\n } else {\n size = 0;\n }\n }\n\n if (parseFloat(size) > 1000000) {\n return (parseFloat(size) / 1000000).toFixed(2) + ' Mb';\n }\n\n return Math.round(parseFloat(size) / 1000) + ' Kb';\n }\n }\n\n public onNativeChange(value: any) {\n if (value === undefined) {\n this.value = [];\n this.nativeValue = [];\n } else {\n this.nativeValue = value;\n\n if (JSON.stringify(this.value) != JSON.stringify(this.nativeValue)) {\n this.value = this.nativeValue;\n }\n }\n }\n\n public change(value: any) {\n if (value && !this.viewMode) {\n this.onNativeChange(Array.isArray(value) ? value : [value]);\n\n if (this.componentReady) {\n this.loadFilePreview(Array.isArray(value) ? value : [value]);\n }\n }\n }\n\n public downloadFile(attachment: any) {\n this.ngtAttachmentHttpService.download(attachment).subscribe(() => { });\n }\n\n public reset() {\n this.uploadedResources = [];\n this.value = [];\n this.nativeValue = [];\n this.initComponent();\n }\n\n public openFileSelector() {\n document.getElementById(this.ngxElementId).click();\n }\n\n private initComponent() {\n if (this.viewMode) {\n this.previewType = NgtDropzonePreviewType.DEFAULT;\n\n return;\n }\n\n if (this.formContainer && this.formContainer.control\n && (this.formControl = this.formContainer.control.get(this.name))) {\n this.resetFilesLoad();\n this.loadFilePreview(Array.isArray(this.value) ? this.value : [this.value]);\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n }\n\n private resetFilesLoad() {\n if (Array.isArray(this.value)) {\n this.value.forEach(element => {\n if (element) {\n element['loaded'] = false;\n }\n });\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n syncValidators.push();\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxDropzonePreviewComponent } from 'ngx-dropzone';\n\nimport { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\n\n@Component({\n selector: 'custom-dropzone-preview',\n templateUrl: './custom-dropzone-preview.component.html',\n providers: [\n {\n provide: NgxDropzonePreviewComponent,\n useExisting: CustomDropzonePreviewComponent\n }\n ]\n})\nexport class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent implements OnInit {\n public fileType: NgtDropzoneFileTypeEnum;\n\n public constructor(public sanitizer: DomSanitizer) {\n super(sanitizer);\n }\n\n public ngOnInit(): void {\n if (!this.file) {\n console.error('No file to read. Please provide a file using the [file] Input property.');\n\n return;\n }\n\n this.bindFileType();\n }\n\n private bindFileType(): void {\n if (this.file.type.includes('.sheet')) {\n this.fileType = NgtDropzoneFileTypeEnum.XLS;\n } else if (this.file.type.includes('pdf')) {\n this.fileType = NgtDropzoneFileTypeEnum.PDF;\n } else if (this.file.type.includes('.document')) {\n this.fileType = NgtDropzoneFileTypeEnum.DOC;\n } else {\n this.fileType = NgtDropzoneFileTypeEnum.OTHER;\n }\n }\n}\n","import { AfterViewInit, Component, Input, SimpleChanges, SkipSelf, ViewEncapsulation } from '@angular/core';\n\nimport { NgtDropzoneComponent, NgtDropzoneFile, NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\n\n@Component({\n selector: 'ngt-dropzone-view',\n templateUrl: './ngt-dropzone-view.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtDropzoneViewComponent implements AfterViewInit {\n @Input() public resources: Array<any>;\n\n public images: Array<NgtDropzoneFile>;\n public audios: Array<NgtDropzoneFile>;\n public videos: Array<NgtDropzoneFile>;\n public files: Array<NgtDropzoneFile>;\n\n public ngtDropzoneViewFileTypeEnum = NgtDropzoneFileTypeEnum;\n\n public constructor(\n @SkipSelf()\n public ngtDropzoneComponent: NgtDropzoneComponent\n ) { }\n\n public ngAfterViewInit() { }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.resources) {\n this.loadFiles();\n }\n }\n\n public loadFiles() {\n this.images = this.resources.filter((resource) => this.isImage(resource));\n this.audios = this.resources.filter((resource) => this.isAudio(resource));\n this.videos = this.resources.filter((resource) => this.isVideo(resource));\n this.files = this.resources.filter((resource) => this.isFile(resource));\n }\n\n public onImageClick(index) {\n const imagesDiv = document.createElement(\"div\");\n\n this.images.forEach((image: NgtDropzoneFile) => {\n let imageElement = document.createElement(\"img\");\n\n imageElement.src = image.previewUrl;\n\n imagesDiv.appendChild(imageElement);\n });\n\n this.ngtDropzoneComponent.onImageClick(imagesDiv, index);\n }\n\n public getFileType(resource: NgtDropzoneFile): NgtDropzoneFileTypeEnum {\n if (resource.mimeType.includes('.sheet')) {\n return NgtDropzoneFileTypeEnum.XLS;\n }\n\n if (resource.mimeType.includes('pdf')) {\n return NgtDropzoneFileTypeEnum.PDF;\n }\n\n if (resource.mimeType.includes('.document')) {\n return NgtDropzoneFileTypeEnum.DOC;\n }\n\n return NgtDropzoneFileTypeEnum.OTHER;\n }\n\n private isImage(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('image');\n }\n\n private isAudio(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('audio');\n }\n\n private isVideo(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('video');\n }\n\n private isFile(resource: NgtDropzoneFile) {\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EloverdeDocViewerModule } from 'eloverde-doc-viewer';\nimport { NgxDropzoneModule } from 'ngx-dropzone';\nimport { NgxViewerModule } from 'ngx-viewer';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { CustomDropzonePreviewComponent } from './custom-dropzone-preview/custom-dropzone-preview.component';\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nimport { NgtDropzoneViewComponent } from './ngt-dropzone-view/ngt-dropzone-view.component';\nimport { NgtDropzoneComponent } from './ngt-dropzone.component';\n\n@NgModule({\n exports: [NgtDropzoneComponent],\n declarations: [\n NgtDropzoneComponent,\n NgtDropzoneFileViewerComponent,\n NgtDropzoneViewComponent,\n CustomDropzonePreviewComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtValidationModule,\n NgxDropzoneModule,\n NgxViewerModule,\n NgtSvgModule,\n EloverdeDocViewerModule,\n NgtHelperModule\n ]\n})\nexport class NgtDropzoneModule { }\n","import { Component, ElementRef, EventEmitter, Injector, Input, Optional, Output, Self, ViewChild } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-popover',\n templateUrl: './ngt-popover.component.html'\n})\n\nexport class NgtPopoverComponent {\n @ViewChild('dropdownRef', { static: true }) public dropdownRef: ElementRef;\n @ViewChild('hostDiv') public hostDiv: ElementRef;\n\n @Input() public closeTimeout: number;\n @Input() public openMethod: string = NgtPopoverOpenMethod.HOVER;\n\n @Input() public closeOnClick: boolean;\n @Input() public placeOnBottom: boolean;\n @Input() public placeOnLeft: boolean;\n\n @Output() public onClick: EventEmitter<any> = new EventEmitter();\n\n public ngtStyle: NgtStylizableService;\n\n public stylesToCompile: Array<string> = ['h', 'w', 'px', 'py', 'm', 'mx', 'my', 'shadow', 'text', 'border', 'color.border', 'color.bg', 'color.text'];\n\n private clickTimeout;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n @Optional()\n public ngtTranslateService: NgtTranslateService,\n private injector: Injector,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPopover', {\n text: 'text-sm',\n fontCase: '',\n py: 'py-3',\n px: 'px-2',\n border: 'border',\n color: {\n border: 'border-gray-400',\n text: 'text-black',\n bg: 'bg-white'\n },\n });\n }\n\n public fireClickEvent(): void {\n if (this.clickTimeout) {\n clearTimeout(this.clickTimeout);\n }\n\n this.clickTimeout = setTimeout(() => {\n this.onClick.emit();\n\n const event = new MouseEvent('click', {bubbles: true});\n\n event.preventDefault();\n event.stopPropagation();\n\n this.hostDiv.nativeElement.dispatchEvent(event);\n }, 500);\n }\n}\n\nexport enum NgtPopoverOpenMethod {\n CLICK = 'CLICK',\n POPOVER_CLICK = 'POPOVER_CLICK',\n RIGHT_CLICK = 'RIGHT_CLICK',\n HOVER = 'HOVER'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtDropdownModule } from '../ngt-dropdown/ngt-dropdown.module';\nimport { NgtPopoverComponent } from './ngt-popover.component';\n\n@NgModule({\n declarations: [ NgtPopoverComponent ],\n exports: [ NgtPopoverComponent ],\n imports: [\n CommonModule,\n NgtDropdownModule\n ]\n})\nexport class NgtPopoverModule { }\n","/*\n * Public API Surface of ng-tailwind\n */\n\n//Translate\nexport * from './services/http/ngt-translate.service';\n\n//NgtHttpService\nexport * from './services/http/ngt-http.service';\n\n//NgtHttpValidationService\nexport * from './services/http/ngt-http-validation.service';\n\n//NgtHttpResourceService\nexport * from './services/http/ngt-http-resource.service';\n\n//NgtDatatable\nexport * from './components/ngt-datatable/ngt-datatable.module';\nexport * from './components/ngt-datatable/ngt-datatable.component';\nexport * from './components/ngt-datatable/ngt-tbody/ngt-tbody.component';\nexport * from './components/ngt-datatable/ngt-td/ngt-td.component';\nexport * from './components/ngt-datatable/ngt-td-check/ngt-td-check.component';\nexport * from './components/ngt-datatable/ngt-th/ngt-th.component';\nexport * from './components/ngt-datatable/ngt-th-check/ngt-th-check.component';\nexport * from './components/ngt-datatable/ngt-thead/ngt-thead.component';\nexport * from './components/ngt-datatable/ngt-tr/ngt-tr.component';\n\n//NgtPagination\nexport * from './components/ngt-pagination/ngt-pagination.module';\nexport * from './components/ngt-pagination/ngt-pagination.component';\n\n//NgtDropdown\nexport * from './components/ngt-dropdown/ngt-dropdown.module';\nexport * from './components/ngt-dropdown/ngt-dropdown.component';\nexport * from './components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component';\n\n//NgtFloatingButton\nexport * from './components/ngt-floating-button/ngt-floating-button.module';\nexport * from './components/ngt-floating-button/ngt-floating-button.component';\n\n//NgtTag\nexport * from './components/ngt-tag/ngt-tag.module';\nexport * from './components/ngt-tag/ngt-tag.component';\n\n//NgtAction\nexport * from './components/ngt-action/ngt-action.module';\nexport * from './components/ngt-action/ngt-action.component';\n\n//NgtCheckbox\nexport * from './components/ngt-checkbox/ngt-checkbox.module';\nexport * from './components/ngt-checkbox/ngt-checkbox.component';\n\n//NgtSlider\nexport * from './components/ngt-slider/ngt-slider.module';\nexport * from './components/ngt-slider/ngt-slider.component';\n\n//NgtRadioButton\nexport * from './components/ngt-radio-button/ngt-radio-button.module';\nexport * from './components/ngt-radio-button/ngt-radio-button.component';\nexport * from './components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component';\n\n//NgtTextarea\nexport * from './components/ngt-textarea/ngt-textarea.module';\nexport * from './components/ngt-textarea/ngt-textarea.component';\n\n//NgtModal\nexport * from './components/ngt-modal/ngt-modal.module';\nexport * from './components/ngt-modal/ngt-modal.component';\nexport * from './components/ngt-modal/ngt-modal-header/ngt-modal-header.component';\nexport * from './components/ngt-modal/ngt-modal-body/ngt-modal-body.component';\nexport * from './components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component';\n\n//NgtDate\nexport * from './components/ngt-date/ngt-date.module';\nexport * from './components/ngt-date/ngt-date.component';\n\n//NgtButton\nexport * from './components/ngt-button/ngt-button.module';\nexport * from './components/ngt-button/ngt-button.component';\n\n//NgtPortlet\nexport * from './components/ngt-portlet/ngt-portlet.module';\nexport * from './components/ngt-portlet/ngt-portlet.component';\nexport * from './components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component';\nexport * from './components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component';\nexport * from './components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component';\nexport * from './enums/size.enum';\n\n//NgtSidenav\nexport * from './components/ngt-sidenav/ngt-sidenav.module';\nexport * from './components/ngt-sidenav/ngt-sidenav.component';\n\n//NgtHeader\nexport * from './components/ngt-header-nav/ngt-header-nav.module';\nexport * from './components/ngt-header-nav/ngt-header-nav.component';\n\n//NgtContent\nexport * from './components/ngt-content/ngt-content.module';\nexport * from './components/ngt-content/ngt-content.component';\n\n// NgtSection\nexport * from './components/ngt-section/ngt-section.module';\nexport * from './components/ngt-section/ngt-section.component';\n\n//NgtInput\nexport * from './components/ngt-input/ngt-input.module';\nexport * from './components/ngt-input/ngt-input.component';\n\n//NgtStylizable\nexport * from './directives/ngt-stylizable/ngt-stylizable.module';\nexport * from './directives/ngt-stylizable/ngt-stylizable.directive';\n\n//NgtSelect\nexport * from './components/ngt-select/ngt-select.module';\nexport * from './components/ngt-select/ngt-select.component';\nexport * from './components/ngt-select/ngt-select.directive';\n\n//NgtSelectContainer\nexport * from './components/ngt-multi-select/ngt-multi-select.module';\nexport * from './components/ngt-multi-select/ngt-multi-select.component';\n\n//NgtSvg\nexport * from './components/ngt-svg/ngt-svg.module';\nexport * from './components/ngt-svg/ngt-svg.component';\n\n//NgtShining\nexport * from './components/ngt-shining/ngt-shining.module';\nexport * from './components/ngt-shining/ngt-shining.component';\n\n//NgtForm\nexport * from './components/ngt-form/ngt-form.module';\nexport * from './components/ngt-form/ngt-form.component';\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module';\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component';\n\n//NgtHttpFormService\nexport * from './services/http/ngt-http-form.service';\n\n//NgtDropzone\nexport * from './components/ngt-dropzone/ngt-dropzone.module';\nexport * from './components/ngt-dropzone/ngt-dropzone.component';\nexport * from './services/http/ngt-attachment-http.service';\n\n//NgtAnimations\nexport * from './animations/ngt-angular-animations';\n\n// NgtHelper\nexport * from './components/ngt-helper/ngt-helper.module';\nexport * from './components/ngt-helper/ngt-helper.component';\n\n// NgtPopover\nexport * from './components/ngt-popover/ngt-popover.module';\nexport * from './components/ngt-popover/ngt-popover.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NgtBaseNgModel as ɵa,NgtMakeProvider as ɵb} from './base/ngt-base-ng-model';\nexport {CustomDropzonePreviewComponent as ɵg} from './components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component';\nexport {NgtDropzoneFileViewerComponent as ɵe} from './components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nexport {NgtDropzoneViewComponent as ɵf} from './components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component';\nexport {NgtValidationComponent as ɵd} from './components/ngt-validation/ngt-validation.component';\nexport {NgtValidationModule as ɵc} from './components/ngt-validation/ngt-validation.module';"],"names":["Inputmask"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-tailwind.js","sources":["../../../projects/ng-tailwind/src/services/http/ngt-translate.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-validation.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-resource.service.ts","../../../projects/ng-tailwind/src/services/ngt-stylizable/ngt-stylizable.service.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.directive.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.module.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.component.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.module.ts","../../../projects/ng-tailwind/src/base/ngt-base-ng-model.ts","../../../projects/ng-tailwind/src/helpers/enum/enum.ts","../../../projects/ng-tailwind/src/helpers/form/form.ts","../../../projects/ng-tailwind/src/helpers/routing/route.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-form.service.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.component.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.component.ts","../../../projects/ng-tailwind/src/helpers/uuid.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.module.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.module.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.component.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.module.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.component.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.module.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.module.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.component.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.module.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.directive.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.module.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.component.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.module.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.component.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.module.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tbody/ngt-tbody.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td-check/ngt-td-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td/ngt-td.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th-check/ngt-th-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th/ngt-th.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-thead/ngt-thead.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tr/ngt-tr.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.module.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.component.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.module.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.component.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.module.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.component.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.module.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.module.ts","../../../projects/ng-tailwind/src/enums/size.enum.ts","../../../projects/ng-tailwind/src/animations/ngt-angular-animations.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.component.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.module.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.component.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.module.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.component.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.module.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.component.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.module.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.module.ts","../../../projects/ng-tailwind/src/services/http/ngt-attachment-http.service.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.module.ts","../../../projects/ng-tailwind/src/components/ngt-popover/ngt-popover.component.ts","../../../projects/ng-tailwind/src/components/ngt-popover/ngt-popover.module.ts","../../../projects/ng-tailwind/src/public-api.ts","../../../projects/ng-tailwind/src/ng-tailwind.ts"],"sourcesContent":["export abstract class NgtTranslateService {\n public abstract ngtFormDefaultValidationMessage: string;\n\n public abstract ngtDatatableNoDataFound: string;\n public abstract ngtMultiSelectNoDataFound: string;\n\n public abstract ngtSelectLoadingText: string;\n public abstract ngtSelectNotFoundText: string;\n public abstract ngtSelectTypeToSearchText: string;\n public abstract ngtSelectClearAllTooltip: string;\n public abstract ngtSelectPlaceholder: string;\n public abstract ngtSelectCreateText: string;\n\n public abstract ngtTextAreaRemainingCharacters: string;\n\n public abstract ngtStandardHelperTitle: string;\n\n public abstract ngtFileTooLargeForPreview: string;\n public abstract ngtFileTooLargeForPreviewNoDownloadPermission: string;\n\n public abstract ngtValidationMaxCharactersExceded: string;\n public abstract ngtValidationRequiredField: string;\n public abstract ngtValidationInvalidEmail: string;\n public abstract ngtValidationAlreadyExists: string;\n public abstract ngtValidationInvalidCnpj: string;\n public abstract ngtValidationInvalidCpf: string;\n public abstract ngtValidationPasswordRequiredMinCharacters: string;\n public abstract ngtValidationFieldsNotMatch: string;\n public abstract ngtValidationInvalidDate: string;\n public abstract ngtValidationInvalidPrevision: string;\n public abstract ngtValidationExternalServerUnavailable: string;\n public abstract ngtValidationValueMustBeGreaterThan(minValue?: number | string): string;\n public abstract ngtValidationMinLengthField(minLenth?: number | string): string;\n\n public abstract ngtPagination(from: number | string, to: number | string, total: number | string): string;\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtHttpService {\n abstract get(connector: any, filters: any, pagination: NgtHttpPagination, sort?: NgtHttpSort): Observable<NgtHttpResponse>;\n\n abstract post(data: any): Observable<any>;\n\n abstract put(data: any): Observable<any>;\n\n abstract delete(data: any): Observable<any>;\n}\n\nexport interface NgtHttpResponse {\n data?: any;\n meta: NgtHttpMeta;\n}\n\nexport interface NgtHttpMeta {\n pagination: NgtHttpPagination;\n}\n\nexport interface NgtHttpPagination {\n count: number;\n page: number;\n pages: number;\n total: number;\n from: number;\n to: number;\n per_page: number;\n}\n\nexport interface NgtHttpSort {\n field: string;\n direction: string;\n}\n","export interface NgtHttpValidationService {\n emailValidation(email: string): Promise<NgtHttpValidationResponse>;\n phoneValidation(phone: string): Promise<NgtHttpValidationResponse>;\n}\n\nexport abstract class NgtHttpValidationService {\n public abstract unique(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\n\n public abstract exists(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\n}\n\nexport interface NgtHttpValidationResponse {\n valid: any;\n}\n","export interface NgtHttpFindExistingResourceInterface {\n table: string;\n column: string;\n value?: string;\n ignore_id?: string;\n}\n\nexport interface NgtHttpFindExistingResourceResponse {\n id: string;\n}\n\nexport abstract class NgtHttpResourceService {\n public abstract findExisting(findExistingResource: NgtHttpFindExistingResourceInterface): Promise<NgtHttpFindExistingResourceResponse>;\n}\n","import { Injector } from '@angular/core';\n\nexport class NgtStylizableService {\n private _color: any;\n private _h: string;\n private _w: string;\n private _p: string;\n private _px: string;\n private _py: string;\n private _pt: string;\n private _pr: string;\n private _pb: string;\n private _pl: string;\n private _m: string;\n private _mx: string;\n private _my: string;\n private _mt: string;\n private _mr: string;\n private _mb: string;\n private _ml: string;\n private _border: string;\n private _shadow: string;\n private _rounded: string;\n private _font: string;\n private _text: string;\n private _breakWords: string;\n private _overflow: string;\n private _position: string;\n private _justifyContent: string;\n private _cursor: string;\n private _fontCase: string;\n\n public get color() {\n return this._color;\n }\n\n public set color(color) {\n if (color.bg) {\n color.bg = this.getQualifiedValue('bg-', color.bg);\n }\n\n if (color.text) {\n color.text = this.getQualifiedValue('text-', color.text);\n }\n\n if (color.border) {\n color.border = this.getQualifiedValue('border-', color.border);\n }\n\n this._color = color;\n }\n\n public set textColor(textColor) {\n this._color = this._color ? this._color : {};\n this._color.text = this.getQualifiedValue('text-', textColor);\n }\n\n public set bgColor(bgColor) {\n this._color = this._color ? this._color : {};\n this._color.bg = this.getQualifiedValue('bg-', bgColor);\n }\n\n public set borderColor(borderColor) {\n this._color = this._color ? this._color : {};\n this._color.border = this.getQualifiedValue('border-', borderColor);\n }\n\n public get h(): string {\n return this._h;\n }\n\n public set h(h: string) {\n this._h = this.getQualifiedValue('h-', h);\n }\n\n public get w(): string {\n return this._w;\n }\n\n public set w(w: string) {\n this._w = this.getQualifiedValue('w-', w);\n }\n\n public get p(): string {\n return this._p;\n }\n\n public set p(p: string) {\n this._p = this.getQualifiedValue('p-', p);\n }\n\n public get px(): string {\n return this._px;\n }\n\n public set px(px: string) {\n this._px = this.getQualifiedValue('px-', px);\n }\n\n public get py(): string {\n return this._py;\n }\n\n public set py(py: string) {\n this._py = this.getQualifiedValue('py-', py);\n }\n\n public get pt(): string {\n return this._pt;\n }\n\n public set pt(pt: string) {\n this._pt = this.getQualifiedValue('pt-', pt);\n }\n\n public get pr(): string {\n return this._pr;\n }\n\n public set pr(pr: string) {\n this._pr = this.getQualifiedValue('pr-', pr);\n }\n\n public get pb(): string {\n return this._pb;\n }\n\n public set pb(pb: string) {\n this._pb = this.getQualifiedValue('pb-', pb);\n }\n\n public get pl(): string {\n return this._pl;\n }\n\n public set pl(pl: string) {\n this._pl = this.getQualifiedValue('pl-', pl);\n }\n\n public get m(): string {\n return this._m;\n }\n\n public set m(m: string) {\n this._m = this.getQualifiedValue('m-', m);\n }\n\n public get mx(): string {\n return this._mx;\n }\n\n public set mx(mx: string) {\n this._mx = this.getQualifiedValue('mx-', mx);\n }\n\n public get my(): string {\n return this._my;\n }\n\n public set my(my: string) {\n this._my = this.getQualifiedValue('my-', my);\n }\n\n public get mt(): string {\n return this._mt;\n }\n\n public set mt(mt: string) {\n this._mt = this.getQualifiedValue('mt-', mt);\n }\n\n public get mr(): string {\n return this._mr;\n }\n\n public set mr(mr: string) {\n this._mr = this.getQualifiedValue('mr-', mr);\n }\n\n public get mb(): string {\n return this._mb;\n }\n\n public set mb(mb: string) {\n this._mb = this.getQualifiedValue('mb-', mb);\n }\n\n public get ml(): string {\n return this._ml;\n }\n\n public set ml(ml: string) {\n this._ml = this.getQualifiedValue('ml-', ml);\n }\n\n public get border(): string {\n return this._border;\n }\n\n public set border(border: string) {\n this._border = this.getQualifiedValue('border', border);\n }\n\n public get shadow(): string {\n return this._shadow;\n }\n\n public set shadow(shadow: string) {\n this._shadow = this.getQualifiedValue('shadow', shadow);\n }\n\n public get rounded(): string {\n return this._rounded;\n }\n\n public set rounded(rounded: string) {\n this._rounded = this.getQualifiedValue('rounded', rounded);\n }\n\n public get font(): string {\n return this._font;\n }\n\n public set font(font: string) {\n this._font = this.getQualifiedValue('font', font);\n }\n\n public get text(): string {\n return this._text;\n }\n\n public set text(text: string) {\n this._text = this.getQualifiedValue('text', text);\n }\n\n public get breakWords(): string {\n return this._breakWords;\n }\n\n public set breakWords(breakWords: string) {\n this._breakWords = this.getQualifiedValue('break', breakWords);\n }\n\n public get overflow(): string {\n return this._overflow;\n }\n\n public set overflow(overflow: string) {\n this._overflow = this.getQualifiedValue('overflow', overflow);\n }\n\n public get position(): string {\n return this._position;\n }\n\n public set position(position: string) {\n this._position = position;\n }\n\n public get justifyContent(): string {\n return this._justifyContent;\n }\n\n public set justifyContent(justifyContent: string) {\n this._justifyContent = this.getQualifiedValue('justify', justifyContent);\n }\n\n public get cursor(): string {\n return this._cursor;\n }\n\n public set cursor(cursor: string) {\n this._cursor = this.getQualifiedValue('cursor', cursor);\n }\n\n public get fontCase(): string {\n return this._fontCase;\n }\n\n public set fontCase(fontCase: string) {\n this._fontCase = this.getQualifiedValue('', fontCase);\n }\n\n public load(injector: Injector, style: string, defaultValue = null, inheritanceStyles = []) {\n let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});\n\n defaultValue = defaultValue ? defaultValue : {};\n\n let requestedStyle = <NgtStylizableService>injector.get(style + 'Style', defaultValue);\n\n this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));\n\n inheritanceStyles.forEach(style => {\n let requestedStyle = <NgtStylizableService>injector.get(style, {});\n\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\n });\n\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\n }\n\n public compile(styles: Array<string>) {\n return styles\n .map((style: string) => this.getQualifiedStyle(style))\n .join(' ');\n }\n\n private loadObjectProperties(targetObject, object, properties: Array<string>) {\n properties.forEach((key) => {\n if (typeof (object[key]) === 'object') {\n targetObject[key] = targetObject[key] ? targetObject[key] : {};\n targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));\n } else {\n targetObject[key] = object[key];\n }\n });\n\n return targetObject;\n }\n\n private getQualifiedStyle(style: string) {\n if (!style.includes('color')) {\n return this['_' + style];\n }\n\n switch (style) {\n case 'color.bg': return this._color.bg;\n case 'color.text': return this._color.text;\n case 'color.border': return this._color.border;\n }\n }\n\n private getAllowedKeys(style: NgtStylizableService) {\n let keys = Object.keys(style);\n\n if (Array.isArray(keys)) {\n return keys.filter(key => [\n 'color',\n 'h',\n 'w',\n 'p',\n 'px',\n 'py',\n 'pt',\n 'pr',\n 'pb',\n 'pl',\n 'm',\n 'mx',\n 'my',\n 'mt',\n 'mr',\n 'mb',\n 'ml',\n 'border',\n 'shadow',\n 'rounded',\n 'font',\n 'text',\n 'breakWords',\n 'overflow',\n 'position',\n 'justifyContent',\n 'cursor',\n 'fontCase'\n ].includes(key));\n }\n }\n\n private getQualifiedValue(requiredPrefix: string, value: string) {\n value.split(' ').forEach((item) => {\n if (!item.includes(requiredPrefix)) {\n throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');\n }\n });\n\n return value;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Directive({\n selector: '[ngt-stylizable]'\n})\nexport class NgtStylizableDirective {\n private ngtStylizableService: NgtStylizableService;\n\n public constructor() {\n this.ngtStylizableService = new NgtStylizableService();\n }\n\n public getNgtStylizableService() {\n return this.ngtStylizableService;\n }\n\n public get color() {\n return this.ngtStylizableService.color;\n }\n\n @Input('color')\n public set color(color) {\n this.ngtStylizableService.color = color;\n }\n\n @Input('color.text')\n public set textColor(textColor: string) {\n this.ngtStylizableService.textColor = textColor;\n }\n\n @Input('color.bg')\n public set bgColor(bgColor: string) {\n this.ngtStylizableService.bgColor = bgColor;\n }\n\n @Input('color.border')\n public set borderColor(borderColor) {\n this.ngtStylizableService.borderColor = borderColor;\n }\n\n public get h(): string {\n return this.ngtStylizableService.h;\n }\n\n @Input('h')\n public set h(h: string) {\n this.ngtStylizableService.h = h;\n }\n\n public get w(): string {\n return this.ngtStylizableService.w;\n }\n\n @Input('w')\n public set w(w: string) {\n this.ngtStylizableService.w = w;\n }\n\n public get p(): string {\n return this.ngtStylizableService.p;\n }\n\n @Input('p')\n public set p(p: string) {\n this.ngtStylizableService.p = p;\n }\n\n public get px(): string {\n return this.ngtStylizableService.px;\n }\n\n @Input('px')\n public set px(px: string) {\n this.ngtStylizableService.px = px;\n }\n\n public get py(): string {\n return this.ngtStylizableService.py;\n }\n\n @Input('py')\n public set py(py: string) {\n this.ngtStylizableService.py = py;\n }\n\n public get pt(): string {\n return this.ngtStylizableService.pt;\n }\n\n @Input('pt')\n public set pt(pt: string) {\n this.ngtStylizableService.pt = pt;\n }\n\n public get pr(): string {\n return this.ngtStylizableService.pr;\n }\n\n @Input('pr')\n public set pr(pr: string) {\n this.ngtStylizableService.pr = pr;\n }\n\n public get pb(): string {\n return this.ngtStylizableService.pb;\n }\n\n @Input('pb')\n public set pb(pb: string) {\n this.ngtStylizableService.pb = pb;\n }\n\n public get pl(): string {\n return this.ngtStylizableService.pl;\n }\n\n @Input('pl')\n public set pl(pl: string) {\n this.ngtStylizableService.pl = pl;\n }\n\n public get m(): string {\n return this.ngtStylizableService.m;\n }\n\n @Input('m')\n public set m(m: string) {\n this.ngtStylizableService.m = m;\n }\n\n public get mx(): string {\n return this.ngtStylizableService.mx;\n }\n\n @Input('mx')\n public set mx(mx: string) {\n this.ngtStylizableService.mx = mx;\n }\n\n public get my(): string {\n return this.ngtStylizableService.my;\n }\n\n @Input('my')\n public set my(my: string) {\n this.ngtStylizableService.my = my;\n }\n\n public get mt(): string {\n return this.ngtStylizableService.mt;\n }\n\n @Input('mt')\n public set mt(mt: string) {\n this.ngtStylizableService.mt = mt;\n }\n\n public get mr(): string {\n return this.ngtStylizableService.mr;\n }\n\n @Input('mr')\n public set mr(mr: string) {\n this.ngtStylizableService.mr = mr;\n }\n\n public get mb(): string {\n return this.ngtStylizableService.mb;\n }\n\n @Input('mb')\n public set mb(mb: string) {\n this.ngtStylizableService.mb = mb;\n }\n\n public get ml(): string {\n return this.ngtStylizableService.ml;\n }\n\n @Input('ml')\n public set ml(ml: string) {\n this.ngtStylizableService.ml = ml;\n }\n\n public get border(): string {\n return this.ngtStylizableService.border;\n }\n\n @Input('border')\n public set border(border: string) {\n this.ngtStylizableService.border = border;\n }\n\n public get shadow(): string {\n return this.ngtStylizableService.shadow;\n }\n\n @Input('shadow')\n public set shadow(shadow: string) {\n this.ngtStylizableService.shadow = shadow;\n }\n\n public get rounded(): string {\n return this.ngtStylizableService.rounded;\n }\n\n @Input('rounded')\n public set rounded(rounded: string) {\n this.ngtStylizableService.rounded = rounded;\n }\n\n public get font(): string {\n return this.ngtStylizableService.font;\n }\n\n @Input('font')\n public set font(font: string) {\n this.ngtStylizableService.font = font;\n }\n\n public get text(): string {\n return this.ngtStylizableService.text;\n }\n\n @Input('text')\n public set text(text: string) {\n this.ngtStylizableService.text = text;\n }\n\n public get breakWords(): string {\n return this.ngtStylizableService.breakWords;\n }\n\n @Input('breakWords')\n public set breakWords(breakWords: string) {\n this.ngtStylizableService.breakWords = breakWords;\n }\n\n public get overflow(): string {\n return this.ngtStylizableService.overflow;\n }\n\n @Input('overflow')\n public set overflow(overflow: string) {\n this.ngtStylizableService.overflow = overflow;\n }\n\n public get position(): string {\n return this.ngtStylizableService.position;\n }\n\n @Input('position')\n public set position(position: string) {\n this.ngtStylizableService.position = position;\n }\n\n public get justifyContent(): string {\n return this.ngtStylizableService.justifyContent;\n }\n\n @Input('justifyContent')\n public set justifyContent(justifyContent: string) {\n this.ngtStylizableService.justifyContent = justifyContent;\n }\n\n public get cursor(): string {\n return this.ngtStylizableService.cursor;\n }\n\n @Input('cursor')\n public set cursor(cursor: string) {\n this.ngtStylizableService.cursor = cursor;\n }\n\n public get fontCase(): string {\n return this.ngtStylizableService.fontCase;\n }\n\n @Input('fontCase')\n public set fontCase(fontCase: string) {\n this.ngtStylizableService.fontCase = fontCase;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtStylizableDirective } from './ngt-stylizable.directive';\n\n@NgModule({\n declarations: [NgtStylizableDirective],\n exports: [NgtStylizableDirective],\n imports: [\n CommonModule\n ]\n})\nexport class NgtStylizableModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-shining',\n templateUrl: './ngt-shining.component.html',\n styleUrls: ['./ngt-shining.component.css']\n})\nexport class NgtShiningComponent {\n @Input() public shiningWidth: NgtShiningWidth = NgtShiningWidth.xs;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtShining', {\n rounded: 'rounded-none',\n });\n }\n}\n\nexport enum NgtShiningWidth {\n xs = 'xs',\n sm = 'sm',\n lg = 'lg',\n xl = 'xl',\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningComponent } from './ngt-shining.component';\n\n@NgModule({\n declarations: [NgtShiningComponent],\n exports: [NgtShiningComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtShiningModule { }\n","import { EventEmitter, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Based on https://stackoverflow.com/a/37786142/8055997\n */\nexport abstract class NgtBaseNgModel implements ControlValueAccessor {\n public formControl: AbstractControl;\n public formContainer: ControlContainer;\n\n public onValueChangeEvent = new EventEmitter;\n\n private ignore = '{{{{INITIAL_VALUE_IGNORE}}}}';\n private _value: any = this.ignore;\n\n public constructor() {\n this.registerOnTouched(this.onTouched);\n }\n\n public onValueChange() {\n return this.onValueChangeEvent;\n }\n\n public get value(): any {\n return this._value != this.ignore ? this._value : null;\n };\n\n public set value(v: any) {\n if (!this.valuesAreEquals(v, this._value)) {\n this._value = v;\n this.onChange(v);\n\n if (this.formControl) {\n this.formControl.markAsDirty();\n }\n\n this.change(v);\n }\n }\n\n public writeValue(value: any) {\n if (value == this.ignore || this.valuesAreEquals(value, this._value)) {\n return;\n }\n\n this._value = value;\n this.onChange(value);\n this.change(value);\n }\n\n public onChange = (_) => { };\n\n public change(v) { };\n\n public onTouched = () => {\n if (this.formControl) {\n this.formControl.markAsTouched();\n }\n };\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public isValid(): boolean {\n if (this.formControl) {\n this.formControl.markAsDirty();\n\n return this.formControl.valid;\n }\n }\n\n public markAsPristine() {\n if (this.formControl) {\n this.formControl.markAsPristine();\n }\n }\n\n public markAsDirty() {\n if (this.formControl) {\n this.formControl.markAsDirty();\n }\n }\n\n public setSubmitted(submitted: boolean) {\n if (this.formContainer) {\n this.formContainer['submitted'] = submitted;\n }\n }\n\n private valuesAreEquals(value1, value2) {\n if (Array.isArray(value1)) {\n value1 = JSON.stringify(value1);\n }\n\n if (Array.isArray(value2)) {\n value2 = JSON.stringify(value2);\n }\n\n return value1 === value2;\n }\n}\n\nexport function NgtMakeProvider(type: any) {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => type),\n multi: true\n };\n}\n","export function getEnumFromString(string: string, enumClass: any) {\n if (string && enumClass && enumClass[string.toUpperCase()]) {\n return enumClass[string.toUpperCase()];\n }\n\n throw new Error('Invalid enum [' + string + ']!');\n}\n","import { NgForm } from '@angular/forms';\n\nexport function resetNgForm(ngForm: NgForm) {\n ngForm.resetForm();\n setTimeout(() => {\n ngForm.reset();\n }, 500);\n}\n\nexport function triggerNgFormSubmit(ngForm: NgForm) {\n ngForm.onSubmit(new Event(\"submit\"));\n}\n\nexport function isValidNgForm(ngForm: NgForm) {\n triggerNgFormSubmit(ngForm);\n\n return ngForm.valid;\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { Observable, zip } from 'rxjs';\n\nexport function getIdFromUri(route: ActivatedRoute, routeIdentifier: string) {\n return Observable.create((observer) => {\n zip(route.parent.params, route.params)\n .subscribe((results) => {\n let params = { ...results[0], ...results[1] };\n\n observer.next(params[routeIdentifier]);\n });\n });\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtHttpFormService {\n abstract loadResourceById(resource: any, resourceId: any): Observable<any>;\n\n abstract saveResource(resource: any): Observable<any>;\n}\n","import {Component, EventEmitter, Host, Input, OnDestroy, OnInit, Optional, Output} from '@angular/core';\nimport {ControlContainer, NgForm} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Observable, Subscription} from 'rxjs';\n\nimport {isValidNgForm} from '../../helpers/form/form';\nimport {getIdFromUri} from '../../helpers/routing/route';\nimport {NgtHttpFormService} from '../../services/http/ngt-http-form.service';\n\n@Component({\n selector: 'ngt-form',\n templateUrl: './ngt-form.component.html',\n})\nexport class NgtFormComponent implements OnInit, OnDestroy {\n @Input() public guessFormState: boolean = true;\n @Input() public message: string = '';\n @Input() public routeIdentifier: string = 'id';\n @Input() public resource: any;\n @Input() public customLayout: boolean;\n\n @Output() public static onSubmitInvalidForm: EventEmitter<NgForm> = new EventEmitter;\n\n @Output() public onCreating: EventEmitter<any> = new EventEmitter;\n @Output() public onEditing: EventEmitter<any> = new EventEmitter;\n @Output() public onLoadingChange: EventEmitter<boolean> = new EventEmitter;\n @Output() public onShiningChange: EventEmitter<boolean> = new EventEmitter;\n @Output() public setupComponent: EventEmitter<any> = new EventEmitter;\n @Output() public onResourceLoadingError: EventEmitter<string> = new EventEmitter;\n\n public formState: NgtFormState;\n public uriId: any;\n\n private loading: boolean;\n private shining: boolean;\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @Host()\n public ngForm: NgForm,\n public router: Router,\n public route: ActivatedRoute,\n private ngtHttpFormService: NgtHttpFormService\n ) {\n }\n\n public ngOnInit() {\n if (this.guessFormState) {\n this.subscriptions.push(\n this.determineFormState().subscribe(() => {\n this.setupComponent.emit();\n })\n );\n } else {\n this.setupComponent.emit();\n }\n\n this.subscriptions.push(\n this.ngForm.ngSubmit.subscribe(() => {\n if (!this.ngForm.valid) {\n NgtFormComponent.onSubmitInvalidForm.emit(this.ngForm);\n }\n })\n );\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public isCreating() {\n return this.formState === NgtFormState.CREATING;\n }\n\n public isEditing() {\n return this.formState === NgtFormState.EDITING;\n }\n\n public isLoading() {\n return this.loading;\n }\n\n public isShining() {\n return this.shining;\n }\n\n public canShowValidationMessage() {\n return this.formContainer &&\n this.formContainer['submitted'] &&\n this.formContainer.status != 'VALID' &&\n this.formContainer.status != 'DISABLED';\n }\n\n public setShining(shining: boolean) {\n this.shining = shining;\n this.onShiningChange.emit(this.shining);\n }\n\n public setLoading(loading: boolean) {\n this.loading = loading;\n this.onLoadingChange.emit(this.loading);\n }\n\n public setFormState(state: NgtFormState, triggerChange: boolean = true) {\n this.formState = state;\n\n if (triggerChange) {\n this.triggerFormStateChange();\n }\n }\n\n public getFormState() {\n return this.formState;\n }\n\n public triggerFormStateChange() {\n if (this.isEditing()) {\n this.triggerFormEditing();\n } else if (this.isCreating()) {\n this.triggerFormCreating();\n }\n }\n\n public formHasChanges() {\n return this.ngForm.dirty;\n }\n\n public saveResource() {\n return new Observable((observer) => {\n if (isValidNgForm(this.ngForm)) {\n this.setLoading(true);\n\n this.subscriptions.push(\n this.ngtHttpFormService.saveResource(this.resource)\n .subscribe((response: any) => {\n this.setLoading(false);\n observer.next(response);\n observer.complete();\n })\n );\n } else {\n observer.error();\n }\n });\n }\n\n protected triggerFormCreating() {\n this.onCreating.emit();\n }\n\n protected triggerFormEditing() {\n if (this.uriId && this.resource) {\n this.setLoading(true);\n this.setShining(true);\n\n this.subscriptions.push(\n this.ngtHttpFormService.loadResourceById(this.resource, this.uriId)\n .subscribe(\n (resource: any) => {\n this.setLoading(false);\n this.setShining(false);\n\n this.onEditing.emit(resource);\n\n setTimeout(() => this.ngForm.form.markAsPristine(), 1500);\n },\n (error) => {\n this.setLoading(false);\n this.setShining(false);\n\n this.onResourceLoadingError.emit(error);\n }\n )\n );\n\n return;\n }\n\n this.onEditing.emit(null);\n }\n\n private determineFormState() {\n return new Observable((observer) => {\n this.subscriptions.push(\n getIdFromUri(this.route, this.routeIdentifier).subscribe((id: string) => {\n this.uriId = id;\n\n if (this.uriId) {\n this.setFormState(NgtFormState.EDITING);\n } else {\n this.setFormState(NgtFormState.CREATING);\n }\n\n observer.next();\n })\n );\n });\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtFormState {\n CREATING = 'CREATING',\n EDITING = 'EDITING'\n};\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-checkbox',\n templateUrl: './ngt-checkbox.component.html',\n styleUrls: ['./ngt-checkbox.component.css'],\n providers: [\n NgtMakeProvider(NgtCheckboxComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ],\n animations: [\n trigger('slideLeftToRight', [\n state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),\n transition(':enter', [\n animate(200)\n ])\n ]),\n\n trigger('slideRightToLeft', [\n state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),\n transition(':enter', [\n animate(200)\n ])\n ]),\n ]\n})\nexport class NgtCheckboxComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public isClickDisabled: boolean = false;\n @Input() public name: string;\n @Input() public mode: NgtCheckboxMode = NgtCheckboxMode.DEFAULT;\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Self() @Optional()\n private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\n h: 'h-6',\n w: 'w-6',\n text: 'text-sm',\n fontCase: '',\n color: {\n bg: 'bg-gray-500',\n text: 'text-gray-500',\n border: 'border-gray-500',\n }\n });\n }\n\n public ngAfterViewInit() {\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\n this.onNativeChange(this.element.nativeElement.checked);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value) {\n if (this.hasChangesBetweenModels()) {\n this.element.nativeElement.checked = value;\n }\n }\n\n public onNativeChange(value) {\n if (this.hasChangesBetweenModels()) {\n this.value = value;\n }\n }\n\n public hasChangesBetweenModels() {\n return this.element.nativeElement.checked !== this.value;\n }\n\n public isToggleMode() {\n return this.mode === NgtCheckboxMode.TOGGLE;\n }\n\n public isDefaultMode() {\n return this.mode === NgtCheckboxMode.DEFAULT;\n }\n\n public isRadioMode() {\n return this.mode === NgtCheckboxMode.RADIO;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.mode) {\n this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);\n }\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtCheckboxMode {\n DEFAULT = 'DEFAULT',\n TOGGLE = 'TOGGLE',\n RADIO = 'RADIO',\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SvgIconComponent } from 'angular-svg-icon';\n\n@Component({\n selector: 'ngt-svg',\n templateUrl: './ngt-svg.component.html',\n styleUrls: ['./ngt-svg.component.css'],\n host: {\n class: 'flex justify-center'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtSvgComponent implements AfterViewChecked, OnChanges {\n @Input() public src: string;\n @Input() public class: string = '';\n\n @ViewChild(SvgIconComponent, { static: true, read: ElementRef }) private svgIconElement: ElementRef;\n\n private appliedClass = null;\n\n public ngAfterViewChecked() {\n this.checkClassChange();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.appliedClass = null;\n this.checkClassChange();\n }\n\n private checkClassChange() {\n if (this.appliedClass !== this.class) {\n if (this.svgIconElement && this.svgIconElement.nativeElement) {\n let svgElement = <SVGAElement>this.svgIconElement.nativeElement.querySelector('svg');\n\n if (svgElement) {\n while (svgElement.classList.length > 0) {\n svgElement.classList.remove(svgElement.classList.item(0));\n }\n\n svgElement.classList.add('fill-current');\n svgElement.classList.add('self-center');\n\n new String(this.class).trim().split(' ').forEach(className => {\n if (className) {\n svgElement.classList.add(className);\n }\n });\n\n this.appliedClass = this.class;\n }\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtSvgComponent } from './ngt-svg.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@NgModule({\n declarations: [NgtSvgComponent],\n exports: [NgtSvgComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule\n ]\n})\nexport class NgtSvgModule { }\n","import { Component, ElementRef, Injector, Input, Optional, Self, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-helper',\n templateUrl: './ngt-helper.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtHelperComponent {\n @ViewChild('dropdownRef', { static: true }) public dropdownRef: ElementRef;\n\n @Input() public helpTextColor: string;\n @Input() public helpText: string;\n @Input() public helpTitle: string;\n @Input() public icon: string;\n @Input() public iconSize: string;\n @Input() public iconColor: string;\n @Input() public iconTitle: string;\n @Input() public tooltipSize: string = 'max-w-xs';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n @Optional()\n public ngtTranslateService: NgtTranslateService,\n private injector: Injector,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtHelper', {\n text: 'text-sm',\n fontCase: '',\n px: 'px-2',\n color: {\n text: 'text-black',\n bg: 'bg-gray-200'\n }\n });\n }\n}\n","export function uuid() {\n return [\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9)\n ].join('_');\n};\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: '[ngt-dropdown-container]',\n templateUrl: './ngt-dropdown-container.component.html',\n styleUrls: ['./ngt-dropdown-container.component.css']\n})\nexport class NgtDropdownContainerComponent {\n @Output() public onActiveDropdownChange = new EventEmitter();\n\n public setActiveDropdown(activeDropdown) {\n this.onActiveDropdownChange.emit(activeDropdown);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\n\n@Component({\n selector: 'ngt-dropdown',\n templateUrl: './ngt-dropdown.component.html',\n styleUrls: ['./ngt-dropdown.component.css'],\n animations: [\n trigger('openClose', [\n state('open', style({ opacity: 1, transform: 'translateY(0px)' })),\n state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),\n transition('closed => open', [\n animate(300)\n ]),\n ]),\n ]\n})\nexport class NgtDropdownComponent implements OnDestroy {\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\n\n @Input() public autoXReverse: boolean;\n @Input() public autoYReverse: boolean = true;\n @Input() public reverseXPosition: boolean;\n @Input() public reverseYPosition: boolean;\n @Input() public closeOnClick: boolean;\n @Input() public closeTimeout: number = 1000;\n @Input() public openMethod: NgtDropdownOpenMethod = NgtDropdownOpenMethod.HOVER;\n\n @Output() public onToggle: EventEmitter<boolean> = new EventEmitter();\n @Output() public onHostClick: EventEmitter<any> = new EventEmitter();\n\n public name: string = uuid();\n public isOpen: boolean;\n public isYPositionReversed: boolean = false;\n public isXPositionReversed: boolean = false;\n public isBindingYPosition: boolean = true;\n public isBindingXPosition: boolean = true;\n\n private subscriptions: Array<Subscription> = [];\n private containerXPosition: number;\n private containerYPosition: number;\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtDropdownContainer: NgtDropdownContainerComponent\n ) {\n if (this.ngtDropdownContainer) {\n this.subscriptions.push(\n this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown: NgtDropdownComponent) => {\n this.isOpen = (activeDropdown.name === this.name);\n })\n );\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.openMethod) {\n this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public open(): void {\n this.isOpen = true;\n this.ngtDropdownContainer?.setActiveDropdown(this);\n }\n\n public closeOnSelectOption(): void {\n if (this.closeOnClick) {\n this.close();\n }\n }\n\n public close(): void {\n this.isOpen = false;\n this.containerXPosition = null;\n this.containerYPosition = null;\n }\n\n public toggle(): void {\n setTimeout(() => {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n\n this.onToggle.emit(this.isOpen);\n });\n }\n\n public onHover(host: any, container: any): void {\n if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {\n this.open();\n this.watchHover(host, container);\n }\n }\n\n public onClick(event: Event, host: any, container: any): void {\n this.onHostClick?.emit();\n\n if (this.isClickMethod()) {\n event.preventDefault();\n event.stopPropagation();\n\n this.toggle();\n }\n\n if (this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK) {\n this.watchHover(host, container);\n }\n }\n\n public onRightClick(event: Event): void {\n if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n }\n\n public shouldReverseXPosition(): boolean {\n if (!this.autoXReverse || this.reverseXPosition !== undefined) {\n return this.reverseXPosition;\n }\n\n if (this.isOpen) {\n this.bindContainerXPosition();\n\n this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);\n\n return !this.isBindingXPosition && this.isXPositionReversed;\n }\n }\n\n public shouldReverseYPosition(): boolean {\n if (!this.autoYReverse || this.reverseYPosition !== undefined) {\n return this.reverseYPosition;\n }\n\n if (this.isOpen) {\n this.bindContainerYPosition();\n\n this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);\n\n return !this.isBindingYPosition && this.isYPositionReversed;\n }\n }\n\n private bindContainerXPosition(): void {\n if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {\n this.isBindingXPosition = true;\n\n setTimeout(() => {\n this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x\n + this.containerRef.nativeElement.offsetWidth;\n\n this.isBindingXPosition = false;\n });\n }\n }\n\n private bindContainerYPosition(): void {\n if (!this.containerYPosition && this.containerRef?.nativeElement.offsetHeight) {\n this.isBindingYPosition = true;\n\n setTimeout(() => {\n this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y\n + this.containerRef.nativeElement.offsetHeight;\n\n this.isBindingYPosition = false;\n });\n }\n }\n\n private watchHover(host: any, container: any): void {\n const interval = setInterval(() => {\n if (!host || !container || !this.isInHover(host, container)) {\n this.close();\n clearInterval(interval);\n }\n }, this.closeTimeout);\n }\n\n private isInHover(host: any, container: any): boolean {\n return host.parentElement.querySelector(':hover') == host ||\n container.parentElement.querySelector(':hover') == container;\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n\n private isClickMethod(): boolean {\n return this.openMethod == NgtDropdownOpenMethod.CLICK\n || this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK;\n }\n}\n\nexport enum NgtDropdownOpenMethod {\n CLICK = 'CLICK',\n POPOVER_CLICK = 'POPOVER_CLICK',\n RIGHT_CLICK = 'RIGHT_CLICK',\n HOVER = 'HOVER'\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtDropdownComponent } from './ngt-dropdown.component';\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\n\n@NgModule({\n declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],\n exports: [NgtDropdownComponent, NgtDropdownContainerComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtDropdownModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgtSvgModule } from \"../ngt-svg/ngt-svg.module\";\nimport { NgtHelperComponent } from \"./ngt-helper.component\";\nimport { NgtDropdownModule } from '../ngt-dropdown/ngt-dropdown.module';\n\n@NgModule({\n declarations: [NgtHelperComponent],\n exports: [NgtHelperComponent],\n imports: [\n CommonModule,\n NgtSvgModule,\n NgtDropdownModule\n ]\n})\nexport class NgtHelperModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtCheckboxComponent } from './ngt-checkbox.component';\nimport {NgtHelperModule} from \"../ngt-helper/ngt-helper.module\";\n\n@NgModule({\n declarations: [NgtCheckboxComponent],\n exports: [NgtCheckboxComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n NgtHelperModule,\n ]\n})\nexport class NgtCheckboxModule { }\n","import { Component, Optional, SkipSelf } from '@angular/core';\nimport { NgtTranslateService } from '../../../services/http/ngt-translate.service';\nimport { NgtFormComponent } from '../ngt-form.component';\n\n@Component({\n selector: 'ngt-form-validation-message',\n templateUrl: './ngt-form-validation-message.component.html',\n})\nexport class NgtFormValidationMessageComponent {\n public constructor(\n @Optional() @SkipSelf()\n public ngtForm: NgtFormComponent,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n if (!ngtForm) {\n console.error('The ngt-form-validation-message must be inside a ngt-form!');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtFormValidationMessageComponent } from './ngt-form-validation-message.component';\n\n@NgModule({\n declarations: [NgtFormValidationMessageComponent],\n exports: [NgtFormValidationMessageComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtFormValidationMessageModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtFormValidationMessageModule } from './ngt-form-validation-message/ngt-form-validation-message.module';\nimport { NgtFormComponent } from './ngt-form.component';\n\n@NgModule({\n declarations: [NgtFormComponent],\n exports: [NgtFormComponent],\n imports: [\n CommonModule,\n NgtFormValidationMessageModule\n ]\n})\nexport class NgtFormModule { }\n","import { Component, Input, Optional } from '@angular/core';\nimport { ControlContainer, FormControl } from '@angular/forms';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\n\n@Component({\n selector: 'ngt-validation',\n templateUrl: './ngt-validation.component.html',\n styleUrls: ['./ngt-validation.component.css']\n})\nexport class NgtValidationComponent {\n @Input() public control: FormControl;\n @Input() public container: ControlContainer;\n @Input() public minValue: number;\n @Input() public minLength: number;\n\n public constructor(\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtValidationComponent } from './ngt-validation.component';\n\n@NgModule({\n declarations: [NgtValidationComponent],\n exports: [NgtValidationComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtValidationModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { AbstractControl, AsyncValidatorFn, ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../public-api';\nimport {\n NgtHttpFindExistingResourceInterface,\n NgtHttpFindExistingResourceResponse,\n NgtHttpResourceService,\n} from '../../services/http/ngt-http-resource.service';\nimport { NgtHttpValidationResponse, NgtHttpValidationService } from '../../services/http/ngt-http-validation.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\nlet Inputmask = require('inputmask');\n\nexport enum NgtInputMaskEnum {\n CPF = 'cpf',\n CNPJ = 'cnpj',\n CPF_CNPJ = 'cnpj-cpf',\n CPF_CNPJ_RUT = 'cnpj-cpf-rut',\n DECIMAL = 'decimal',\n CELLPHONE = 'cellphone',\n PLATE = 'plate',\n CEP = 'cep',\n INTEGER = 'integer',\n TIME = 'time',\n INTERNATIONAL_PHONE = 'international-phone'\n}\n\n@Component({\n selector: 'ngt-input',\n templateUrl: './ngt-input.component.html',\n styleUrls: ['./ngt-input.component.css'],\n providers: [\n NgtMakeProvider(NgtInputComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtInputComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\n\n // Visual\n @Input() public label: string;\n @Input() public placeholder: string = '';\n @Input() public shining: boolean;\n @Input() public loading: boolean;\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n @Input() public innerLeftIcon: string;\n @Input() public innerLeftIconColor: string;\n @Input() public innerRightIcon: string;\n @Input() public innerRightIconColor: string;\n @Input() public decimalMaskPrecision: number = 2;\n @Input() public showCharactersLength: boolean = false;\n\n //Behavior\n @Input() public isDisabled: boolean;\n @Input() public isReadonly: boolean;\n @Input() public showRoundedIcon: boolean;\n @Input() public type: string = 'text';\n @Input() public name: string;\n @Input() public mask: string;\n @Input() public focus: boolean;\n @Input() public allowClear: boolean;\n @Input() public jit: boolean;\n\n //Validations\n @Input() public findExistingResource: NgtHttpFindExistingResourceInterface;\n @Input() public allowPhoneValidation: boolean;\n @Input() public isRequired: boolean;\n @Input() public uniqueResource: any;\n @Input() public minValue: number;\n @Input() public maxValue: number;\n @Input() public maxLength: number;\n @Input() public minLength: number;\n @Input() public match: string;\n @Input() public multipleOf: number;\n @Input() public externalServerDependency: boolean;\n\n @Output() public onClickLeftIcon: EventEmitter<any> = new EventEmitter<any>();\n @Output() public onClickRightIcon: EventEmitter<any> = new EventEmitter<any>();\n @Output() public validatePhoneResult: EventEmitter<any> = new EventEmitter<any>();\n\n public maxTotalCharsCount: number;\n public existingResourceId: string;\n public componentReady: boolean;\n public inputProperties: {\n htmlType?: string;\n length?: number;\n } = {};\n\n public ngtStyle: NgtStylizableService;\n\n private emailValidatorTimeout: any;\n private phoneValidatorTimeout: any;\n private uniqueValidatorTimeout: any;\n private searchExistingResourceTimeout: any;\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private renderer: Renderer2,\n @Optional() @SkipSelf()\n private ngtValidationService: NgtHttpValidationService,\n @Optional() @SkipSelf()\n private ngtResourceService: NgtHttpResourceService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtInput', {\n h: 'h-12',\n rounded: 'rounded',\n text: 'text-sm',\n fontCase: '',\n color: {\n border: 'border-gray-400 focus:border-gray-700',\n bg: 'bg-bg-white focus:bg-white',\n text: 'text-gray-800'\n }\n });\n }\n\n public setFocus() {\n setTimeout(() => {\n this.element.nativeElement.focus();\n }, 200);\n }\n\n public hasFocus(): boolean {\n return document.activeElement === this.element.nativeElement;\n }\n\n public clearInput(event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n\n this.element.nativeElement.value = '';\n this.value = '';\n\n this.markAsPristine();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.setupMasks(changes.mask ? changes.mask.previousValue : null);\n\n if (changes.match || changes.isRequired || changes.type || changes.mask || changes.minValue) {\n this.updateValidations();\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: any) {\n if (value && typeof value === 'string' && this.mask == 'decimal') {\n value = parseFloat(value);\n }\n\n if (!this.getNativeValue()) {\n this.element.nativeElement.value = value;\n }\n\n if (!value && value !== 0) {\n this.clearInput();\n }\n\n let nativeValue = this.getNativeValue();\n\n if (this.mask) {\n let ngModelValue = this.removeMasks(nativeValue);\n\n if (nativeValue && ngModelValue != this.value) {\n this.value = ngModelValue;\n }\n\n if (\n (this.mask == NgtInputMaskEnum.CELLPHONE || this.mask == NgtInputMaskEnum.INTERNATIONAL_PHONE)\n && this.allowPhoneValidation && this.value\n ) {\n this.validatePhone();\n }\n } else {\n let ngModelValue = this.removeMasks(value);\n\n if (value && ngModelValue != value) {\n this.value = ngModelValue;\n }\n\n if (this.value != nativeValue) {\n this.element.nativeElement.value = ngModelValue;\n }\n }\n\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (this.ngtResourceService && this.findExistingResource && this.value) {\n this.searchExistingResource();\n }\n }\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\", this.element.nativeElement);\n } else {\n setTimeout(() => {\n this.componentReady = true;\n setTimeout(() => {\n this.initComponent();\n\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\n this.element.nativeElement.parentElement.parentElement.title = '';\n }\n });\n }, 500);\n }\n }\n\n public getInputPaddings() {\n let paddingClass: string = '';\n\n if (this.innerLeftIcon) {\n paddingClass += 'pl-8 pr-4 ';\n } else {\n paddingClass += 'px-4 ';\n }\n\n if (this.innerRightIcon || this.allowClear || this.type == 'password') {\n if (this.allowClear && this.value && (this.innerRightIcon || this.type == 'password')) {\n paddingClass += 'pr-16 ';\n } else {\n paddingClass += 'pr-8 ';\n }\n }\n\n return paddingClass;\n }\n\n public showPassword() {\n this.element.nativeElement.type = 'text';\n this.changeDetector.detectChanges();\n }\n\n public hidePassword() {\n this.element.nativeElement.type = 'password';\n this.changeDetector.detectChanges();\n }\n\n public getRemainingCharacters() {\n if (this.element?.nativeElement?.value?.length) {\n if ((this.maxTotalCharsCount - this.element.nativeElement.value.length) > 0) {\n return this.maxTotalCharsCount - this.element.nativeElement.value.length;\n } else {\n return 0;\n }\n }\n\n return this.maxTotalCharsCount;\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.focus) {\n this.setFocus();\n }\n\n let watch = \"change\";\n\n if (this.jit) {\n watch += \" keyup keydown keypress\";\n }\n\n watch.split(' ').forEach((evt) => {\n this.renderer.listen(this.element.nativeElement, evt, () => {\n let nativeValue = this.removeMasks(this.getNativeValue());\n\n if (this.value != nativeValue) {\n this.value = nativeValue;\n }\n });\n });\n\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\n // Backspace and delete\n if (event.keyCode != 8 && event.keyCode != 46) {\n event.preventDefault();\n\n return false;\n }\n }\n });\n\n this.maxTotalCharsCount = this.maxLength;\n this.updateValidations();\n\n if (this.match) {\n this.renderer.listen(this.element.nativeElement, \"keypress\", () => {\n this.matchValidator();\n });\n }\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n\n this.setupProperties();\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n const syncValidators = [];\n\n if (this.type == 'email') {\n syncValidators.push(Validators.email);\n }\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n if (this.maxLength) {\n syncValidators.push(Validators.maxLength(this.maxLength));\n }\n\n if (this.minLength) {\n syncValidators.push(Validators.minLength(this.minLength));\n }\n\n if (this.mask == 'cnpj-cpf' || this.mask == 'cnpj-cpf-rut' || this.mask == 'cpf') {\n syncValidators.push(this.cnpjCpfValidator());\n }\n\n if (this.mask == 'time') {\n syncValidators.push(this.timeValidator());\n }\n\n if (this.match) {\n syncValidators.push(this.matchValidator());\n }\n\n if (this.minValue !== undefined) {\n syncValidators.push(this.minValueValidator());\n }\n\n if (this.multipleOf) {\n syncValidators.push(this.multipleOfValidator());\n }\n\n if (this.externalServerDependency) {\n syncValidators.push(this.externalServerDependencyValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n\n const asyncValidators = [];\n\n if (this.uniqueResource) {\n asyncValidators.push(this.uniqueValidator());\n }\n\n if (this.type == 'email' && this.hasEmailServiceValidation()) {\n asyncValidators.push(this.emailValidator());\n }\n\n this.formControl.setAsyncValidators(asyncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private setupMasks(previousMask?: string) {\n if (this.mask != previousMask && !this.mask) {\n Inputmask.remove(this.element.nativeElement);\n\n return this.clearInput();\n }\n\n let masks = {\n [NgtInputMaskEnum.CPF]: '999.999.999-99',\n [NgtInputMaskEnum.CNPJ]: '99.999.999/9999-99',\n [NgtInputMaskEnum.CPF_CNPJ_RUT]: {\n mask: ['999.999.999-99', '99.999.999/9999', '99.999.999/9999-99'],\n keepStatic: true\n },\n [NgtInputMaskEnum.CPF_CNPJ]: {\n mask: ['999.999.999-99', '99.999.999/9999-99'],\n keepStatic: true\n },\n [NgtInputMaskEnum.DECIMAL]: {\n digits: this.decimalMaskPrecision,\n groupSeparator: '.',\n radixPoint: ',',\n autoGroup: true,\n repeat: 16,\n rightAlign: false,\n max: this.maxValue,\n },\n [NgtInputMaskEnum.CELLPHONE]: {\n mask: ['(99) 999-999', '(99) 9999-9999', '(99) 99999-9999'],\n keepStatic: true\n },\n [NgtInputMaskEnum.INTERNATIONAL_PHONE]: {\n mask: ['+999 99 999-999', '+99 (99) 9999-9999', '+99 (99) 99999-9999', '+999 (99) 9999-9999', '+999 (99) 99999-9999'],\n keepStatic: true\n },\n [NgtInputMaskEnum.PLATE]: {\n mask: ['AAA-9999', 'AAA9A99'],\n keepStatic: true\n },\n [NgtInputMaskEnum.CEP]: '99999-999',\n [NgtInputMaskEnum.INTEGER]: {\n max: this.maxValue,\n rightAlign: false\n },\n [NgtInputMaskEnum.TIME]: '99:99',\n };\n\n if (this.mask == NgtInputMaskEnum.DECIMAL) {\n Inputmask(NgtInputMaskEnum.DECIMAL, masks[this.mask]).mask(this.element.nativeElement);\n } else if (this.mask == NgtInputMaskEnum.INTEGER) {\n Inputmask(NgtInputMaskEnum.INTEGER, masks[this.mask]).mask(this.element.nativeElement);\n } else {\n Inputmask(masks[this.mask]).mask(this.element.nativeElement);\n }\n }\n\n private setupProperties() {\n let props = {\n shortText: {\n htmlType: \"text\",\n length: 30\n },\n text: {\n htmlType: \"text\",\n length: 100\n },\n longText: {\n htmlType: \"text\",\n length: 150\n },\n extraLongText: {\n htmlType: \"text\",\n length: 300\n },\n password: {\n htmlType: \"password\",\n length: 150\n },\n email: {\n htmlType: \"text\",\n length: 100,\n },\n decimal: {\n htmlType: \"text\",\n length: 9,\n }\n };\n\n if (this.type in props) {\n this.inputProperties = props[this.type];\n this.maxLength = this.inputProperties.length;\n } else {\n console.warn(\"Type [\" + this.type + \"] is not a valid tail-form-input type!\", this.element.nativeElement);\n }\n }\n\n private minValueValidator() {\n return (control: AbstractControl) => parseFloat(control.value) < this.minValue ? { 'minValue': true } : null;\n }\n\n private multipleOfValidator() {\n return (control: AbstractControl) => {\n if (control.value) {\n return (control.value % this.multipleOf !== 0) ? { 'multipleOf': true } : null;\n }\n };\n }\n\n private externalServerDependencyValidator() {\n // TODO: Validar tempo de requisição\n return (control: AbstractControl) => !control.value ? { 'externalServerDependency': true } : null;\n }\n\n private timeValidator() {\n const regexExp = new RegExp('^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$');\n\n return (control: AbstractControl) => {\n if (control.value) {\n if (regexExp.test(control.value)) {\n return null;\n } else {\n return { 'time': true };\n }\n }\n };\n }\n\n private cnpjCpfValidator() {\n return (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n\n if (control.value && control.value.length <= 11) {\n if (this.validatorCPF(control.value)) {\n return null;\n } else {\n return { 'cpf': true };\n }\n } else if (control.value && control.value.length == 12) {\n return null;\n } else {\n if (control.value && this.validatorCNPJ(control.value)) {\n return null;\n } else {\n return { 'cnpj': true };\n }\n }\n };\n }\n\n private matchValidator() {\n return (control: AbstractControl) => {\n if (this.value != this.match) {\n return { 'match': true };\n } else {\n return null;\n }\n };\n }\n\n private emailValidator(): AsyncValidatorFn {\n if (!this.ngtValidationService) {\n throw new Error(\"In order to use email validation you must provide a implementation for NgtHttpValidationService class!\");\n }\n\n return (control: AbstractControl) => {\n if (this.emailValidatorTimeout) {\n clearTimeout(this.emailValidatorTimeout);\n }\n\n if (this.value) {\n return new Promise((resolve) => {\n this.emailValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.emailValidation(this.value).then((response: NgtHttpValidationResponse) => {\n this.loading = false;\n resolve(response.valid ? null : { 'email': true });\n }).catch(() => {\n this.loading = false;\n resolve(null);\n });\n }, 500);\n });\n }\n\n return Promise.resolve(null);\n };\n }\n\n private async searchExistingResource(): Promise<void> {\n if (this.searchExistingResourceTimeout) {\n clearTimeout(this.searchExistingResourceTimeout);\n }\n\n this.searchExistingResourceTimeout = setTimeout(() => {\n this.loading = true;\n this.findExistingResource.value = this.value;\n\n this.ngtResourceService.findExisting(this.findExistingResource)\n .then((response: NgtHttpFindExistingResourceResponse) => this.existingResourceId = response.id)\n .catch(() => this.existingResourceId = null)\n .finally(() => this.loading = false);\n }, 500);\n }\n\n private async validatePhone(): Promise<void> {\n if (this.phoneValidatorTimeout) {\n clearTimeout(this.phoneValidatorTimeout);\n }\n\n this.phoneValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.phoneValidation(this.value)\n .then((response: any) => this.validatePhoneResult.emit(response))\n .finally(() => this.loading = false);\n });\n }\n\n private uniqueValidator(): AsyncValidatorFn {\n if (!this.ngtValidationService) {\n throw new Error(\"In order to use unique validation you must provide a implementation for NgtHttpValidationService class!\");\n }\n\n return (control: AbstractControl) => {\n if (this.uniqueValidatorTimeout) {\n clearTimeout(this.uniqueValidatorTimeout);\n }\n\n if (this.value && this.uniqueResource) {\n return new Promise((resolve) => {\n this.uniqueValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.unique(this.uniqueResource, this.value).then((response: NgtHttpValidationResponse) => {\n this.loading = false;\n\n resolve(response.valid ? null : { 'unique': true });\n }).catch(() => {\n this.loading = false;\n resolve(null);\n });\n }, 500);\n });\n }\n\n return Promise.resolve(null);\n };\n }\n\n private validatorCNPJ(value) {\n let b = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n if ((value = value.replace(/[^\\d]/g, \"\")).length != 14) {\n return false;\n }\n\n if (/0{14}/.test(value)) {\n return false;\n }\n\n let n = 0;\n\n for (let i = 0; i < 12; n += value[i] * b[++i]) {\n ;\n }\n\n if (value[12] != (((n %= 11) < 2) ? 0 : 11 - n)) {\n return false;\n }\n\n n = 0;\n\n for (let i = 0; i <= 12; n += value[i] * b[i++]) {\n ;\n }\n\n if (value[13] != (((n %= 11) < 2) ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n };\n\n private validatorCPF(value) {\n let numeros, digitos, soma, i, resultado, digitos_iguais;\n\n digitos_iguais = 1;\n\n if (value.length < 11) {\n return false;\n }\n\n for (i = 0; i < value.length - 1; i++) {\n if (value.charAt(i) != value.charAt(i + 1)) {\n digitos_iguais = 0;\n break;\n }\n }\n\n if (!digitos_iguais) {\n numeros = value.substring(0, 9);\n digitos = value.substring(9);\n soma = 0;\n\n for (i = 10; i > 1; i--) {\n soma += numeros.charAt(10 - i) * i;\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n if (resultado != digitos.charAt(0)) {\n return false;\n }\n\n numeros = value.substring(0, 10);\n soma = 0;\n\n for (i = 11; i > 1; i--) {\n soma += numeros.charAt(11 - i) * i;\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n if (resultado != digitos.charAt(1)) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n private getNativeValue() {\n return this.element.nativeElement.value;\n }\n\n private getElementTitle(): string {\n return this.element.nativeElement.parentElement.parentElement.title;\n }\n\n private removeMasks(value: string) {\n if (this.mask == \"decimal\") {\n value = (value + \"\")\n .replace(/\\./g, '')\n .replace(',', '.');\n } else if (this.mask == \"cnpj-cpf\" || this.mask == \"cpf\" || this.mask == \"cnpj\" || this.mask == \"cnpj-cpf-rut\") {\n value = (value + \"\")\n .replace('.', '')\n .replace('.', '')\n .replace('-', '')\n .replace('/', '');\n } else if (\n this.mask == NgtInputMaskEnum.CELLPHONE\n || this.mask == NgtInputMaskEnum.INTERNATIONAL_PHONE\n ) {\n value = (value + \"\")\n .replace('(', '')\n .replace(')', '')\n .replace(' ', '')\n .replace(' ', '')\n .replace('-', '')\n .replace('+', '');\n }\n\n return value;\n }\n\n private hasEmailServiceValidation(): boolean {\n return typeof this.ngtValidationService.emailValidation === 'function';\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtInputComponent } from './ngt-input.component';\n\n@NgModule({\n declarations: [NgtInputComponent],\n exports: [NgtInputComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtSvgModule,\n NgtFormModule,\n NgtHelperModule\n ]\n})\nexport class NgtInputModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngt-modal-body',\n templateUrl: './ngt-modal-body.component.html',\n styleUrls: ['./ngt-modal-body.component.css']\n})\nexport class NgtModalBodyComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngt-modal-footer',\n templateUrl: './ngt-modal-footer.component.html',\n styleUrls: ['./ngt-modal-footer.component.css']\n})\nexport class NgtModalFooterComponent { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-modal',\n templateUrl: './ngt-modal.component.html',\n styleUrls: ['./ngt-modal.component.css'],\n animations: [\n trigger('fade', [\n state('void', style({ opacity: 0 })),\n transition(':enter, :leave', [\n animate(300)\n ])\n ])\n ]\n})\nexport class NgtModalComponent {\n @Input() public customLayout: boolean = false;\n @Input() public disableDefaultCloses: boolean = false;\n @Input() public ngtStyle: NgtStylizableService;\n\n @Output() public onCloseModal: EventEmitter<any> = new EventEmitter();\n @Output() public onOpenModal: EventEmitter<any> = new EventEmitter();\n\n public isOpen: boolean = false;\n\n private keydownEventWasAdded: boolean = false;\n\n public constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtModal', {\n w: 'md:max-w-md',\n py: 'py-4',\n px: 'px-6',\n overflow: 'overflow-visible',\n color: {}\n });\n }\n\n public close() {\n this.isOpen = false;\n this.changeDetectorRef.detectChanges();\n this.onCloseModal.emit();\n }\n\n public open() {\n this.isOpen = true;\n this.changeDetectorRef.detectChanges();\n this.addKeydownEventListener();\n this.onOpenModal.emit();\n }\n\n private addKeydownEventListener() {\n if (!this.disableDefaultCloses && !this.keydownEventWasAdded) {\n this.keydownEventWasAdded = true;\n\n window.addEventListener('keydown', (event: any) => {\n if (event.keyCode == 27) {\n this.close();\n }\n }, true);\n }\n }\n}\n","import { Component, Injector, Input, Optional, Self, SkipSelf } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtModalComponent } from '../ngt-modal.component';\n\n@Component({\n selector: 'ngt-modal-header',\n templateUrl: './ngt-modal-header.component.html',\n styleUrls: ['./ngt-modal-header.component.css']\n})\nexport class NgtModalHeaderComponent {\n @Input() public ngtModal: NgtModalComponent;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtModalInstance: NgtModalComponent,\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\n ) {\n if (ngtModalInstance) {\n this.ngtModal = ngtModalInstance;\n }\n\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtModalHeader', {\n pb: 'pb-3',\n color: {}\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { NgtModalBodyComponent } from './ngt-modal-body/ngt-modal-body.component';\nimport { NgtModalFooterComponent } from './ngt-modal-footer/ngt-modal-footer.component';\nimport { NgtModalHeaderComponent } from './ngt-modal-header/ngt-modal-header.component';\nimport { NgtModalComponent } from './ngt-modal.component';\n\n@NgModule({\n declarations: [\n NgtModalComponent,\n NgtModalHeaderComponent,\n NgtModalBodyComponent,\n NgtModalFooterComponent\n ],\n exports: [\n NgtModalComponent,\n NgtModalHeaderComponent,\n NgtModalBodyComponent,\n NgtModalFooterComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class NgtModalModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-action',\n templateUrl: './ngt-action.component.html',\n styleUrls: ['./ngt-action.component.css']\n})\nexport class NgtActionComponent {\n @Input() public href: string;\n @Input() public icon: string;\n @Input() public ngtStyle: NgtStylizableService;\n @Input() public isDisabled: boolean;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtAction', {\n h: 'h-full',\n w: 'w-full',\n color: {\n bg: 'bg-gray-500',\n text: 'text-white',\n border: '',\n },\n text: 'text-xl',\n border: 'border-0',\n });\n }\n\n public onClick(event: Event) {\n if (this.isDisabled) {\n event.stopPropagation();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtActionComponent } from './ngt-action.component';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\n\n@NgModule({\n declarations: [NgtActionComponent],\n exports: [NgtActionComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtSvgModule\n ]\n})\nexport class NgtActionModule { }\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ngt-select-option]' })\nexport class NgtSelectOptionTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ngt-select-option-selected]' })\nexport class NgtSelectOptionSelectedTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ngt-select-header]' })\nexport class NgtSelectHeaderTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n DoCheck,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\nimport { Observable, Observer, Subject, Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\n\n@Component({\n selector: 'ngt-select',\n templateUrl: './ngt-select.component.html',\n styleUrls: ['./ngt-select.component.css'],\n providers: [\n NgtMakeProvider(NgtSelectComponent)\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtSelectComponent extends NgtBaseNgModel implements OnChanges, OnDestroy, OnInit, DoCheck {\n @ViewChild(NgSelectComponent, { static: true }) public ngSelectComponent: NgSelectComponent;\n @ContentChild(NgtSelectOptionTmp, { read: TemplateRef }) public ngtOptionTemplate: TemplateRef<any>;\n @ContentChild(NgtSelectOptionSelectedTmp, { read: TemplateRef }) public ngtOptionSelectedTemplate: TemplateRef<any>;\n @ContentChild(NgtSelectHeaderTmp, { read: TemplateRef }) public ngtSelectHeaderTemplate: TemplateRef<any>;\n\n /** Visual */\n @Input() public label: string = '';\n @Input() public labelIcon: string;\n @Input() public labelIconColor: string;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining = false;\n @Input() public loading: boolean = false;\n @Input() public loadingText: string = '';\n @Input() public notFoundText: string = '';\n @Input() public dropdownPosition = 'auto';\n @Input() public typeToSearchText: string = '';\n @Input() public clearAllTooltip: string = '';\n @Input() public placeholder: string = '';\n @Input() public createText: string = '';\n @Input() public labelForId: string = '';\n @Input() public dropdownPanelMinHeight: NgtSelectDropdownPanelHeight = NgtSelectDropdownPanelHeight.AUTO;\n\n /** Behavior */\n @Input() public name: string;\n @Input() public autoLoad: boolean;\n @Input() public allowCreate: boolean | Promise<any> | Function = false;\n @Input() public allowOriginalItemsUnselect: boolean = true;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public remoteResource: any;\n @Input() public hideSelected: boolean;\n @Input() public bindLabel: string = 'name';\n @Input() public bindValue: string;\n @Input() public items: Array<any> | Observable<any> = [];\n @Input() public inputAttrs: { [key: string]: string };\n @Input() public closeOnSelect: boolean = true;\n @Input() public clearable: boolean = true;\n @Input() public groupBy: string | Function = null;\n @Input() public maxSelectedItems: number;\n @Input() public multiple: boolean = false;\n @Input() public searchable: boolean = true;\n @Input() public clearSearchOnAdd: boolean = true;\n @Input() public virtualScroll: boolean = true;\n @Input() public tabIndex: number;\n @Input() public typeahead: Subject<any>;\n @Input() public guessCompareWith: boolean = true;\n @Input() public groupValue: (groupKey: string, cildren: any[]) => Object;\n @Input() public trackBy: (item: any) => any;\n\n /** Validation */\n @Input() public isRequired: boolean = false;\n\n @Output() public onLoadRemoteResource: EventEmitter<any> = new EventEmitter<any>();\n @Output() public onClear: EventEmitter<void> = new EventEmitter<void>();\n\n public nativeName = uuid();\n public ngtStyle: NgtStylizableService;\n public ngSelectItems: any = [];\n public nativeValue: any;\n public componentReady: boolean = false;\n public wasClicked: boolean;\n\n private ngSearchObserver: Observer<any>;\n private originalPerPage = 15;\n private subscriptions: Array<Subscription> = [];\n private originalItems: Array<any>;\n\n private currentState = {\n filters: {},\n sort: {\n field: '',\n direction: ''\n },\n pagination: {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n }\n };\n\n private searchTimeout: any;\n private hadFirstItemsLoad: boolean;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n public ngtFormComponent: NgtFormComponent,\n private ngtHttp: NgtHttpService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtSelect', {\n h: 'h-12',\n text: 'text-sm',\n fontCase: '',\n color: {\n bg: 'bg-white'\n }\n });\n }\n\n @Input() public compareWith = (a: any, b: any) => a === b;\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n }\n\n if (!this.multiple && this.isRequired) {\n this.clearable = false;\n }\n\n if (this.multiple) {\n this.closeOnSelect = false;\n }\n\n setTimeout(() => {\n this.componentReady = true;\n this.initComponentValidation();\n }, 500);\n\n this.ngSelectItems = new Observable((observer) => {\n this.ngSearchObserver = observer;\n observer.next([]);\n });\n }\n\n public ngAfterViewInit() {\n this.bindInnerInputUniqueId();\n }\n\n public ngDoCheck(): void {\n if (!this.hadFirstItemsLoad && this.canLoadItems()) {\n this.hadFirstItemsLoad = true;\n\n this.initNgSelectItems();\n\n setTimeout(() => {\n this.replaceShowAddTag();\n\n this.ngSelectComponent.itemsList.mapSelectedItems();\n\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\n this.ngSelectComponent.element.parentElement.parentElement.parentElement.title = '';\n }\n\n this.originalItems = this.ngSelectComponent.selectedItems?.map((element) => element.value);\n\n this.changeDetector.detectChanges();\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public removeItem(event: Event, item: any) {\n event.preventDefault();\n event.stopPropagation();\n\n return this.ngSelectComponent.clearItem(item);\n }\n\n public refresh() {\n this.initNgSelectItems();\n this.initComponentValidation();\n }\n\n public reset() {\n this.value = undefined;\n this.nativeValue = undefined;\n this.refresh();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n\n if (changes.remoteResource || changes.items) {\n this.initNgSelectItems();\n }\n\n if (changes.dropdownPanelMinHeight) {\n this.dropdownPanelMinHeight = getEnumFromString(changes.dropdownPanelMinHeight.currentValue, NgtSelectDropdownPanelHeight);\n }\n }\n\n public setFocus() {\n setTimeout(() => {\n this.ngSelectComponent.focus();\n });\n }\n\n public onClearSelect() {\n if (!this.nativeValue) {\n this.markAsPristine();\n }\n\n this.currentState.filters = {};\n\n this.onClear.emit();\n }\n\n public onRemoveSelectedItem(item: NgOption) {\n if (!this.allowOriginalItemsUnselect && this.hadPreviousSelection(item.value)) {\n setTimeout(() => this.ngSelectComponent.select(item));\n }\n }\n\n public getFilterInputValue() {\n let inputField = this.ngSelectComponent.searchInput ?\n this.ngSelectComponent.searchInput :\n this.ngSelectComponent['searchInput'];\n\n if (\n inputField &&\n inputField.nativeElement\n ) {\n return inputField.nativeElement.value;\n }\n }\n\n public search(filters: any) {\n this.currentState.filters = { ...this.currentState.filters, ...filters };\n\n if (!this.remoteResource) {\n return;\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.loading = true;\n this.changeDetector.detectChanges();\n\n this.searchTimeout = setTimeout(() => {\n this.subscriptions.push(\n this.ngtHttp\n .get(this.remoteResource, this.currentState.filters, this.currentState.pagination)\n .subscribe(\n (response: NgtHttpResponse) => {\n this.loading = false;\n\n this.bindCompareWithByResponse(response);\n\n this.ngSearchObserver.next(response.data);\n\n this.onLoadRemoteResource.emit(response.data);\n\n this.currentState.pagination = response.meta.pagination;\n\n this.changeDetector.detectChanges();\n },\n (error) => {\n this.loading = false;\n this.changeDetector.detectChanges();\n console.error(error);\n this.ngSearchObserver.next([]);\n }\n )\n );\n }, 500);\n }\n\n public onNativeChange(value) {\n if (this.hasChangesBetweenModels(this.value, value)) {\n this.value = value;\n }\n }\n\n public change(value) {\n if (this.hasChangesBetweenModels(value, this.nativeValue)) {\n if (Array.isArray(value)) {\n value = value.map((val) => val);\n }\n\n this.nativeValue = value;\n\n if (!value) {\n this.markAsPristine();\n }\n }\n }\n\n public onScroll({ end }) {\n let currentPerPage = this.currentState.pagination.per_page;\n let maxItensInBackend = this.currentState.pagination.total;\n\n if (end >= currentPerPage && end <= maxItensInBackend) {\n this.currentState.pagination.per_page = parseInt(this.currentState.pagination.per_page) + this.originalPerPage;\n this.search({});\n }\n }\n\n public hasSelectedValue() {\n return this.value && JSON.stringify(this.value);\n }\n\n public getSelectClass() {\n let selectClass = this.dropdownPanelMinHeight ? 'ng-select-dropdown-panel-' + this.dropdownPanelMinHeight : 'ng-select-dropdown-panel-auto';\n\n if (this.isDisabled) {\n selectClass += ' select-border-disabled';\n } else if (this.formControl && this.formControl.errors && (this.formControl.dirty || (this.formContainer && this.formContainer['submitted']))) {\n selectClass += ' select-border-error';\n } else {\n selectClass += ' select-border-normal';\n }\n\n if (this.multiple) {\n selectClass += ` h-auto ${this.ngtStyle.compile(['color.bg', 'color.text'])}`;\n } else {\n selectClass += ` ${this.ngtStyle.compile(['h', 'color.bg', 'color.text'])}`;\n }\n\n return selectClass;\n }\n\n private initNgSelectItems() {\n if (this.remoteResource && this.canLoadItems()) {\n this.ngSelectItems = new Observable(observer => {\n this.ngSearchObserver = observer;\n this.search({});\n });\n\n this.typeahead = new Subject();\n\n this.subscriptions.push(\n this.typeahead.subscribe((term) => {\n this.search({ term: term });\n })\n );\n } else if (this.items instanceof Observable) {\n this.ngSelectItems = this.items;\n } else {\n if (!this.items) {\n this.items = [];\n }\n\n this.ngSelectItems = new Observable((observer) => {\n this.ngSearchObserver = observer;\n observer.next(this.items);\n });\n }\n }\n\n private initComponentValidation() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n this.formControl = this.formContainer.control.get(this.name);\n this.markAsPristine();\n this.updateValidations();\n }\n }\n\n private getElementTitle(): string {\n return this.ngSelectComponent.element.parentElement.parentElement.parentElement.title;\n }\n\n private hasChangesBetweenModels(value, nativeValue) {\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(this.isRequiredValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private isRequiredValidator() {\n return (control: AbstractControl) => {\n if (this.multiple) {\n if (Array.isArray(this.value) && this.value.length > 0) {\n return null;\n }\n } else if (control.value && JSON.stringify(control.value)) {\n return null;\n }\n\n return { 'required': true };\n };\n }\n\n private replaceShowAddTag() {\n Object.defineProperty(this.ngSelectComponent, 'showAddTag', {\n get: () => {\n if (!this.ngSelectComponent['searchTerm']) {\n return false;\n }\n\n const term = this.ngSelectComponent['searchTerm'].toLocaleLowerCase();\n\n return this.ngSelectComponent.addTag && !this.ngSelectComponent.loading\n && (!this.hasTermInFilteredItems(term) && (!this.hasTermInSelectedItems(term)\n || !this.ngSelectComponent.hideSelected && this.ngSelectComponent.isOpen));\n }\n });\n }\n\n private bindInnerInputUniqueId() {\n const childInputs = this.ngSelectComponent.element.getElementsByTagName('input');\n\n if (childInputs?.length) {\n const innerInput = childInputs[0];\n\n innerInput.id = uuid();\n }\n }\n\n private bindCompareWithByResponse(response: NgtHttpResponse): void {\n if (this.guessCompareWith) {\n if (response.data?.length && typeof response.data[0]['getApiId'] === 'function') {\n this.compareWith = (a: any, b: any) => a.getApiId() == b.getApiId();\n } else {\n this.compareWith = (a: any, b: any) => a === b;\n }\n }\n }\n\n private hasTermInFilteredItems(term: string) {\n const filteredItems = this.ngSelectComponent.itemsList.filteredItems;\n\n if (filteredItems?.length && this.isColoquentResource()) {\n return filteredItems.some((element: any) => {\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n return filteredItems.some((element: any) => {\n const elementValue = (<any>element.value)[this.bindLabel];\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n private hasTermInSelectedItems(term: string) {\n const selectedItems = this.ngSelectComponent.selectedItems;\n\n if (selectedItems?.length && this.isColoquentResource()) {\n return selectedItems.some((element: any) => {\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n return selectedItems.some((element: any) => {\n const elementValue = (<any>element.value)[this.bindLabel];\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n private hadPreviousSelection(item: any): boolean {\n return !!this.originalItems?.find(element => this.compareWith(element, item));\n }\n\n private isColoquentResource() {\n const items = this.ngSelectComponent.itemsList.items;\n\n return items?.length && typeof items[0].value['getAttribute'] === 'function';\n }\n\n private canLoadItems(): boolean {\n return this.autoLoad || (!this.isDisabled && this.wasClicked);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtSelectDropdownPanelHeight {\n AUTO = 'auto',\n XS = 'xs',\n MD = 'md',\n SM = 'sm',\n LG = 'lg',\n XL = 'xl'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtSelectComponent } from './ngt-select.component';\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\nimport {NgtSvgModule} from \"../ngt-svg/ngt-svg.module\";\n\n@NgModule({\n declarations: [\n NgtSelectComponent,\n NgtSelectOptionTmp,\n NgtSelectOptionSelectedTmp,\n NgtSelectHeaderTmp\n ],\n exports: [\n NgtSelectComponent,\n NgtSelectOptionTmp,\n NgtSelectOptionSelectedTmp,\n NgtSelectHeaderTmp\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgSelectModule,\n NgtValidationModule,\n NgtFormModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtSvgModule\n ]\n})\nexport class NgtSelectModule { }\n","import { Component, EventEmitter, Injector, Input, Optional, Output } from '@angular/core';\n\nimport { NgtHttpMeta, NgtHttpPagination } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-pagination',\n templateUrl: './ngt-pagination.component.html',\n styleUrls: ['./ngt-pagination.component.css']\n})\nexport class NgtPaginationComponent {\n @Input() public pagesInterval: number;\n\n @Output() public onPageChange: EventEmitter<number> = new EventEmitter();\n @Output() public onPerPageChange: EventEmitter<number> = new EventEmitter();\n\n /** Styles */\n public ngtPaginationActivePageButtonStyle: NgtStylizableService;\n public ngtPaginationNextPreviousButtonStyle: NgtStylizableService;\n public ngtPaginationNextPreviousSectionButtonStyle: NgtStylizableService;\n public ngtPaginationFirstLastButtonStyle: NgtStylizableService;\n public ngtPaginationPageButtonStyle: NgtStylizableService;\n\n public sectionStartPage: number;\n public sectionEndPage: number;\n public displayNextSectionButton: boolean;\n public displayPreviousSectionButton: boolean;\n public displayPagination: boolean = true;\n\n public pagination: NgtHttpPagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n\n public pages = [];\n\n public registersPerPageOptions = [\n 5, 10, 15, 30, 50, 100\n ];\n\n public currentRegistersPerPage: number = 15;\n\n public constructor(\n private injector: Injector,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();\n this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();\n this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();\n this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();\n this.ngtPaginationPageButtonStyle = new NgtStylizableService();\n\n this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-700'\n }\n });\n\n this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-300'\n }\n });\n\n this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-900'\n }\n });\n\n this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-500'\n }\n });\n\n this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-300'\n }\n });\n }\n\n public onRegistersPerPageChange(value: any) {\n if (value && this.pagination.per_page != value) {\n this.pagination.per_page = value;\n this.currentRegistersPerPage = value;\n\n this.onPerPageChange.emit(value);\n }\n }\n\n public async goToPage(page: number) {\n this.onPageChange.emit(page);\n }\n\n public async goToPreviousPage() {\n if ((this.pagination.page - 1) > 0) {\n return this.goToPage(this.pagination.page - 1);\n }\n }\n\n public async goToNextPage() {\n if ((this.pagination.page + 1) <= this.pagination.pages) {\n return this.goToPage(this.pagination.page + 1);\n }\n }\n\n public async goToPreviousSection() {\n return this.goToPage(this.sectionStartPage - 1);\n }\n\n public async goToNextSection() {\n return this.goToPage(this.sectionEndPage + 1);\n }\n\n public async goToFirstPage() {\n if (this.pagination.page != 1) {\n return this.goToPage(1);\n }\n }\n\n public async goToLastPage() {\n if (this.pagination.page != this.pagination.pages) {\n return this.goToPage(this.pagination.pages);\n }\n }\n\n public getCurrentPage() {\n return this.pagination.page;\n }\n\n public getPagination() {\n return this.pagination;\n }\n\n public proccessPagination(meta: NgtHttpMeta) {\n this.pages = [];\n this.pagination = meta.pagination;\n\n this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;\n this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);\n\n const totalPages = this.pagination.pages;\n\n for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {\n this.pages.push(i);\n }\n\n this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);\n this.displayPagination = true;\n }\n\n public resetPagination() {\n this.pagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n }\n\n private bindDisplayedButtonSections(sectionStartPage: number, sectionEndPage: number, totalPages: number) {\n this.displayPreviousSectionButton = sectionStartPage > 1 ? true : false;\n this.displayNextSectionButton = sectionEndPage < totalPages ? true : false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\nimport { NgtSelectModule } from '../ngt-select/ngt-select.module';\nimport { NgtPaginationComponent } from './ngt-pagination.component';\n\n@NgModule({\n declarations: [NgtPaginationComponent],\n exports: [NgtPaginationComponent],\n imports: [\n CommonModule,\n FormsModule,\n NgtStylizableModule,\n NgtActionModule,\n NgtSelectModule,\n ]\n})\nexport class NgtPaginationModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-tag',\n templateUrl: './ngt-tag.component.html',\n styleUrls: ['./ngt-tag.component.css']\n})\nexport class NgtTagComponent {\n @Input() public icon: string;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Tag', {\n color: {\n bg: 'bg-gray-500',\n text: 'text-white'\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtTagComponent } from './ngt-tag.component';\n\n@NgModule({\n declarations: [NgtTagComponent],\n exports: [NgtTagComponent],\n imports: [\n CommonModule,\n NgtSvgModule\n ]\n})\nexport class NgtTagModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\nimport { NgtModalComponent } from '../ngt-modal/ngt-modal.component';\nimport { NgtPaginationComponent } from '../ngt-pagination/ngt-pagination.component';\n\n@Component({\n selector: 'ngt-datatable',\n templateUrl: './ngt-datatable.component.html',\n styleUrls: ['./ngt-datatable.component.css']\n})\nexport class NgtDatatableComponent implements OnInit, OnDestroy {\n @ViewChild('table', { static: true }) public table: ElementRef;\n @ViewChild('ngtPagination', { static: true }) public ngtPagination: NgtPaginationComponent;\n @ViewChild('searchModal', { static: true }) public searchModal: NgtModalComponent;\n\n @Input() public remoteResource: any;\n @Input() public type: NgtDatatableType = NgtDatatableType.REMOTE;\n @Input() public filterTagBgColor: string = 'bg-blue-500';\n @Input() public filterTagMargin: string = 'mb-4';\n @Input() public paginationMargin: string = 'mt-2 md:mt-8';\n @Input() public inputSearch: NgtInputComponent;\n @Input() public searchDelay: number = 500;\n @Input() public searchTermMinLength: number = 1;\n @Input() public searchTermOnEnter: boolean = true;\n @Input() public defaultFilters: any = {};\n @Input() public filtersDescription = {};\n\n @Output() public onDataChange: EventEmitter<any> = new EventEmitter();\n @Output() public onClearFilter: EventEmitter<any> = new EventEmitter();\n @Output() public onClearSelectedElements: EventEmitter<any> = new EventEmitter();\n @Output() public onSelectedElementsChange: EventEmitter<Array<NgtCheckedElement>> = new EventEmitter();\n @Output() public onToogleAllCheckboxes: EventEmitter<any> = new EventEmitter();\n @Output() public onToogleCheckbox: EventEmitter<NgtCheckedElement> = new EventEmitter();\n @Output() public onOpenSearchModal: EventEmitter<string> = new EventEmitter();\n @Output() public onSearch: EventEmitter<any> = new EventEmitter();\n\n public searchModalTemplate: TemplateRef<any>;\n public data = [];\n public loading = false;\n public cleaningFilter = false;\n public componentReady = false;\n public filtersTranslated = [];\n public emptyStateVisible: boolean;\n public columnCount = [];\n public selectedElements: Array<NgtCheckedElement> = [];\n\n private searching: boolean;\n private searchTimeout: any;\n private subscriptions: Array<Subscription> = [];\n private currentState = {\n filters: {\n defaultFilters: {},\n silentFilters: {},\n qualifiedFilters: {},\n },\n sort: {\n field: '',\n direction: ''\n }\n };\n\n public constructor(\n private injector: Injector,\n private ngtHttpService: NgtHttpService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n\n public ngOnInit() {\n if (this.table && this.table.nativeElement && this.table.nativeElement.rows\n && this.table.nativeElement.rows[0] && this.table.nativeElement.rows[0].cells) {\n this.columnCount = this.table.nativeElement.rows[0].cells;\n }\n\n if (this.inputSearch) {\n this.initSearchWithInput();\n }\n\n this.initCheckboxEvent();\n\n if (this.searchDelay == 500) {\n this.searchDelay = this.injector.get('NgtDatatableSearchDelay', 500);\n }\n\n if (this.searchTermMinLength == 1) {\n this.searchTermMinLength = this.injector.get('NgtDatatableSearchTermMinLength', 1);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public setSearchModalTemplate(template: TemplateRef<any>) {\n this.searchModalTemplate = template;\n }\n\n public openSearchModal(reference?: string) {\n this.searchModal.open();\n this.onOpenSearchModal.emit(reference);\n }\n\n public clearSelectedElements() {\n this.selectedElements = [];\n this.onClearSelectedElements.emit();\n }\n\n public getCurrentState() {\n return this.currentState;\n }\n\n public init() {\n this.componentReady = true;\n }\n\n public async search(\n filters: Object,\n searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT,\n applyDelayOnSearch: boolean = true\n ) {\n if (this.canApplyFilters(filters)) {\n this.onSearch.emit(filters);\n\n if (searchType == NgtDatatableSearchType.DEFAULT) {\n this.currentState.filters.defaultFilters = { ...this.currentState.filters.defaultFilters, ...filters };\n } else {\n this.currentState.filters.silentFilters = { ...this.currentState.filters.silentFilters, ...filters };\n }\n\n this.applyFiltersDescription();\n\n return this.apply(1, applyDelayOnSearch);\n }\n }\n\n public async sort(field: any, direction: any) {\n this.currentState.sort = {\n field: field,\n direction: direction\n };\n\n return this.apply(this.ngtPagination.getCurrentPage());\n }\n\n public async refresh(stayInPage: NgtDatatableParam = NgtDatatableParam.RESET_PAGE, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\n return this.apply(\n stayInPage ? this.ngtPagination.getCurrentPage() : 1,\n false,\n loader\n ).then(() => !this.data?.length ? this.apply(1, false) : null);\n }\n\n public getData() {\n return this.data;\n }\n\n public getCurrentSort() {\n return this.currentState.sort;\n }\n\n public setPerPage(perPage: number) {\n this.ngtPagination.onRegistersPerPageChange(perPage);\n }\n\n public applyFiltersDescription() {\n if (!this.cleaningFilter) {\n this.filtersTranslated = [];\n\n for (let reference in this.currentState.filters.defaultFilters) {\n if (this.filtersDescription[reference] && this.currentState.filters.defaultFilters[reference]) {\n this.filtersTranslated.push({\n reference: reference,\n value: this.currentState.filters.defaultFilters[reference],\n translation: this.filtersDescription[reference]\n });\n }\n }\n }\n }\n\n public setFilterDescription(reference: string, description: string) {\n this.filtersDescription[reference] = description;\n }\n\n public removeFilter(reference?: string, refresh: boolean = true): void {\n if (reference && !this.hasAppliedFilter(reference)) {\n return;\n }\n\n this.cleaningFilter = true;\n\n if (!reference) {\n this.currentState.filters.defaultFilters = {};\n this.currentState.filters.silentFilters = {};\n this.filtersTranslated = [];\n } else {\n delete this.currentState.filters.defaultFilters[reference];\n delete this.currentState.filters.silentFilters[reference];\n\n this.filtersTranslated = this.filtersTranslated.filter(element => element && element.reference !== reference);\n }\n\n this.onClearFilter.emit(reference);\n\n if (this.inputSearch && (reference === 'term' || !reference)) {\n this.inputSearch.clearInput();\n }\n\n if (refresh) {\n this.apply(this.ngtPagination.getCurrentPage(), false).then(() => this.cleaningFilter = false);\n }\n }\n\n public hasAppliedFilter(filter: Object | NgtCustomFilter | string): boolean {\n const reference: string = typeof filter === 'string' ? filter : Object.keys(filter ?? {})[0];\n const appliedFilters = this.currentState.filters.qualifiedFilters;\n\n return !!Object.keys(appliedFilters).find(key => key == reference);\n }\n\n public hasAppliedFilters(searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT) {\n let appliedFilters = {};\n\n if (searchType == NgtDatatableSearchType.DEFAULT) {\n appliedFilters = this.currentState.filters.defaultFilters;\n } else if (searchType == NgtDatatableSearchType.SILENT) {\n appliedFilters = this.currentState.filters.silentFilters;\n } else {\n appliedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\n }\n\n return !!Object.values(appliedFilters)?.find(filter => !!filter);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.inputSearch) {\n if (changes.inputSearch.currentValue) {\n this.initSearchWithInput();\n }\n }\n\n if (changes.type) {\n this.type = getEnumFromString(changes.type.currentValue, NgtDatatableType);\n }\n }\n\n public async apply(page = 1, applyDelayOnSearch: boolean = true, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\n return new Promise<void>(resolve => {\n if (!this.componentReady) {\n return resolve();\n } else if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.ngtPagination.displayPagination = false;\n this.selectedElements = [];\n\n if (this.type === NgtDatatableType.REMOTE) {\n if (this.remoteResource) {\n if (loader) {\n this.loading = true;\n this.bindVisibilityAttributes();\n }\n\n if (applyDelayOnSearch) {\n this.searchTimeout = setTimeout(() => {\n this.loadData(page).then(() => resolve());\n }, this.searchDelay);\n } else {\n this.loadData(page).then(() => resolve());\n }\n } else {\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\n }\n } else if (this.type == NgtDatatableType.FIXED) {\n this.bindVisibilityAttributes();\n\n resolve();\n }\n });\n }\n\n private loadData(page: number) {\n return new Promise<void>((resolve, reject) => {\n const pagination: NgtHttpPagination = { ...this.ngtPagination.getPagination(), ...{ page: page } };\n\n this.currentState.filters.qualifiedFilters = this.getQualifiedFilters();\n this.searching = true;\n\n if (this.inputSearch) {\n this.inputSearch.isDisabled = true;\n }\n\n this.subscriptions.push(\n this.ngtHttpService.get(\n this.remoteResource, this.currentState.filters.qualifiedFilters, pagination, this.currentState.sort\n ).subscribe(\n (response: NgtHttpResponse) => {\n this.proccessRemoteResponse(response.data);\n this.ngtPagination.proccessPagination(response.meta);\n\n this.searching = false;\n this.loading = false;\n\n if (this.inputSearch) {\n this.inputSearch.isDisabled = false;\n }\n\n this.onDataChange.emit(this.data);\n this.bindVisibilityAttributes();\n\n resolve();\n },\n (error) => {\n console.error(error);\n this.loading = false;\n this.inputSearch.isDisabled = false;\n this.changeDetector.detectChanges();\n\n reject();\n }\n )\n );\n });\n }\n\n private getQualifiedFilters() {\n const qualifiedFilters = {};\n const requestedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\n\n if (requestedFilters) {\n for (const reference in requestedFilters) {\n const filter = requestedFilters[reference];\n\n if (this.isValidFilter(filter)) {\n if (filter instanceof NgtCustomFilter) {\n if (filter.tagLabel) {\n this.filtersDescription[reference] = filter.tagLabel;\n this.applyFiltersDescription();\n }\n\n qualifiedFilters[reference] = filter.term;\n } else {\n qualifiedFilters[reference] = filter;\n }\n }\n }\n }\n\n return qualifiedFilters;\n }\n\n private bindVisibilityAttributes() {\n this.changeDetector.detectChanges();\n\n if (this.type == NgtDatatableType.REMOTE && !this.data.length && !this.loading) {\n this.emptyStateVisible = true;\n } else if (this.type == NgtDatatableType.FIXED) {\n this.emptyStateVisible = false;\n } else {\n this.emptyStateVisible = false;\n }\n\n this.changeDetector.detectChanges();\n }\n\n private proccessRemoteResponse(response: any) {\n this.data = response;\n }\n\n private initSearchWithInput() {\n this.subscriptions.push(\n this.inputSearch.onValueChange().subscribe((value: string) => {\n if (this.currentState.filters.defaultFilters['term']) {\n if (!value) {\n this.removeFilter('term');\n } else if (value.length < this.searchTermMinLength) {\n delete this.currentState.filters.defaultFilters['term'];\n\n this.search({ term: '' });\n }\n }\n\n if (value.length >= this.searchTermMinLength) {\n this.search({ term: value });\n }\n })\n );\n\n if (this.searchTermOnEnter) {\n this.inputSearch.element.nativeElement.addEventListener('keydown', (event: any) => {\n event.stopImmediatePropagation();\n\n if (event.keyCode == 13) {\n if (this.inputSearch.value && this.inputSearch.value.length >= this.searchTermMinLength) {\n this.apply(1, false);\n }\n }\n });\n }\n }\n\n private initCheckboxEvent() {\n this.subscriptions.push(\n this.onToogleCheckbox.subscribe((checkedElement: NgtCheckedElement) => {\n this.selectedElements = this.selectedElements.filter(item => item.id !== checkedElement.id);\n\n if (checkedElement.checked) {\n this.selectedElements.push(checkedElement);\n }\n\n this.onSelectedElementsChange.emit(this.selectedElements);\n })\n );\n }\n\n private canApplyFilters(filters: Object): boolean {\n if (!this.searching) {\n for (const reference in filters) {\n if (this.isValidFilter(filters[reference])) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private isValidFilter(filter: Object | NgtCustomFilter): boolean {\n const value: string | NgtCustomFilter = Object.values(filter ?? {})[0];\n const hasValue: boolean = !!((value instanceof NgtCustomFilter && value.term) || value);\n const isApplied: boolean = this.hasAppliedFilter(filter);\n\n return isApplied || (!isApplied && hasValue);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDatatableType {\n REMOTE = 'REMOTE',\n FIXED = 'FIXED'\n}\n\nexport enum NgtDatatableSearchType {\n DEFAULT = 'DEFAULT',\n SILENT = 'SILENT',\n}\n\nexport enum NgtDatatableParam {\n STAY_IN_PAGE = 1,\n RESET_PAGE = 0,\n ENABLE_LOADER = 1,\n DISABLE_LOADER = 0\n}\n\nexport class NgtCheckedElement {\n public id: string;\n public checked: boolean;\n public reference: any;\n}\n\nexport class NgtCustomFilter {\n public term: string;\n public tagValue: string;\n public tagLabel?: string;\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-tbody]',\n templateUrl: './ngt-tbody.component.html',\n styleUrls: ['./ngt-tbody.component.css'],\n})\nexport class NgtTbodyComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n this.bindNgtStyle();\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTbody', {\n color: {\n bg: 'bg-white',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Output,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { uuid } from '../../../helpers/uuid';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtCheckboxComponent } from '../../ngt-checkbox/ngt-checkbox.component';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-td-check]',\n templateUrl: './ngt-td-check.component.html',\n styleUrls: ['./ngt-td-check.component.css'],\n})\nexport class NgtTdCheckComponent implements OnDestroy {\n @ViewChild(NgtCheckboxComponent, { static: true }) public checkbox: NgtCheckboxComponent;\n @Input() public reference: any;\n @Input() public isDisabled: boolean;\n @Input() public checked: boolean = false;\n @Output() public onCheckboxInit: EventEmitter<any> = new EventEmitter();\n\n public ngtStyle: NgtStylizableService;\n\n private id: string = uuid();\n private subscriptions: Array<Subscription> = [];\n private isFirstChange: boolean = true;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtDataTable: NgtDatatableComponent\n ) {\n this.bindNgtStyle();\n }\n\n public ngAfterContentInit(): void {\n if (this.ngtDataTable) {\n this.subscriptions.push(\n this.ngtDataTable.onToogleAllCheckboxes.subscribe((checked: boolean) => {\n this.checked = checked;\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\n this.checked = false;\n })\n );\n\n this.onCheckboxInit.emit({\n id: this.id,\n checked: this.checked,\n reference: this.reference\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public onCheckboxChange(checked: boolean): void {\n if (this.ngtDataTable && !this.isFirstChange) {\n this.ngtDataTable.onToogleCheckbox.emit({\n id: this.id,\n checked: checked,\n reference: this.reference\n });\n }\n\n this.isFirstChange = false;\n }\n\n private bindNgtStyle(): void {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTdCheck', {\n py: 'py-4',\n px: 'px-6',\n text: 'text-center',\n border: 'border-b',\n color: {\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.border',\n ]);\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-td]',\n templateUrl: './ngt-td.component.html',\n styleUrls: ['./ngt-td.component.css'],\n})\nexport class NgtTdComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n this.bindNgtStyle();\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTd', {\n py: 'py-4',\n px: 'px-6',\n border: 'border-b',\n break: 'break-words',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n 'break'\n ]);\n }\n}\n","import { AfterContentInit, Component, ElementRef, Injector, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-th-check]',\n templateUrl: './ngt-th-check.component.html',\n styleUrls: ['./ngt-th-check.component.css'],\n})\nexport class NgtThCheckComponent implements AfterContentInit, OnDestroy {\n public checked = false;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtDataTable: NgtDatatableComponent\n ) {\n this.bindNgtStyle();\n }\n\n public ngAfterContentInit() {\n if (this.ngtDataTable) {\n this.subscriptions.push(\n this.ngtDataTable.onDataChange.subscribe(() => {\n this.checked = false;\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\n this.checked = false;\n })\n );\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public onCheckboxChange(checked: boolean) {\n if (this.ngtDataTable) {\n this.ngtDataTable.onToogleAllCheckboxes.emit(checked);\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtThCheck', {\n py: 'py-4',\n px: 'px-6',\n text: 'text-center',\n border: 'border-b',\n color: {\n border: '',\n bg: 'bg-gray-500',\n text: 'text-white'\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.border',\n 'color.bg',\n 'color.text'\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtInputComponent } from '../../ngt-input/ngt-input.component';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-th]',\n templateUrl: './ngt-th.component.html',\n styleUrls: ['./ngt-th.component.css'],\n})\nexport class NgtThComponent implements OnChanges, OnDestroy {\n @ViewChild('searchInput') public searchInput: NgtInputComponent;\n @ViewChild('modal', { static: true }) public modal: TemplateRef<any>;\n\n @Input() public reference: string;\n @Input() public sortReference: string;\n @Input() public sortable: boolean;\n @Input() public searchable: boolean;\n @Input() public hasCustomSearch: boolean = false;\n @Input() public searchLabel: string;\n @Input() public sortableTooltip: NgtSortableTooltip = {\n ascending: 'Ordenar de Z a A',\n descending: 'Limpar ordenação',\n unordered: 'Ordenar de A a Z'\n };\n\n @Output() public onEnableSearch = new EventEmitter();\n\n public inputFocused: boolean = false;\n public isCurrentSort = false;\n public sortDirection = '';\n public searchTerm: any;\n public customSearchTerm: any;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n public ngtDataTable: NgtDatatableComponent\n ) {\n if (this.checkDataTable()) {\n this.subscriptions.push(\n this.ngtDataTable.onDataChange.subscribe(() => {\n this.isCurrentSort = this.ngtDataTable.getCurrentSort().field == this.getSortReference();\n\n if (this.isCurrentSort) {\n this.sortDirection = this.ngtDataTable.getCurrentSort().direction;\n }\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearFilter.subscribe((reference) => {\n if (reference == this.reference || !reference) {\n this.searchTerm = '';\n this.customSearchTerm = null;\n }\n })\n );\n }\n\n this.bindNgtStyle();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.searchLabel && this.checkDataTable) {\n this.ngtDataTable.setFilterDescription(this.reference, this.searchLabel);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public async sort() {\n if (this.sortable && this.checkDataTable() && this.checkReference()) {\n let sortDirection = this.getNextSortDirection();\n\n if (sortDirection) {\n await this.ngtDataTable.sort(this.getSortReference(), sortDirection);\n } else {\n this.ngtDataTable.sort('', '');\n }\n\n this.sortDirection = sortDirection;\n }\n }\n\n public enableSearch(event: any) {\n event.stopPropagation();\n\n this.ngtDataTable.setSearchModalTemplate(this.modal);\n this.ngtDataTable.openSearchModal(this.reference);\n\n setTimeout(() => {\n if (this.searchInput) {\n this.searchInput.setFocus();\n }\n }, 100);\n\n this.onEnableSearch.emit();\n }\n\n public search(term: any) {\n if (!this.hasCustomSearch && this.searchTerm === undefined\n && this.customSearchTerm === undefined && !term) {\n return;\n }\n\n if (this.searchable && this.reference) {\n let filter = {};\n\n filter[this.reference] = term;\n this.ngtDataTable.search(filter);\n }\n }\n\n public customSearch(term: any) {\n this.customSearchTerm = term;\n }\n\n public getTooltip() {\n if (this.sortable && this.sortableTooltip) {\n if (this.sortDirection == 'asc') {\n return this.sortableTooltip.ascending;\n } else if (this.sortDirection == 'desc') {\n return this.sortableTooltip.descending;\n }\n\n return this.sortableTooltip.unordered;\n }\n\n return '';\n }\n\n private getSortReference() {\n return this.sortReference ? this.sortReference : this.reference;\n }\n\n private checkDataTable() {\n if (!this.ngtDataTable) {\n console.error('The [ngt-th] must be inside of a [ngt-datatable]');\n\n return false;\n }\n\n return true;\n }\n\n private checkReference() {\n if (!this.reference && !this.sortReference) {\n console.error('The [ngt-th] must have a [reference] or a [sortReference] property to be able to sort');\n\n return false;\n }\n\n return true;\n }\n\n private getNextSortDirection() {\n switch (this.sortDirection) {\n case 'asc': return 'desc';\n case 'desc': return '';\n case '': return 'asc';\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTh', {\n py: 'py-4',\n px: 'px-6',\n font: 'font-bold',\n text: 'text-sm',\n border: 'border-b',\n justifyContent: 'justify-center',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport interface NgtSortableTooltip {\n ascending: string;\n descending: string;\n unordered: string;\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-thead]',\n templateUrl: './ngt-thead.component.html',\n styleUrls: ['./ngt-thead.component.css'],\n})\nexport class NgtTheadComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtThead', {\n color: {\n bg: 'bg-gray-200',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n 'rounded'\n ]);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n Optional,\n Self,\n SkipSelf,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtTbodyComponent } from '../ngt-tbody/ngt-tbody.component';\nimport { NgtTheadComponent } from '../ngt-thead/ngt-thead.component';\n\n@Component({\n selector: '[ngt-tr]',\n templateUrl: './ngt-tr.component.html',\n styleUrls: ['./ngt-tr.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtTrComponent {\n @HostBinding('class.evenStripped') @Input() public evenStripped: boolean;\n @HostBinding('class.oddStripped') @Input() public oddStripped: boolean;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @SkipSelf() @Optional() private ngtThead: NgtTheadComponent,\n @SkipSelf() @Optional() private ngtTbody: NgtTbodyComponent,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTr', {\n border: 'border-r border-t md:border-r-0 md:border-t-0',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n }, [this.getInheritanceStyles()]);\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n\n private getInheritanceStyles() {\n if (this.ngtThead) {\n return 'NgtTheadStyle';\n } else if (this.ngtTbody) {\n return 'NgtTbodyStyle';\n }\n\n return '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\nimport { NgtModalModule } from '../ngt-modal/ngt-modal.module';\nimport { NgtPaginationModule } from '../ngt-pagination/ngt-pagination.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtTagModule } from '../ngt-tag/ngt-tag.module';\nimport { NgtDatatableComponent } from './ngt-datatable.component';\nimport { NgtTbodyComponent } from './ngt-tbody/ngt-tbody.component';\nimport { NgtTdCheckComponent } from './ngt-td-check/ngt-td-check.component';\nimport { NgtTdComponent } from './ngt-td/ngt-td.component';\nimport { NgtThCheckComponent } from './ngt-th-check/ngt-th-check.component';\nimport { NgtThComponent } from './ngt-th/ngt-th.component';\nimport { NgtTheadComponent } from './ngt-thead/ngt-thead.component';\nimport { NgtTrComponent } from './ngt-tr/ngt-tr.component';\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\n\n@NgModule({\n declarations: [\n NgtDatatableComponent,\n NgtTbodyComponent,\n NgtTdComponent,\n NgtTdCheckComponent,\n NgtThComponent,\n NgtThCheckComponent,\n NgtTheadComponent,\n NgtTrComponent\n ],\n exports: [\n NgtDatatableComponent,\n NgtTbodyComponent,\n NgtTdComponent,\n NgtTdCheckComponent,\n NgtThComponent,\n NgtThCheckComponent,\n NgtTheadComponent,\n NgtTrComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtShiningModule,\n NgtPaginationModule,\n NgtCheckboxModule,\n NgtInputModule,\n NgtModalModule,\n NgtTagModule,\n NgtActionModule,\n NgtStylizableModule\n ]\n})\nexport class NgtDatatableModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-floating-button',\n templateUrl: './ngt-floating-button.component.html',\n styleUrls: ['./ngt-floating-button.component.css'],\n animations: [\n trigger('fadeY', [\n state('void', style({ opacity: 0, transform: 'translateY(10px)' })),\n transition(':enter, :leave', [\n animate(300)\n ])\n ]),\n\n trigger('openClose', [\n state('open', style({\n transform: 'rotate(180deg)'\n })),\n state('closed', style({\n transform: 'rotate(-180deg)'\n })),\n transition('open => closed', [\n animate('0.5s ease-in')\n ]),\n transition('closed => open', [\n animate('0.5s ease-in')\n ]),\n ]),\n ]\n})\nexport class NgtFloatingButtonComponent {\n @Input() public menus: Array<NgtFloatingButtonMenu>;\n @Input() public icon: string;\n @Input() public label: string;\n @Input() public withAnimation: boolean = false;\n\n public isOpen: boolean = false;\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtFloatingButton', {\n color: {\n bg: 'bg-blue-500',\n text: 'text-white',\n },\n px: 'px-4',\n py: 'py-4',\n h: 'h-12',\n w: 'w-12'\n });\n }\n\n public toggleMenu() {\n this.isOpen = !(this.isOpen);\n }\n\n public openExternalLink(url: string) {\n window.open(url, \"_blank\");\n this.toggleMenu();\n }\n\n public onClick(event: Event, menu: NgtFloatingButtonMenu) {\n event.stopPropagation();\n this.toggleMenu();\n\n if (typeof menu.action === 'function') {\n return menu.action();\n }\n\n throw new Error('Action must be a function!');\n }\n\n public isTypeAction(menu: NgtFloatingButtonMenu) {\n return menu.type == NgtFloatingButtonType.ACTION;\n }\n\n public isTypeNavigation(menu: NgtFloatingButtonMenu) {\n return menu.type == NgtFloatingButtonType.NAVIGATION;\n }\n}\n\nexport interface NgtFloatingButtonMenu {\n name?: string;\n type: NgtFloatingButtonType;\n icon?: string;\n tooltip?: string;\n externalLink?: boolean;\n url?: string;\n action?: Function;\n}\n\nexport enum NgtFloatingButtonType {\n NAVIGATION = 'NAVIGATION',\n ACTION = 'ACTION'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtFloatingButtonComponent } from './ngt-floating-button.component';\n\n@NgModule({\n declarations: [NgtFloatingButtonComponent],\n exports: [NgtFloatingButtonComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtSvgModule\n ]\n})\nexport class NgtFloatingButtonModule { }\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-slider',\n templateUrl: './ngt-slider.component.html',\n styleUrls: ['./ngt-slider.component.css'],\n providers: [\n NgtMakeProvider(NgtSliderComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtSliderComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n @ViewChild('display', { static: true }) public display: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean;\n @Input() public name: string;\n @Input() public min: string = '0';\n @Input() public max: string = '100';\n @Input() public step: string = '1';\n @Input() public color: NgtSliderColorSchemeEnum = NgtSliderColorSchemeEnum.PRIMARY;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this.display.nativeElement.innerHTML = this.value;\n }, 500);\n\n this.renderer.listen(this.element.nativeElement, 'change', () => {\n this.onNativeChange(this.element.nativeElement.value);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: boolean) {\n this.element.nativeElement.value = value;\n }\n\n public onNativeChange(value: boolean) {\n this.value = value;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtSliderColorSchemeEnum {\n PRIMARY = 'primary',\n SUCCESS = 'success',\n WARNING = 'warning',\n DANGER = 'danger'\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtSliderComponent } from './ngt-slider.component';\n\n@NgModule({\n declarations: [NgtSliderComponent],\n exports: [NgtSliderComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n ]\n})\nexport class NgtSliderModule { }\n","import { Component, EventEmitter, Output } from '@angular/core';\n\nimport { NgtRadioButtonComponent } from '../ngt-radio-button.component';\n\n@Component({\n selector: '[ngt-radio-button-container]',\n templateUrl: './ngt-radio-button-container.component.html',\n})\nexport class NgtRadioButtonContainerComponent {\n @Output() public onActiveRadioButtonChange = new EventEmitter();\n\n public setActiveRadioButton(activeRadioButton: NgtRadioButtonComponent) {\n this.onActiveRadioButtonChange.emit(activeRadioButton);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\n\n@Component({\n selector: 'ngt-radio-button',\n templateUrl: './ngt-radio-button.component.html',\n styleUrls: ['./ngt-radio-button.component.css'],\n providers: [\n NgtMakeProvider(NgtRadioButtonComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtRadioButtonComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public label: string;\n @Input() public name: string;\n @Input() public shining: boolean;\n @Input() public isSelectable: boolean = true;\n @Input() public isDisabled: boolean;\n\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Self() @Optional()\n private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n @Optional() @SkipSelf()\n private ngtRadioButtonContainer: NgtRadioButtonContainerComponent\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtRadioButtonContainer) {\n this.subscriptions.push(\n this.ngtRadioButtonContainer.onActiveRadioButtonChange.subscribe((activeRadioButton: NgtRadioButtonComponent) => {\n this.value = (activeRadioButton.name === this.name);\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\n color: {\n text: 'text-gray-500',\n border: 'border-gray-500',\n }\n });\n }\n\n public ngAfterViewInit() {\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\n this.onNativeChange(this.element.nativeElement.checked);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: boolean) {\n if (value) {\n this.element.nativeElement.checked = value;\n\n if (this.ngtRadioButtonContainer) {\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\n }\n }\n }\n\n public onNativeChange(value: boolean) {\n this.value = value ? value : !value;\n\n if (this.ngtRadioButtonContainer) {\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\n }\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\nimport { NgtRadioButtonComponent } from './ngt-radio-button.component';\n\n@NgModule({\n declarations: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\n exports: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n NgtHelperModule\n ]\n})\nexport class NgtRadioButtonModule { }\n","import {\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-textarea',\n templateUrl: './ngt-textarea.component.html',\n styleUrls: ['./ngt-textarea.component.css'],\n providers: [\n NgtMakeProvider(NgtTextareaComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtTextareaComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\n\n // Visual\n @Input() public label: string = \"\";\n @Input() public placeholder: string = \"\";\n @Input() public rows: string = \"3\";\n @Input() public showCharactersLength: boolean = false;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining: boolean = false;\n\n // Behavior\n @Input() public name: string;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public jit: boolean = false;\n @Input() public focus: boolean = false;\n\n // Validation\n @Input() public isRequired: boolean = false;\n @Input() public maxLength: number = 300;\n\n public componentReady = false;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private renderer: Renderer2,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTextarea', {\n text: 'text-sm',\n fontCase: '',\n color: {\n border: 'border-gray-400 focus:border-gray-700',\n bg: 'bg-bg-white focus:bg-white',\n text: 'text-gray-800'\n }\n });\n }\n\n public ngOnChanges(changes) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n }\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.warn(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\n }\n\n if (!this.name) {\n console.warn(\"The element must contain a name attribute!\", this.element.nativeElement);\n } else {\n setTimeout(() => {\n this.componentReady = true;\n\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public setFocus() {\n setTimeout(() => {\n this.element.nativeElement.focus();\n }, 200);\n }\n\n public clear() {\n this.element.nativeElement.value = '';\n this.value = '';\n }\n\n public change(value) {\n let nativeValue = this.getNativeValue();\n let ngModelValue = value ? value : '';\n\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (this.value != nativeValue) {\n this.element.nativeElement.value = ngModelValue;\n }\n }\n\n public getRemainingCharacters() {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length) {\n if ((this.maxLength - this.element.nativeElement.value.length) > 0) {\n return this.maxLength - this.element.nativeElement.value.length;\n } else {\n return 0;\n }\n }\n\n return this.maxLength;\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.focus) {\n this.setFocus();\n }\n\n let watch = \"change\";\n\n if (this.jit) {\n watch += \" keyup keydown keypress\";\n }\n\n watch.split(' ').forEach((evt) => {\n this.renderer.listen(this.element.nativeElement, evt, () => {\n let nativeValue = this.getNativeValue();\n\n if (this.value != nativeValue) {\n this.value = nativeValue;\n }\n });\n });\n\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\n // Backspace and delete\n if (event.keyCode != 8 && event.keyCode != 46) {\n event.preventDefault();\n\n return false;\n }\n }\n });\n\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n } else {\n console.warn(\"The element must contain a ngModel property\", this.element.nativeElement);\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n if (this.maxLength) {\n syncValidators.push(Validators.maxLength(this.maxLength));\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private getNativeValue() {\n return this.element.nativeElement.value;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtTextareaComponent } from './ngt-textarea.component';\n\n@NgModule({\n declarations: [NgtTextareaComponent],\n exports: [NgtTextareaComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtFormModule\n ]\n})\nexport class NgtTextareaModule { }\n","import {\n Component,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { FlatpickrOptions, Ng2FlatpickrComponent } from 'ng2-flatpickr';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\nconst Brazil = require(\"flatpickr/dist/l10n/pt.js\").default.pt;\nconst US = require(\"flatpickr/dist/l10n/default.js\").default;\n\nlet moment = require('moment');\nlet Inputmask = require('inputmask');\n\n@Component({\n selector: 'ngt-date',\n templateUrl: './ngt-date.component.html',\n styleUrls: ['./ngt-date.component.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n NgtMakeProvider(NgtDateComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtDateComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"ng2FlatpickrComponent\", { static: true }) public ng2FlatpickrComponent: Ng2FlatpickrComponent;\n\n // Visual\n @Input() public label: string = \"\";\n @Input() public placeholder: string = \"dd/mm/yyyy\";\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining = false;\n @Input() public dateFormat: string = 'd/m/Y H:i';\n @Input() public dateFormatNgModel = 'YYYY-MM-DD HH:mm:00';\n @Input() public showCalendarIcon: boolean = false;\n\n // Behavior\n @Input() public name: string;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public mode: NgtDateMode;\n @Input() public time_24hr: boolean = true;\n @Input() public enableTime: boolean = true;\n @Input() public noCalendar: boolean = false;\n @Input() public minuteIncrement: number = 1;\n @Input() public allowInput: boolean = false;\n @Input() public locale: NgtDateLocale = NgtDateLocale.BRAZIL;\n @Input() public allowClear: boolean = true;\n @Input() public minDate: string;\n @Input() public maxDate: string;\n @Input() public defaultDate: string;\n\n // Validation\n @Input() public isRequired: boolean = false;\n\n public ngtStyle: NgtStylizableService;\n public dateConfig: FlatpickrOptions;\n public nativeValue: any;\n public componentReady = false;\n public nativeName = uuid();\n public inputProperties: {\n htmlType?: string;\n length?: number;\n } = {};\n\n private subscriptions: Array<Subscription> = [];\n private lastInputedDateString: string;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtDate', {\n h: 'h-12',\n text: 'text-sm',\n fontCase: '',\n color: {\n text: 'text-gray-800'\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n\n if (changes.mode) {\n this.mode = getEnumFromString(changes.mode.currentValue, NgtDateMode);\n }\n\n if (changes.locale) {\n this.locale = getEnumFromString(changes.locale.currentValue, NgtDateLocale);\n }\n }\n\n public ngOnInit() {\n this.dateConfig = {\n dateFormat: this.dateFormat,\n mode: this.getDateMode(),\n minuteIncrement: this.minuteIncrement,\n minDate: this.minDate,\n maxDate: this.maxDate,\n time_24hr: this.time_24hr,\n enableTime: this.enableTime,\n noCalendar: this.noCalendar,\n allowInput: this.allowInput && !this.enableTime,\n locale: this.getLocale(),\n onChange: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, dateStr, instance, true),\n onClose: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, dateStr, instance, false),\n };\n\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n } else {\n setTimeout(() => {\n this.componentReady = true;\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');\n\n if (flatpickrElement?.length) {\n flatpickrElement[flatpickrElement.length - 1].remove();\n }\n\n this.destroySubscriptions();\n }\n\n public clearInput(clearInstance = false) {\n this.value = '';\n this.nativeValue = '';\n\n if (this.ng2FlatpickrComponent && clearInstance) {\n this.ng2FlatpickrComponent.setDateFromInput('');\n }\n }\n\n public change(value: any) {\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\n return this.clearInput();\n }\n\n if (value && value != this.nativeValue) {\n let firstValue = moment(value);\n\n if ((value instanceof Object && Object.keys(value).length) || (value instanceof Array && value.length)) {\n firstValue = moment(value[0]);\n\n if (value.length == 2) {\n firstValue = firstValue;\n\n let secondValue = moment(value[1]);\n\n if (firstValue.isValid() && secondValue.isValid()) {\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate([\n firstValue.format(this.getMomentDateFormat()),\n secondValue.format(this.getMomentDateFormat())\n ], true, this.dateFormat);\n }\n }\n }\n\n if (firstValue.isValid()) {\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate(firstValue.format(this.getMomentDateFormat()), true, this.dateFormat);\n }\n\n this.ng2FlatpickrComponent.setDateFromInput('');\n this.clearInput();\n }\n }\n\n public onNativeChange(value: any, dateStr: string, instance: any, triggerClose: boolean) {\n if (dateStr && this.allowInput && !this.enableTime && dateStr != this.lastInputedDateString) {\n this.lastInputedDateString = dateStr;\n\n return this.change(this.convertDateToAmericanFormat(dateStr));\n }\n\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\n if (triggerClose) {\n instance.close();\n }\n\n return this.clearInput();\n }\n\n if (this.mode == NgtDateMode.RANGE) {\n this.nativeValue = [];\n\n value.forEach(element => {\n element = moment(element);\n\n if (element && element.isValid()) {\n this.nativeValue.push(element.format(this.dateFormatNgModel));\n }\n });\n } else if (value[0]) {\n value = moment(value[0]);\n\n if (value && value.isValid()) {\n this.nativeValue = value.format(this.dateFormatNgModel);\n }\n }\n\n if (this.value != this.nativeValue) {\n this.value = this.nativeValue;\n }\n }\n\n public getNativeValue() {\n let nativeValue: any = this.nativeValue;\n\n if (nativeValue && nativeValue.format) {\n nativeValue = nativeValue.format(this.dateFormatNgModel);\n }\n\n return nativeValue;\n }\n\n public getFormattedNativeValue() {\n let nativeValue: any = this.nativeValue;\n\n if (nativeValue && Array.isArray(nativeValue)) {\n let formattedNativeValue: string = '';\n\n nativeValue.forEach(element => {\n element = moment(element);\n\n if (element.format && !this.enableTime) {\n formattedNativeValue += element.format('DD/MM/YYYY') + ' ';\n } else if (element.format && this.enableTime) {\n formattedNativeValue += element.format('DD/MM/YYYY HH:mm:00') + ' ';\n }\n });\n\n return formattedNativeValue;\n } else if (this.dateFormat == 'H:i') {\n return nativeValue;\n } else if (nativeValue) {\n nativeValue = moment(nativeValue);\n\n if (nativeValue.format && !this.enableTime) {\n return nativeValue.format('DD/MM/YYYY') + ' ';\n } else if (nativeValue.format && this.enableTime) {\n return nativeValue.format('DD/MM/YYYY HH:mm:00') + ' ';\n }\n }\n\n return this.placeholder;\n }\n\n public hasErrors(): boolean {\n return this.formControl?.errors && (this.formControl?.dirty || (this.formContainer && this.formContainer['submitted']));\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.defaultDate && !this.value) {\n this.value = moment(this.defaultDate).format(this.dateFormatNgModel);\n }\n\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n\n if (this.allowInput && !this.enableTime) {\n this.setupDateInputMask();\n }\n }\n }\n\n private setupDateInputMask(): void {\n if (this.locale == NgtDateLocale.BRAZIL) {\n return Inputmask('date', { mask: '99/99/9999' }).mask(this.ng2FlatpickrComponent.flatpickr['input']);\n }\n\n if (this.locale == NgtDateLocale.US) {\n return Inputmask('date', { mask: '9999-99-99' }).mask(this.ng2FlatpickrComponent.flatpickr['input']);\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private getLocale() {\n return this.locale == NgtDateLocale.US\n ? US\n : Brazil;\n }\n\n private getDateMode() {\n if (this.mode) {\n if (this.mode == NgtDateMode.RANGE) {\n return 'range';\n }\n }\n\n return 'single';\n }\n\n private getMomentDateFormat() {\n let dateFormat = '';\n\n for (let i = 0; i < this.dateFormat.length; i++) {\n switch (this.dateFormat.charAt(i)) {\n case 'd':\n dateFormat += 'DD';\n break;\n case 'm':\n dateFormat += 'MM';\n break;\n case 'M':\n dateFormat += 'MMM';\n break;\n case 'Y':\n dateFormat += 'YYYY';\n break;\n case '/':\n dateFormat += '/';\n break;\n case '-':\n dateFormat += '-';\n break;\n case ':':\n dateFormat += ':';\n break;\n case 'H':\n dateFormat += 'HH';\n break;\n case 'i':\n dateFormat += 'mm';\n break;\n case 's':\n dateFormat += 'ss';\n break;\n default:\n if (this.dateFormat.charAt(i) != '.') {\n dateFormat += this.dateFormat.charAt(i);\n }\n }\n }\n\n return dateFormat ? dateFormat : 'DD/MM/YYYY HH:mm:00';\n }\n\n private convertDateToAmericanFormat(dateTimeString: string): string {\n if (this.locale == NgtDateLocale.US) {\n return dateTimeString;\n }\n\n const splittedDate: Array<string> = dateTimeString.split('/');\n\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDateLocale {\n BRAZIL = 'BRAZIL',\n US = 'US'\n}\n\nexport enum NgtDateMode {\n SINGLE = 'SINGLE',\n RANGE = 'RANGE'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2FlatpickrModule } from 'ng2-flatpickr';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtDateComponent } from './ngt-date.component';\n\n@NgModule({\n declarations: [NgtDateComponent],\n exports: [NgtDateComponent],\n imports: [\n CommonModule,\n FormsModule,\n Ng2FlatpickrModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n ]\n})\nexport class NgtDateModule { }\n","import { Component, Injector, Input, OnChanges, OnDestroy, Optional, Self, SimpleChanges, SkipSelf } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-button',\n templateUrl: './ngt-button.component.html',\n styleUrls: ['./ngt-button.component.css'],\n})\nexport class NgtButtonComponent implements OnChanges, OnDestroy {\n @Input() public link: boolean = false;\n @Input() public href: string;\n @Input() public type: string = 'success';\n @Input() public loading: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public noSubmit: boolean = false;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n if (this.ngtFormComponent) {\n this.subscriptions.push(\n this.ngtFormComponent.onLoadingChange.subscribe((loading: boolean) => {\n this.loading = loading;\n })\n );\n }\n }\n\n public onClick(event: Event) {\n if (this.isDisabled || this.loading) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.type) {\n if (changes.type.currentValue == 'success') {\n this.ngtStyle.load(this.injector, 'NgtSuccessButton', {\n color: {\n bg: 'bg-green-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else if (changes.type.currentValue == 'warning') {\n this.ngtStyle.load(this.injector, 'NgtWarningButton', {\n color: {\n bg: 'bg-orange-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else if (changes.type.currentValue == 'danger') {\n this.ngtStyle.load(this.injector, 'NgtDangerButton', {\n color: {\n bg: 'bg-red-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else {\n this.ngtStyle.load(this.injector, 'NgtInfoButton', {\n color: {\n bg: 'bg-blue-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n }\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtButtonComponent } from './ngt-button.component';\n\n@NgModule({\n declarations: [NgtButtonComponent],\n exports: [NgtButtonComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtFormModule\n ]\n})\nexport class NgtButtonModule { }\n","import { Component, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-body',\n templateUrl: './ngt-portlet-body.component.html',\n styleUrls: ['./ngt-portlet-body.component.css']\n})\nexport class NgtPortletBodyComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletBody', {\n color: {\n text: 'text-black'\n },\n py: 'py-6',\n px: 'px-4 md:px-8'\n }, ['NgtPortletStyle']);\n }\n}\n","import { Component, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-footer',\n templateUrl: './ngt-portlet-footer.component.html',\n styleUrls: ['./ngt-portlet-footer.component.css']\n})\nexport class NgtPortletFooterComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletFooter', {\n color: {\n bg: 'bg-gray-200',\n text: 'text-black'\n }\n }, ['NgtPortletStyle']);\n }\n}\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-header',\n templateUrl: './ngt-portlet-header.component.html',\n styleUrls: ['./ngt-portlet-header.component.css']\n})\nexport class NgtPortletHeaderComponent {\n @Input() public caption: string = '';\n @Input() public icon: string = '';\n @Input() public helperTitle: string = '';\n @Input() public helperText: string = '';\n @Input() public helperIconColor: string = '';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletHeader', {\n h: 'h-auto',\n w: 'w-auto',\n text: 'text-xl',\n fontCase: '',\n border: 'border-b',\n color: {}\n }, ['NgtPortletStyle']);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet',\n templateUrl: './ngt-portlet.component.html',\n styleUrls: ['./ngt-portlet.component.css'],\n animations: [\n trigger('fadeUp', [\n state('void', style({ transform: 'translateY(20px)', opacity: 0 })),\n transition(':enter', [\n animate(500)\n ])\n ])\n ]\n})\nexport class NgtPortletComponent {\n @Input() public caption: string;\n @Input() public icon: string = null;\n @Input() public customLayout: boolean = false;\n @Input() public withFooter: boolean = false;\n @Input() public withBody: boolean = true;\n @Input() public helpTitle: string = '';\n @Input() public helpText: string = '';\n @Input() public helpIconColor: string = '';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortlet', {\n h: 'h-auto',\n shadow: 'shadow',\n color: {}\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtPortletBodyComponent } from './ngt-portlet-body/ngt-portlet-body.component';\nimport { NgtPortletFooterComponent } from './ngt-portlet-footer/ngt-portlet-footer.component';\nimport { NgtPortletHeaderComponent } from './ngt-portlet-header/ngt-portlet-header.component';\nimport { NgtPortletComponent } from './ngt-portlet.component';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\n\n@NgModule({\n declarations: [\n NgtPortletComponent,\n NgtPortletHeaderComponent,\n NgtPortletBodyComponent,\n NgtPortletFooterComponent\n ],\n exports: [\n NgtPortletComponent,\n NgtPortletHeaderComponent,\n NgtPortletBodyComponent,\n NgtPortletFooterComponent\n ],\n imports: [\n CommonModule,\n NgtSvgModule,\n NgtHelperModule\n ]\n})\nexport class NgtPortletModule { }\n","export enum Size {\n AUTO = 'AUTO',\n XS = 'XS',\n SM = 'SM',\n MD = 'MD',\n XL = 'XL',\n FULL = 'FULL'\n};\n","import { animate, AnimationStyleMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport function slideLeftToRightAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateX(-50px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function slideRightToLeftAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateX(50px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function fadeDownAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateY(-20px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function fadeUpAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateY(20px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n Injector,\n Input,\n Optional,\n Self,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\nimport { fadeDownAnimation } from '../../animations/ngt-angular-animations';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { Size } from '../../enums/size.enum';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-sidenav',\n templateUrl: './ngt-sidenav.component.html',\n styleUrls: ['./ngt-sidenav.component.css'],\n animations: [\n fadeDownAnimation('fadeDownAnimation', 600)\n ],\n})\n\nexport class NgtSidenavComponent implements AfterViewInit {\n @ViewChild('sideMenu', { static: true }) public sideMenuRef: ElementRef;\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\n\n @Input() public size: Size = Size.XS;\n @Input() public initVisible: boolean = false;\n @Input() public closeMenuOnMobileView: boolean = true;\n\n public visible: boolean = false;\n public open: boolean = false;\n public isMenuContracted: boolean = false;\n public ngtStyle: NgtStylizableService;\n\n private screenWidth: number;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStyleDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStyleDirective) {\n this.ngtStyle = this.ngtStyleDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Sidenav', {\n h: 'md:h-auto h-screen',\n color: {}\n });\n\n this.bindScreenSize();\n }\n\n @HostListener('window:resize', ['$event'])\n public bindScreenSize(event?) {\n this.screenWidth = window.innerWidth;\n }\n\n public ngAfterViewInit() {\n if (this.initVisible) {\n setTimeout(() => {\n this.visible = true;\n });\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.size) {\n this.size = getEnumFromString(changes.size.currentValue, Size);\n }\n }\n\n public toggleMenu() {\n if (this.open) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n }\n\n public closeMenu() {\n this.open = false;\n }\n\n public openMenu() {\n this.open = true;\n }\n\n public getNavSize() {\n switch (this.size) {\n case Size.AUTO: return 'md:w-auto w-4/12';\n case Size.XS: return 'md:w-1/12 w-4/12';\n case Size.SM: return 'md:w-2/12 w-5/12';\n case Size.MD: return 'md:w-4/12 w-6/12';\n case Size.XL: return 'md:w-6/12 w-full';\n case Size.FULL: return 'w-full';\n }\n }\n\n public getContainerSize() {\n if (!this.visible) {\n return 'w-full';\n }\n\n if (this.isMobileView()) {\n return 'w-full';\n }\n\n switch (this.size) {\n case Size.AUTO: return 'w-full';\n case Size.XS: return 'md:w-11/12 w-full';\n case Size.SM: return 'md:w-10/12 w-full';\n case Size.MD: return 'md:w-8/12 w-full';\n case Size.XL: return 'md:w-6/12 w-full';\n case Size.FULL: return 'w-full';\n }\n }\n\n public toggleMenuSize(size: Size) {\n if (this.isMenuContracted) {\n this.size = size;\n this.isMenuContracted = false;\n } else {\n this.size = Size.AUTO;\n this.isMenuContracted = true;\n }\n }\n\n public isMobileView() {\n if (!this.closeMenuOnMobileView) {\n return false;\n }\n\n return this.screenWidth < 1024;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtSidenavComponent } from './ngt-sidenav.component';\n\n@NgModule({\n declarations: [NgtSidenavComponent],\n exports: [NgtSidenavComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtSidenavModule { }\n","import { Component, ElementRef, Injector, Input, Optional, Self, ViewChild } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-header-nav',\n templateUrl: './ngt-header-nav.component.html',\n styleUrls: ['./ngt-header-nav.component.css']\n})\nexport class NgtHeaderNavComponent {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'HeaderNav', {\n h: 'h-auto',\n color: {}\n });\n }\n\n public ngAfterViewInit() {\n this.element.nativeElement.classList.add('tail-animate-fade-up');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtHeaderNavComponent } from './ngt-header-nav.component';\n\n@NgModule({\n declarations: [NgtHeaderNavComponent],\n exports: [NgtHeaderNavComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtHeaderNavModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-content',\n templateUrl: './ngt-content.component.html',\n styleUrls: ['./ngt-content.component.css']\n})\nexport class NgtContentComponent {\n @Input() public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective\n ) {\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Content', {\n color: {}\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtContentComponent } from './ngt-content.component';\n\n@NgModule({\n declarations: [NgtContentComponent],\n exports: [NgtContentComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtContentModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-section',\n templateUrl: './ngt-section.component.html',\n styleUrls: ['./ngt-section.component.css'],\n animations: [\n trigger('enterAnimation', [\n state('void', style({ transform: 'translateY(-20px)', opacity: 0 })),\n transition(':enter', [\n animate(400)\n ])\n ]),\n ]\n})\nexport class NgtSectionComponent {\n @Input() public icon: string;\n @Input() public caption: string;\n @Input() public subtitle: string;\n @Input() public accordion: boolean;\n @Input() public showSection: boolean = true;\n @Input() public removable: boolean;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpIconColor: string;\n\n @Output() public onRemove: EventEmitter<void> = new EventEmitter();\n @Output() public onToggleSection: EventEmitter<boolean> = new EventEmitter();\n\n public ngtSectionStyle: NgtStylizableService;\n public ngtCaptionStyle: NgtStylizableService;\n public ngtSubtitleStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\n ) {\n this.ngtCaptionStyle = new NgtStylizableService();\n this.ngtSubtitleStyle = new NgtStylizableService();\n\n if (this.ngtStylizableDirective) {\n this.ngtSectionStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtSectionStyle = new NgtStylizableService();\n }\n\n this.ngtSectionStyle.load(this.injector, 'NgtSection', {\n h: 'h-12',\n w: 'w-12',\n my: 'my-1',\n pr: 'pr-1',\n px: 'md:px-5',\n color: {\n text: 'text-gray-800'\n }\n });\n\n this.ngtCaptionStyle.load(this.injector, 'NgtSectionCaption', {\n text: 'text-sm',\n font: 'font-normal',\n ml: 'ml-2',\n pb: 'pb-2',\n border: 'border-none',\n color: {\n text: 'text-gray-800',\n border: ''\n }\n });\n\n this.ngtSubtitleStyle.load(this.injector, 'NgtSectionSubtitle', {\n text: 'text-xs',\n font: 'font-normal',\n border: 'border-none',\n ml: 'ml-2',\n color: {\n text: 'text-gray-500',\n border: ''\n }\n });\n }\n\n public open(): void {\n this.showSection = true;\n\n this.onToggleSection.emit(this.showSection);\n }\n\n public close(): void {\n this.showSection = false;\n\n this.onToggleSection.emit(this.showSection);\n }\n\n public toggle(): void {\n this.showSection = !this.showSection;\n\n this.onToggleSection.emit(this.showSection);\n }\n\n public remove(event: Event): void {\n event.stopImmediatePropagation();\n\n this.onRemove.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtSectionComponent } from './ngt-section.component';\n\n@NgModule({\n declarations: [NgtSectionComponent],\n exports: [NgtSectionComponent],\n imports: [\n CommonModule,\n NgtStylizableModule,\n NgtSvgModule,\n NgtHelperModule\n ]\n})\nexport class NgtSectionModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\nimport { element } from 'protractor';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\n\n@Component({\n selector: 'ngt-multi-select',\n templateUrl: './ngt-multi-select.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./ngt-multi-select.component.css'],\n providers: [\n NgtMakeProvider(NgtMultiSelectComponent)\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtMultiSelectComponent extends NgtBaseNgModel implements OnInit, OnDestroy, OnChanges {\n @ViewChild('containerRef') public containerRef: ElementRef;\n @ViewChild('inputSearch') public inputSearch: NgtInputComponent;\n @ViewChild('elementCheckboxTemplate') public elementCheckboxTemplate: TemplateRef<any>;\n\n /** Visual */\n @Input() public customOptionTemplate: TemplateRef<any>;\n @Input() public customHeaderTemplate: TemplateRef<any>;\n @Input() public label: string;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining: boolean = false;\n @Input() public loading: boolean = false;\n\n /** Behavior */\n @Input() public bindLabel: string | Function = 'name';\n @Input() public bindSearch: string = 'name';\n @Input() public itemsPerPage: number = 15;\n @Input() public name: string;\n @Input() public remoteResource: any;\n @Input() public items: Array<any> = [];\n @Input() public searchable: boolean = true;\n\n /** Validation */\n @Input() public isRequired: boolean;\n @Input() public isDisabled: boolean;\n\n @Output() public onDataChange: EventEmitter<Array<NgtSelectContainerSelectableElementInterface>> = new EventEmitter();\n\n public searchTerm: string = '';\n public searchInputName: string = uuid();\n\n public selectAllCheckboxName: string = uuid();\n public displayOnlySelectedName: string = uuid();\n\n public selectedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n public itemsTotal: number;\n public selectAllCheckbox: boolean;\n public displayOnlySelected: boolean;\n\n public nativeName: string = uuid();\n public nativeValue: any;\n\n public ngtStyle: NgtStylizableService;\n public selectableElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n public selectableElementsOnSearch: Array<NgtSelectContainerSelectableElementInterface> = [];\n public componentReady: boolean;\n\n private pagination: NgtHttpPagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n\n private subscriptions: Array<Subscription> = [];\n private inSearch: boolean;\n private searchTimeout: any;\n private previousSearchTerm: string = '';\n private becameVisible: boolean;\n\n public constructor(\n private ngtHttpService: NgtHttpService,\n private injector: Injector,\n private changeDetector: ChangeDetectorRef,\n\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n\n @Optional() @Host()\n public formContainer: ControlContainer,\n\n @Optional() @SkipSelf()\n public ngtFormComponent: NgtFormComponent,\n\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtMultiSelect', { h: 'h-64' });\n }\n\n @HostListener('scroll', ['$event'])\n public onScroll(event: any): void {\n const isScrollEnd = event.target.scrollTop && event.target.offsetHeight + event.target.scrollTop >= (event.target.scrollHeight - 30);\n\n if (isScrollEnd && !this.loading && !this.displayOnlySelected && this.selectableElements?.length\n && this.pagination.per_page < this.pagination.total) {\n const currentPerPage = typeof this.pagination.per_page === 'string'\n ? Number.parseInt(this.pagination.per_page)\n : this.pagination.per_page;\n\n setTimeout(() => this.loadData(currentPerPage + this.itemsPerPage, this.searchTerm));\n }\n }\n\n public ngOnInit(): void {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n }\n }\n\n public ngDoCheck(): void {\n if (!this.becameVisible && !this.isHidden()) {\n this.becameVisible = true;\n\n this.loadData().then(() => this.initComponentValidation());\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.isRequired && this.componentReady) {\n this.updateValidations();\n }\n\n if (changes.isDisabled) {\n this.displayOnlySelected = changes.isDisabled.currentValue;\n }\n\n if (changes.items) {\n this.bindSelectableElements(changes.items.currentValue);\n this.componentReady = true;\n }\n\n if (changes.remoteResource && this.becameVisible) {\n this.loadData().then(() => this.initComponentValidation());\n }\n\n if (changes.itemsPerPage) {\n this.pagination.per_page = changes.itemsPerPage.currentValue;\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public setFocus(): void {\n setTimeout(() => this.inputSearch.setFocus());\n }\n\n public refresh(): void {\n this.loadData(this.itemsPerPage, this.searchTerm);\n }\n\n public reset(): void {\n this.value = [];\n this.nativeValue = [];\n this.selectedElements = [];\n this.refresh();\n }\n\n public selectAll(): void {\n if (!this.loading && !this.isDisabled) {\n this.selectAllCheckbox = !this.selectAllCheckbox;\n\n this.value = [];\n this.nativeValue = [];\n this.selectedElements = [];\n\n this.loadData(this.selectAllCheckbox ? this.pagination.total : this.itemsPerPage)\n .then(() => {\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\n this.selectableElements.forEach(element => element.isSelected = this.selectAllCheckbox);\n\n if (this.selectAllCheckbox) {\n this.selectedElements = this.selectableElements;\n }\n });\n }\n }\n\n public onNativeChange(selectableElement: NgtSelectContainerSelectableElementInterface): void {\n if (this.componentReady) {\n this.handleElementSelection(selectableElement);\n\n if (this.hasChangesBetweenBindings(this.value, this.selectedElements)) {\n this.value = this.selectedElements.map(e => e.value);\n }\n }\n }\n\n public change(selectedElements: Array<any>): void {\n if (this.hasChangesBetweenBindings(selectedElements, this.selectedElements)) {\n if (this.selectableElements?.length) {\n this.bindSelectedElements(selectedElements);\n\n this.selectableElements.filter(element => this.isSelectedElement(element))\n .forEach(element => element.isSelected = true);\n\n this.selectableElementsOnSearch.filter(element => this.isSelectedElement(element))\n .forEach(element => element.isSelected = true);\n } else {\n this.selectedElements = selectedElements?.map(\n element => ({ uuid: uuid(), isSelected: true, value: element })\n ) ?? [];\n\n this.changeDetector.detectChanges();\n }\n\n if (!selectedElements?.length) {\n this.markAsPristine();\n }\n }\n }\n\n public toggleItem(event: Event, selectableElement: NgtSelectContainerSelectableElementInterface): void {\n event.stopImmediatePropagation();\n\n if (!this.isDisabled) {\n selectableElement.isSelected = !selectableElement.isSelected;\n\n this.handleElementSelection(selectableElement);\n }\n }\n\n public search(term: string): void {\n if (!this.componentReady || term === undefined || term === null || term === this.previousSearchTerm) {\n return;\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.previousSearchTerm = term;\n\n if (!term) {\n this.inSearch = false;\n\n if (this.items?.length) {\n return;\n }\n }\n\n this.inSearch = true;\n\n if (this.items?.length) {\n this.selectableElementsOnSearch = this.selectableElements.filter(\n item => this.getSelectableElementValue(item).includes(term)\n );\n } else {\n this.loadData(this.itemsPerPage, term);\n }\n }, 500);\n }\n\n public getSelectableElements(): Array<any> {\n if (this.inSearch && this.items?.length) {\n return this.selectableElementsOnSearch;\n } else if (this.displayOnlySelected) {\n return this.selectedElements;\n }\n\n return this.selectableElements;\n }\n\n public getSelectableElementValue(selectableItem: any): string {\n if (typeof this.bindLabel === 'function') {\n return this.bindLabel(selectableItem.value);\n } else if (typeof selectableItem.value['getAttribute'] === 'function') {\n return selectableItem.value.getAttribute(this.bindLabel);\n }\n\n return selectableItem.value[this.bindLabel];\n }\n\n public hasValidationErrors(): boolean {\n return this.formControl?.errors && (\n this.formControl.dirty || (this.formContainer && this.formContainer['submitted'])\n );\n }\n\n private handleElementSelection(selectableElement: NgtSelectContainerSelectableElementInterface): void {\n if (selectableElement.isSelected && !this.isSelectedElement(selectableElement)) {\n this.selectedElements.push(selectableElement);\n } else if (!selectableElement.isSelected && this.isSelectedElement(selectableElement)) {\n this.selectedElements = this.selectedElements.filter(\n selectedElement => selectedElement.uuid !== selectableElement.uuid\n );;\n this.onNativeChange(selectableElement);\n\n if (this.displayOnlySelected && !this.selectedElements.length) {\n this.displayOnlySelected = false;\n }\n }\n }\n\n private async loadData(perpage: number = this.itemsPerPage, searchTerm?: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.remoteResource) {\n if (perpage == this.itemsPerPage) {\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\n }\n\n this.selectableElements = [];\n this.loading = true;\n\n const pagination: NgtHttpPagination = { ...this.pagination, ...{ per_page: perpage } };\n const filters = searchTerm ? { [this.bindSearch]: searchTerm } : null;\n\n this.subscriptions.push(\n this.ngtHttpService.get(\n this.remoteResource, filters, pagination\n ).subscribe(\n (response: NgtHttpResponse) => {\n this.bindSelectableElements(response.data);\n this.pagination = response.meta.pagination;\n\n this.itemsTotal = this.pagination.total;\n this.loading = false;\n\n this.onDataChange.emit(this.selectableElements);\n this.componentReady = true;\n this.changeDetector.detectChanges();\n\n setTimeout(() => this.displayOnlySelected = this.isDisabled);\n\n resolve();\n },\n (error) => {\n console.error(error);\n this.loading = false;\n this.changeDetector.detectChanges();\n\n reject();\n }\n )\n );\n } else {\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\n }\n });\n }\n\n private bindSelectableElements(data: Array<any>): void {\n const formattedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n\n data.forEach(item => {\n const alreadySelected = this.findSelectedElement(item);\n\n if (alreadySelected) {\n formattedElements.push(alreadySelected);\n } else {\n formattedElements.push({ uuid: uuid(), isSelected: false, value: item });\n }\n });\n\n this.selectableElements = formattedElements;\n }\n\n private bindSelectedElements(selectedElements: Array<any>): void {\n this.selectableElements.forEach(selectableElement => {\n const shouldBeSelected: boolean = !!selectedElements?.find(\n selectedElement => this.compareWith(selectedElement, selectableElement.value)\n );\n\n if (shouldBeSelected) {\n selectableElement.isSelected = true;\n this.handleElementSelection(selectableElement);\n }\n });\n }\n\n private initComponentValidation(): void {\n if (this.formContainer?.control && (this.formControl = this.formContainer.control.get(this.name))) {\n this.formControl = this.formContainer.control.get(this.name);\n this.markAsPristine();\n this.updateValidations();\n }\n }\n\n private updateValidations(): void {\n const syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(this.isRequiredValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private isRequiredValidator(): any {\n return (control: AbstractControl) => {\n if (Array.isArray(this.value) && this.value.length > 0) {\n return null;\n }\n\n return { 'required': true };\n };\n }\n\n private findSelectedElement(item: any): any {\n return this.selectedElements.find(selectedElement => this.compareWith(selectedElement.value, item));\n }\n\n private compareWith(a: any, b: any): boolean {\n if (typeof a['getApiId'] === 'function' && typeof b['getApiId'] === 'function') {\n return a.getApiId() == b.getApiId();\n } else if (a.id && b.id) {\n return a.id == b.id;\n }\n\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n private hasChangesBetweenBindings(value: Array<any>, nativeValue: Array<any>): boolean {\n if (value?.length && !value[0].uuid) {\n nativeValue = nativeValue.map(element => element.value);\n }\n\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\n }\n\n private isSelectedElement(selectableElement: NgtSelectContainerSelectableElementInterface): boolean {\n return !!this.selectedElements.find(selectedElement => selectedElement.uuid === selectableElement.uuid);\n }\n\n private isHidden(): boolean {\n return !this.containerRef?.nativeElement.offsetParent;\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport interface NgtSelectContainerSelectableElementInterface {\n uuid: string;\n isSelected: boolean;\n value: any;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtMultiSelectComponent } from './ngt-multi-select.component';\n\n@NgModule({\n declarations: [\n NgtMultiSelectComponent\n ],\n exports: [\n NgtMultiSelectComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtInputModule,\n NgtCheckboxModule,\n NgtStylizableModule\n ]\n})\nexport class NgtMultiSelectModule { }\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtAttachmentHttpService {\n abstract preview(attachment: any): Observable<NgtAttachmentHttpResponse>;\n\n abstract thumbnail(attachment: any): Observable<NgtAttachmentHttpResponse>;\n\n abstract download(attachment: any): Observable<any>;\n\n abstract upload(remoteResource: any, file: any): Observable<any>;\n}\n\nexport interface NgtAttachmentHttpResponse {\n data?: any;\n}\n","import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { EloverdeDocViewerComponent } from 'eloverde-doc-viewer';\n\nimport { NgtTranslateService } from '../../../services/http/ngt-translate.service';\n\n@Component({\n selector: 'ngt-dropzone-file-viewer',\n styleUrls: ['./ngt-dropzone-file-viewer.component.css'],\n templateUrl: './ngt-dropzone-file-viewer.component.html'\n})\nexport class NgtDropzoneFileViewerComponent {\n @ViewChild(EloverdeDocViewerComponent) public eloverdeDocViewer: EloverdeDocViewerComponent;\n\n @Input() public url: string;\n @Input() public fileName: string;\n @Input() public fileSize: number;\n @Input() public disableContent: string = 'none';\n @Input() public canDownloadFile: boolean = true;\n\n @Output() public onClose: EventEmitter<void> = new EventEmitter();\n\n public canShowViewer: boolean;\n public loading: boolean;\n public maxFileSize: number = 10000000; /** 10 MB */\n\n public constructor(\n public ngtTranslateService: NgtTranslateService\n ) { }\n\n @HostListener('window:keydown', ['$event'])\n public keyEvent(event: KeyboardEvent) {\n if (event.code == 'Escape') {\n this.canShowViewer = false;\n\n setTimeout(() => this.onClose.emit(), 500);\n }\n }\n\n public init(): void {\n if (this.fileSize < this.maxFileSize) {\n this.loading = true;\n this.canShowViewer = true;\n }\n }\n\n public close(): void {\n this.canShowViewer = false;\n this.onClose.emit();\n }\n\n public handleClose(): void {\n this.onClose.emit();\n }\n\n public downloadFile(): void {\n let file = document.createElement(\"a\");\n\n file.target = '_blank';\n file.href = this.url;\n file.setAttribute(\"download\", this.fileName);\n file.click();\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { NgxDropzoneChangeEvent, NgxDropzoneComponent } from 'ngx-dropzone';\nimport { forkJoin, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport Viewer from 'viewerjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtAttachmentHttpService } from '../../services/http/ngt-attachment-http.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\n\nexport interface NgtDropzoneFile {\n downloadUrl: string;\n previewUrl: string;\n thumbnailUrl: string;\n name: string;\n mimeType: string;\n fileSize: any;\n};\n\nexport enum NgtDropzoneFileTypeEnum {\n DOC = 'DOC',\n PDF = 'PDF',\n XLS = 'XLS',\n DWG = 'DWG',\n OTHER = 'OTHER'\n}\n\nexport enum NgtDropzonePreviewType {\n DEFAULT = 'DEFAULT',\n IMAGE = 'IMAGE',\n VIDEO = 'VIDEO'\n}\n\nexport enum NgtDropzoneErrorType {\n DEFAULT = 'DEFAULT',\n SIZE = 'SIZE',\n NO_MULTIPLE = 'NO_MULTIPLE',\n ITEMS_LIMIT = 'ITEMS_LIMIT',\n TYPE = 'TYPE'\n}\n\n@Component({\n selector: 'ngt-dropzone',\n templateUrl: './ngt-dropzone.component.html',\n styleUrls: ['./ngt-dropzone.component.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n NgtMakeProvider(NgtDropzoneComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtDropzoneComponent extends NgtBaseNgModel implements OnInit, OnDestroy, AfterContentChecked {\n @ViewChild('container') public container: ElementRef;\n @ViewChild(NgxDropzoneComponent, { static: true }) public ngxDropzone: NgxDropzoneComponent;\n @ViewChild(NgtDropzoneFileViewerComponent, { static: true }) public ngtDropzoneFileViewer: NgtDropzoneFileViewerComponent;\n\n // Visual\n @Input() public label: string;\n @Input() public placeholder: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n @Input() public helpTitle: string;\n\n // Behavior\n @Input() public resources: Array<NgtDropzoneFile> = [];\n @Input() public multipleSelection: boolean = false;\n @Input() public itemsLimit: number;\n @Input() public showFileName: boolean = false;\n @Input() public disableClick: boolean = false;\n @Input() public disabled: boolean = false;\n @Input() public viewMode: boolean = false;\n @Input() public removable: boolean = false;\n @Input() public canDownloadFile: boolean = true;\n @Input() public verticalExpandable: boolean = false;\n @Input() public acceptedFiles: string = '*' /** Mime type */;\n @Input() public maxFileSize: number; /** Bytes */\n @Input() public previewType: NgtDropzonePreviewType = NgtDropzonePreviewType.DEFAULT;\n @Input() public isRequired: boolean = false;\n @Input() public name: string;\n @Input() public remoteResource: any;\n\n @Output() public onFileSelected: EventEmitter<NgxDropzoneChangeEvent> = new EventEmitter();\n @Output() public onFileSelectError: EventEmitter<NgtDropzoneErrorType> = new EventEmitter();\n @Output() public onFileUploadFail: EventEmitter<any> = new EventEmitter();\n @Output() public onFileRemoved = new EventEmitter();\n @Output() public onFileUploadInit = new EventEmitter();\n @Output() public onFileUploaded = new EventEmitter();\n @Output() public onFilePreviewLoaded = new EventEmitter();\n\n public dropzoneHeight: string = '180px';\n public uploadedResources = [];\n public forceDisableClick: boolean = false;\n public nativeValue = [];\n public showNgtDropzoneFileViewer: boolean = false;\n public componentReady = false;\n public loading: boolean = false;\n public ngtDropzoneLoaderStyle: NgtStylizableService;\n public ngxElementId: string = uuid();\n public imageViewerOptions: any = {\n navbar: true,\n toolbar: {\n zoomIn: true,\n zoomOut: true,\n reset: true,\n rotateLeft: true,\n rotateRight: true,\n prev: true,\n next: true,\n }\n };\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtAttachmentHttpService: NgtAttachmentHttpService,\n private injector: Injector,\n private changeDetector: ChangeDetectorRef,\n ) {\n super();\n\n this.ngtDropzoneLoaderStyle = new NgtStylizableService();\n\n this.ngtDropzoneLoaderStyle.load(this.injector, 'NgtDropzoneLoader', {\n h: 'h-8',\n color: {\n text: 'text-gray-600'\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.previewType) {\n this.previewType = getEnumFromString(changes.previewType.currentValue, NgtDropzonePreviewType);\n }\n }\n\n public ngAfterContentChecked() {\n if (this.container && this.container.nativeElement) {\n this.dropzoneHeight = `${this.container.nativeElement.parentElement.offsetHeight}px`;\n\n this.changeDetector.detectChanges();\n }\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.componentReady = true;\n\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public imagePreview(index) {\n const images = this.uploadedResources.filter((resource) => this.isImage(resource));\n const imagesDiv = document.createElement(\"div\");\n\n images.forEach((image) => {\n let imageElement = document.createElement(\"img\");\n\n imageElement.src = image.file.url;\n\n imagesDiv.appendChild(imageElement);\n });\n\n this.onImageClick(imagesDiv, index);\n }\n\n public onImageClick(element, index?) {\n if (!this.viewMode) {\n this.forceDisableClick = true;\n }\n\n const ngtDropzoneComponent = this;\n\n if (index) {\n this.imageViewerOptions = { ...this.imageViewerOptions, ...{ initialViewIndex: index } };\n }\n\n const viewer = new Viewer(element, {\n ...this.imageViewerOptions, ...{\n hidden() {\n ngtDropzoneComponent.forceDisableClick = false;\n viewer.destroy();\n }\n }\n });\n\n viewer.show();\n }\n\n public onFileClick(url: string, name: string, size: number) {\n this.forceDisableClick = true;\n this.showNgtDropzoneFileViewer = true;\n this.ngtDropzoneFileViewer.url = url;\n this.ngtDropzoneFileViewer.fileName = name;\n this.ngtDropzoneFileViewer.fileSize = size;\n this.ngtDropzoneFileViewer.init();\n\n this.subscriptions.push(this.ngtDropzoneFileViewer.onClose.subscribe(() => {\n this.showNgtDropzoneFileViewer = false;\n this.forceDisableClick = false;\n }));\n }\n\n public async onSelect(event: NgxDropzoneChangeEvent) {\n if (event.rejectedFiles.length) {\n for (const rejectedFile of <any>event.rejectedFiles) {\n if (rejectedFile.reason == 'size') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.SIZE);\n break;\n } else if (rejectedFile.reason == 'no_multiple') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.NO_MULTIPLE);\n break;\n } else if (rejectedFile.reason == 'type') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.TYPE);\n break;\n } else {\n this.onFileSelectError.emit(NgtDropzoneErrorType.DEFAULT);\n break;\n }\n }\n }\n\n if (this.itemsLimit) {\n if (this.itemsLimit == 1 && event.addedFiles\n && event.addedFiles.length == this.itemsLimit && this.uploadedResources.length == this.itemsLimit) {\n this.uploadedResources = [];\n }\n\n if (event.addedFiles\n && event.addedFiles.length + this.uploadedResources.length <= this.itemsLimit) {\n this.onFileSelected.emit(event);\n this.uploadFiles(event.addedFiles);\n } else {\n this.onFileSelectError.emit(NgtDropzoneErrorType.ITEMS_LIMIT);\n }\n } else {\n this.onFileSelected.emit(event);\n this.uploadFiles(event.addedFiles);\n }\n }\n\n public async uploadFiles(files: Array<File>) {\n if (files && files.length) {\n let temporaryFiles = [];\n let temporaryAttachments = [];\n let observables = [];\n\n this.loading = true;\n this.onFileUploadInit.emit();\n\n files.forEach(file => {\n observables.push(this.ngtAttachmentHttpService.upload(this.remoteResource, file).pipe(\n map((response: any) => {\n if (response && response.data) {\n if (response.data.attributes && response.data.attributes.data) {\n file['url'] = response.data.attributes.data.url;\n }\n\n temporaryFiles.push({\n id: response.data.id,\n size: file.size,\n file: file\n });\n response.data['loaded'] = true;\n temporaryAttachments.push(response.data);\n }\n })\n ));\n });\n\n this.subscriptions.push(\n forkJoin(observables).subscribe(\n (response) => {\n this.uploadedResources.push(...temporaryFiles);\n\n if (this.itemsLimit == 1) {\n this.onNativeChange([...temporaryAttachments]);\n } else {\n this.onNativeChange([...temporaryAttachments, ...this.nativeValue]);\n }\n\n this.onFileUploaded.emit();\n this.loading = false;\n },\n (error) => {\n this.onFileUploadFail.emit(error);\n this.loading = false;\n })\n );\n }\n }\n\n public async loadFilePreview(attachments: any) {\n if (attachments && attachments.length && attachments[0]) {\n let temporaryResource = [];\n let observables = [];\n\n attachments.forEach(attachment => {\n if (!(attachment instanceof File) && !attachment.loaded) {\n this.loading = true;\n attachment['loaded'] = true;\n observables.push(this.ngtAttachmentHttpService.thumbnail(attachment).pipe(\n map((response: any) => {\n temporaryResource.push({\n id: response.data.getApiId(),\n file: response.data.getAttribute('file')\n });\n })\n ));\n }\n });\n\n this.subscriptions.push(\n forkJoin(observables).subscribe(\n (response) => {\n this.uploadedResources.push(...temporaryResource);\n this.onNativeChange(attachments);\n this.onFilePreviewLoaded.emit();\n this.loading = false;\n },\n (error) => {\n this.loading = false;\n })\n );\n }\n }\n\n public onRemove(resource: any) {\n this.uploadedResources.splice(this.uploadedResources.indexOf(resource), 1);\n this.nativeValue = this.nativeValue.filter(element => element.id != resource.id);\n this.onNativeChange(this.nativeValue);\n this.onFileRemoved.emit(resource);\n }\n\n public isImage(resource: any) {\n return this.previewType == 'IMAGE'\n || (\n resource.file && resource.file.type\n && resource.file.type.includes('image')\n && !resource.file.type.includes('dwg')\n );\n }\n\n public isVideo(resource: any) {\n return this.previewType == 'VIDEO' || (resource.file && resource.file.type && resource.file.type.includes('video'));\n }\n\n public isAudio(resource: any) {\n return (resource.file && resource.file.type && resource.file.type.includes('audio'));\n }\n\n public isFile(resource: any) {\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\n }\n\n public getFormattedFileSize(resource: any) {\n if (resource) {\n let size = resource.size || resource.fileSize;\n\n if (!size) {\n if (resource.file && resource.file.size) {\n size = resource.file.size;\n } else {\n size = 0;\n }\n }\n\n if (parseFloat(size) > 1000000) {\n return (parseFloat(size) / 1000000).toFixed(2) + ' Mb';\n }\n\n return Math.round(parseFloat(size) / 1000) + ' Kb';\n }\n }\n\n public onNativeChange(value: any) {\n if (value === undefined) {\n this.value = [];\n this.nativeValue = [];\n } else {\n this.nativeValue = value;\n\n if (JSON.stringify(this.value) != JSON.stringify(this.nativeValue)) {\n this.value = this.nativeValue;\n }\n }\n }\n\n public change(value: any) {\n if (value && !this.viewMode) {\n this.onNativeChange(Array.isArray(value) ? value : [value]);\n\n if (this.componentReady) {\n this.loadFilePreview(Array.isArray(value) ? value : [value]);\n }\n }\n }\n\n public downloadFile(attachment: any) {\n this.ngtAttachmentHttpService.download(attachment).subscribe(() => { });\n }\n\n public reset() {\n this.uploadedResources = [];\n this.value = [];\n this.nativeValue = [];\n this.initComponent();\n }\n\n public openFileSelector() {\n document.getElementById(this.ngxElementId).click();\n }\n\n private initComponent() {\n if (this.viewMode) {\n this.previewType = NgtDropzonePreviewType.DEFAULT;\n\n return;\n }\n\n if (this.formContainer && this.formContainer.control\n && (this.formControl = this.formContainer.control.get(this.name))) {\n this.resetFilesLoad();\n this.loadFilePreview(Array.isArray(this.value) ? this.value : [this.value]);\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n }\n\n private resetFilesLoad() {\n if (Array.isArray(this.value)) {\n this.value.forEach(element => {\n if (element) {\n element['loaded'] = false;\n }\n });\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n syncValidators.push();\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxDropzonePreviewComponent } from 'ngx-dropzone';\n\nimport { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\n\n@Component({\n selector: 'custom-dropzone-preview',\n templateUrl: './custom-dropzone-preview.component.html',\n providers: [\n {\n provide: NgxDropzonePreviewComponent,\n useExisting: CustomDropzonePreviewComponent\n }\n ]\n})\nexport class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent implements OnInit {\n public fileType: NgtDropzoneFileTypeEnum;\n\n public constructor(public sanitizer: DomSanitizer) {\n super(sanitizer);\n }\n\n public ngOnInit(): void {\n if (!this.file) {\n console.error('No file to read. Please provide a file using the [file] Input property.');\n\n return;\n }\n\n this.bindFileType();\n }\n\n private bindFileType(): void {\n if (this.file.type.includes('.sheet')) {\n this.fileType = NgtDropzoneFileTypeEnum.XLS;\n } else if (this.file.type.includes('pdf')) {\n this.fileType = NgtDropzoneFileTypeEnum.PDF;\n } else if (this.file.type.includes('.document')) {\n this.fileType = NgtDropzoneFileTypeEnum.DOC;\n } else if (this.file.type.includes('.dwg')) {\n this.fileType = NgtDropzoneFileTypeEnum.DWG;\n } else {\n this.fileType = NgtDropzoneFileTypeEnum.OTHER;\n }\n }\n}\n","import { AfterViewInit, Component, Input, SimpleChanges, SkipSelf, ViewEncapsulation } from '@angular/core';\n\nimport { NgtDropzoneComponent, NgtDropzoneFile, NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\n\n@Component({\n selector: 'ngt-dropzone-view',\n templateUrl: './ngt-dropzone-view.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtDropzoneViewComponent implements AfterViewInit {\n @Input() public resources: Array<any>;\n\n public images: Array<NgtDropzoneFile>;\n public audios: Array<NgtDropzoneFile>;\n public videos: Array<NgtDropzoneFile>;\n public files: Array<NgtDropzoneFile>;\n\n public ngtDropzoneViewFileTypeEnum = NgtDropzoneFileTypeEnum;\n\n public constructor(\n @SkipSelf()\n public ngtDropzoneComponent: NgtDropzoneComponent\n ) { }\n\n public ngAfterViewInit() { }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.resources) {\n this.loadFiles();\n }\n }\n\n public loadFiles() {\n this.images = this.resources.filter((resource) => this.isImage(resource));\n this.audios = this.resources.filter((resource) => this.isAudio(resource));\n this.videos = this.resources.filter((resource) => this.isVideo(resource));\n this.files = this.resources.filter((resource) => this.isFile(resource));\n }\n\n public onImageClick(index) {\n const imagesDiv = document.createElement(\"div\");\n\n this.images.forEach((image: NgtDropzoneFile) => {\n let imageElement = document.createElement(\"img\");\n\n imageElement.src = image.previewUrl;\n\n imagesDiv.appendChild(imageElement);\n });\n\n this.ngtDropzoneComponent.onImageClick(imagesDiv, index);\n }\n\n public getFileType(resource: NgtDropzoneFile): NgtDropzoneFileTypeEnum {\n if (resource.mimeType.includes('.sheet')) {\n return NgtDropzoneFileTypeEnum.XLS;\n }\n\n if (resource.mimeType.includes('pdf')) {\n return NgtDropzoneFileTypeEnum.PDF;\n }\n\n if (resource.mimeType.includes('.document')) {\n return NgtDropzoneFileTypeEnum.DOC;\n }\n\n return NgtDropzoneFileTypeEnum.OTHER;\n }\n\n private isImage(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('image');\n }\n\n private isAudio(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('audio');\n }\n\n private isVideo(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('video');\n }\n\n private isFile(resource: NgtDropzoneFile) {\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EloverdeDocViewerModule } from 'eloverde-doc-viewer';\nimport { NgxDropzoneModule } from 'ngx-dropzone';\nimport { NgxViewerModule } from 'ngx-viewer';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { CustomDropzonePreviewComponent } from './custom-dropzone-preview/custom-dropzone-preview.component';\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nimport { NgtDropzoneViewComponent } from './ngt-dropzone-view/ngt-dropzone-view.component';\nimport { NgtDropzoneComponent } from './ngt-dropzone.component';\n\n@NgModule({\n exports: [NgtDropzoneComponent],\n declarations: [\n NgtDropzoneComponent,\n NgtDropzoneFileViewerComponent,\n NgtDropzoneViewComponent,\n CustomDropzonePreviewComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtValidationModule,\n NgxDropzoneModule,\n NgxViewerModule,\n NgtSvgModule,\n EloverdeDocViewerModule,\n NgtHelperModule\n ]\n})\nexport class NgtDropzoneModule { }\n","import { Component, ElementRef, EventEmitter, Injector, Input, Optional, Output, Self, ViewChild } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-popover',\n templateUrl: './ngt-popover.component.html'\n})\n\nexport class NgtPopoverComponent {\n @ViewChild('dropdownRef', { static: true }) public dropdownRef: ElementRef;\n @ViewChild('hostDiv') public hostDiv: ElementRef;\n\n @Input() public closeTimeout: number;\n @Input() public openMethod: string = NgtPopoverOpenMethod.HOVER;\n\n @Input() public closeOnClick: boolean;\n @Input() public placeOnBottom: boolean;\n @Input() public placeOnLeft: boolean;\n\n @Output() public onClick: EventEmitter<any> = new EventEmitter();\n\n public ngtStyle: NgtStylizableService;\n\n public stylesToCompile: Array<string> = ['h', 'w', 'px', 'py', 'm', 'mx', 'my', 'shadow', 'text', 'border', 'color.border', 'color.bg', 'color.text'];\n\n private clickTimeout;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n @Optional()\n public ngtTranslateService: NgtTranslateService,\n private injector: Injector,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPopover', {\n text: 'text-sm',\n fontCase: '',\n py: 'py-3',\n px: 'px-2',\n border: 'border',\n color: {\n border: 'border-gray-400',\n text: 'text-black',\n bg: 'bg-white'\n },\n });\n }\n\n public fireClickEvent(): void {\n if (this.clickTimeout) {\n clearTimeout(this.clickTimeout);\n }\n\n this.clickTimeout = setTimeout(() => {\n this.onClick.emit();\n\n const event = new MouseEvent('click', {bubbles: true});\n\n event.preventDefault();\n event.stopPropagation();\n\n this.hostDiv.nativeElement.dispatchEvent(event);\n }, 500);\n }\n}\n\nexport enum NgtPopoverOpenMethod {\n CLICK = 'CLICK',\n POPOVER_CLICK = 'POPOVER_CLICK',\n RIGHT_CLICK = 'RIGHT_CLICK',\n HOVER = 'HOVER'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtDropdownModule } from '../ngt-dropdown/ngt-dropdown.module';\nimport { NgtPopoverComponent } from './ngt-popover.component';\n\n@NgModule({\n declarations: [ NgtPopoverComponent ],\n exports: [ NgtPopoverComponent ],\n imports: [\n CommonModule,\n NgtDropdownModule\n ]\n})\nexport class NgtPopoverModule { }\n","/*\n * Public API Surface of ng-tailwind\n */\n\n//Translate\nexport * from './services/http/ngt-translate.service';\n\n//NgtHttpService\nexport * from './services/http/ngt-http.service';\n\n//NgtHttpValidationService\nexport * from './services/http/ngt-http-validation.service';\n\n//NgtHttpResourceService\nexport * from './services/http/ngt-http-resource.service';\n\n//NgtDatatable\nexport * from './components/ngt-datatable/ngt-datatable.module';\nexport * from './components/ngt-datatable/ngt-datatable.component';\nexport * from './components/ngt-datatable/ngt-tbody/ngt-tbody.component';\nexport * from './components/ngt-datatable/ngt-td/ngt-td.component';\nexport * from './components/ngt-datatable/ngt-td-check/ngt-td-check.component';\nexport * from './components/ngt-datatable/ngt-th/ngt-th.component';\nexport * from './components/ngt-datatable/ngt-th-check/ngt-th-check.component';\nexport * from './components/ngt-datatable/ngt-thead/ngt-thead.component';\nexport * from './components/ngt-datatable/ngt-tr/ngt-tr.component';\n\n//NgtPagination\nexport * from './components/ngt-pagination/ngt-pagination.module';\nexport * from './components/ngt-pagination/ngt-pagination.component';\n\n//NgtDropdown\nexport * from './components/ngt-dropdown/ngt-dropdown.module';\nexport * from './components/ngt-dropdown/ngt-dropdown.component';\nexport * from './components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component';\n\n//NgtFloatingButton\nexport * from './components/ngt-floating-button/ngt-floating-button.module';\nexport * from './components/ngt-floating-button/ngt-floating-button.component';\n\n//NgtTag\nexport * from './components/ngt-tag/ngt-tag.module';\nexport * from './components/ngt-tag/ngt-tag.component';\n\n//NgtAction\nexport * from './components/ngt-action/ngt-action.module';\nexport * from './components/ngt-action/ngt-action.component';\n\n//NgtCheckbox\nexport * from './components/ngt-checkbox/ngt-checkbox.module';\nexport * from './components/ngt-checkbox/ngt-checkbox.component';\n\n//NgtSlider\nexport * from './components/ngt-slider/ngt-slider.module';\nexport * from './components/ngt-slider/ngt-slider.component';\n\n//NgtRadioButton\nexport * from './components/ngt-radio-button/ngt-radio-button.module';\nexport * from './components/ngt-radio-button/ngt-radio-button.component';\nexport * from './components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component';\n\n//NgtTextarea\nexport * from './components/ngt-textarea/ngt-textarea.module';\nexport * from './components/ngt-textarea/ngt-textarea.component';\n\n//NgtModal\nexport * from './components/ngt-modal/ngt-modal.module';\nexport * from './components/ngt-modal/ngt-modal.component';\nexport * from './components/ngt-modal/ngt-modal-header/ngt-modal-header.component';\nexport * from './components/ngt-modal/ngt-modal-body/ngt-modal-body.component';\nexport * from './components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component';\n\n//NgtDate\nexport * from './components/ngt-date/ngt-date.module';\nexport * from './components/ngt-date/ngt-date.component';\n\n//NgtButton\nexport * from './components/ngt-button/ngt-button.module';\nexport * from './components/ngt-button/ngt-button.component';\n\n//NgtPortlet\nexport * from './components/ngt-portlet/ngt-portlet.module';\nexport * from './components/ngt-portlet/ngt-portlet.component';\nexport * from './components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component';\nexport * from './components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component';\nexport * from './components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component';\nexport * from './enums/size.enum';\n\n//NgtSidenav\nexport * from './components/ngt-sidenav/ngt-sidenav.module';\nexport * from './components/ngt-sidenav/ngt-sidenav.component';\n\n//NgtHeader\nexport * from './components/ngt-header-nav/ngt-header-nav.module';\nexport * from './components/ngt-header-nav/ngt-header-nav.component';\n\n//NgtContent\nexport * from './components/ngt-content/ngt-content.module';\nexport * from './components/ngt-content/ngt-content.component';\n\n// NgtSection\nexport * from './components/ngt-section/ngt-section.module';\nexport * from './components/ngt-section/ngt-section.component';\n\n//NgtInput\nexport * from './components/ngt-input/ngt-input.module';\nexport * from './components/ngt-input/ngt-input.component';\n\n//NgtStylizable\nexport * from './directives/ngt-stylizable/ngt-stylizable.module';\nexport * from './directives/ngt-stylizable/ngt-stylizable.directive';\n\n//NgtSelect\nexport * from './components/ngt-select/ngt-select.module';\nexport * from './components/ngt-select/ngt-select.component';\nexport * from './components/ngt-select/ngt-select.directive';\n\n//NgtSelectContainer\nexport * from './components/ngt-multi-select/ngt-multi-select.module';\nexport * from './components/ngt-multi-select/ngt-multi-select.component';\n\n//NgtSvg\nexport * from './components/ngt-svg/ngt-svg.module';\nexport * from './components/ngt-svg/ngt-svg.component';\n\n//NgtShining\nexport * from './components/ngt-shining/ngt-shining.module';\nexport * from './components/ngt-shining/ngt-shining.component';\n\n//NgtForm\nexport * from './components/ngt-form/ngt-form.module';\nexport * from './components/ngt-form/ngt-form.component';\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module';\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component';\n\n//NgtHttpFormService\nexport * from './services/http/ngt-http-form.service';\n\n//NgtDropzone\nexport * from './components/ngt-dropzone/ngt-dropzone.module';\nexport * from './components/ngt-dropzone/ngt-dropzone.component';\nexport * from './services/http/ngt-attachment-http.service';\n\n//NgtAnimations\nexport * from './animations/ngt-angular-animations';\n\n// NgtHelper\nexport * from './components/ngt-helper/ngt-helper.module';\nexport * from './components/ngt-helper/ngt-helper.component';\n\n// NgtPopover\nexport * from './components/ngt-popover/ngt-popover.module';\nexport * from './components/ngt-popover/ngt-popover.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NgtBaseNgModel as ɵa,NgtMakeProvider as ɵb} from './base/ngt-base-ng-model';\nexport {CustomDropzonePreviewComponent as ɵg} from './components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component';\nexport {NgtDropzoneFileViewerComponent as ɵe} from './components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nexport {NgtDropzoneViewComponent as ɵf} from './components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component';\nexport {NgtValidationComponent as ɵd} from './components/ngt-validation/ngt-validation.component';\nexport {NgtValidationModule as ɵc} from './components/ngt-validation/ngt-validation.module';"],"names":["Inputmask"],"mappings":"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"}
|