@sebgroup/green-angular 1.0.0-beta.4 → 1.0.0-beta.41

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.
Files changed (31) hide show
  1. package/esm2020/index.mjs +7 -1
  2. package/esm2020/lib/badge/badge.component.mjs +80 -0
  3. package/esm2020/lib/badge/badge.module.mjs +18 -0
  4. package/esm2020/lib/datepicker/datepicker.component.mjs +186 -0
  5. package/esm2020/lib/datepicker/datepicker.module.mjs +19 -0
  6. package/esm2020/lib/dropdown/dropdown-option.directive.mjs +16 -0
  7. package/esm2020/lib/dropdown/dropdown.component.mjs +117 -133
  8. package/esm2020/lib/dropdown/dropdown.module.mjs +8 -7
  9. package/esm2020/lib/green-angular.module.mjs +7 -6
  10. package/esm2020/lib/modal/index.mjs +3 -0
  11. package/esm2020/lib/modal/modal.component.mjs +152 -0
  12. package/esm2020/lib/modal/modal.module.mjs +30 -0
  13. package/esm2020/lib/segmented-control/segmented-control.component.mjs +3 -3
  14. package/esm2020/lib/segmented-control/segmented-control.module.mjs +4 -4
  15. package/fesm2015/sebgroup-green-angular.mjs +619 -152
  16. package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
  17. package/fesm2020/sebgroup-green-angular.mjs +608 -151
  18. package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
  19. package/index.d.ts +6 -0
  20. package/lib/badge/badge.component.d.ts +25 -0
  21. package/lib/badge/badge.module.d.ts +8 -0
  22. package/lib/datepicker/datepicker.component.d.ts +49 -0
  23. package/lib/datepicker/datepicker.module.d.ts +9 -0
  24. package/lib/dropdown/dropdown-option.directive.d.ts +8 -0
  25. package/lib/dropdown/dropdown.component.d.ts +42 -18
  26. package/lib/dropdown/dropdown.module.d.ts +3 -2
  27. package/lib/green-angular.module.d.ts +2 -1
  28. package/lib/modal/index.d.ts +2 -0
  29. package/lib/modal/modal.component.d.ts +50 -0
  30. package/lib/modal/modal.module.d.ts +8 -0
  31. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular.mjs","sources":["../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/green-angular.module.ts","../../../../libs/angular/src/sebgroup-green-angular.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n createDropdown,\n AbstractDropdown,\n DropdownHandler,\n DropdownOption,\n ExtendedDropdownOption,\n ElementProps,\n DropdownArgs,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-dropdown',\n template: `\n <div>\n <button\n #togglerRef\n [id]=\"toggler?.attributes?.id\"\n [attr.aria-haspopup]=\"toggler?.attributes?.['aria-haspopup']\"\n [attr.aria-expanded]=\"toggler?.attributes?.['aria-expanded']\"\n [attr.aria-owns]=\"toggler?.attributes?.['aria-owns']\"\n [tabindex]=\"toggler?.attributes?.tabIndex\"\n [style]=\"toggler?.attributes?.style\"\n [class]=\"toggler?.classes\"\n (click)=\"handler?.toggle()\"\n >\n {{ dropdown?.text }}\n </button>\n <div\n #listboxRef\n [id]=\"listbox?.attributes?.id\"\n [attr.role]=\"listbox?.attributes?.role\"\n [attr.aria-activedescendant]=\"\n listbox?.attributes?.['aria-activedescendant']\n \"\n [tabindex]=\"listbox?.attributes?.tabIndex\"\n [style]=\"listbox?.attributes?.style\"\n [class]=\"listbox?.classes\"\n >\n <button\n class=\"close m-4 m-sm-2 d-block d-sm-none\"\n (click)=\"handler?.close()\"\n >\n <span class=\"sr-only\">Close</span>\n </button>\n <ul role=\"listbox\">\n <li\n *ngFor=\"let option of dropdown?.options; trackBy: trackByKey\"\n [id]=\"option.attributes.id\"\n [attr.role]=\"option.attributes.role\"\n [attr.aria-selected]=\"option.attributes['aria-selected']\"\n [style]=\"option.attributes.style\"\n [class]=\"option.classes\"\n (click)=\"select(option)\"\n >\n {{ option.key }}\n </li>\n </ul>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges\n{\n @Input() id?: string\n @Input() text?: string\n @Input() loop?: boolean\n @Input() options: DropdownOption[] = []\n\n @ViewChild('togglerRef') public togglerRef:\n | ElementRef<HTMLElement>\n | undefined\n\n @ViewChild('listboxRef') public listboxRef:\n | ElementRef<HTMLElement>\n | undefined\n\n value: any = undefined\n onChangeFn?: any\n onTouchedFn?: any\n\n dropdown?: AbstractDropdown\n handler?: DropdownHandler\n toggler?: Partial<ElementProps>\n listbox?: Partial<ElementProps>\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.togglerRef?.nativeElement && this.listboxRef?.nativeElement) {\n this.handler = createDropdown(\n this.props,\n this.togglerRef.nativeElement,\n this.listboxRef.nativeElement,\n (dropdown) => {\n this.dropdown = dropdown\n this.toggler = dropdown.elements.toggler\n this.listbox = dropdown.elements.listbox\n this.cd.detectChanges()\n }\n )\n\n this.selectFromValue(this.value)\n }\n }\n\n ngOnDestroy(): void {\n this.handler?.destroy()\n }\n\n ngOnChanges(): void {\n if (this.handler && this.dropdown) {\n this.handler.update(this.props)\n }\n }\n\n writeValue(obj: any): void {\n this.value = obj\n this.selectFromValue(this.value)\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n select(option: ExtendedDropdownOption) {\n this.handler?.select(option)\n this.onChangeFn && this.onChangeFn(option.value)\n this.onTouchedFn && this.onTouchedFn()\n }\n\n trackByKey = (index: number, option: ExtendedDropdownOption): string => {\n return option.key\n }\n\n private get props(): DropdownArgs {\n return {\n id: this.id,\n text: this.text,\n options: this.options,\n loop: this.loop,\n }\n }\n\n private selectFromValue(value: any) {\n if (this.handler && value !== undefined) {\n const option = this.handler.dropdown.options.find(\n (option) => option.value === value\n )\n if (option) this.handler?.select(option)\n }\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\n\n@NgModule({\n declarations: [NggDropdownComponent],\n imports: [CommonModule],\n exports: [NggDropdownComponent],\n})\nexport class NggDropdownModule {}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlModule } from './segmented-control/segmented-control.module'\nimport { NggDropdownModule } from './dropdown/dropdown.module'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [NggSegmentedControlModule, NggDropdownModule],\n})\nexport class NggModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular.mjs","sources":["../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/dropdown/dropdown-option.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.html","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.html","../../../../libs/angular/src/lib/datepicker/datepicker.module.ts","../../../../libs/angular/src/lib/green-angular.module.ts","../../../../libs/angular/src/lib/modal/modal.component.ts","../../../../libs/angular/src/lib/modal/modal.component.html","../../../../libs/angular/src/lib/modal/modal.module.ts","../../../../libs/angular/src/lib/badge/badge.component.ts","../../../../libs/angular/src/lib/badge/badge.module.ts","../../../../libs/angular/src/sebgroup-green-angular.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownOption]',\n})\nexport class NggDropdownOptionDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core'\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms'\nimport {\n AbstractDropdown,\n CompareWith,\n createDropdown,\n DropdownArgs,\n DropdownHandler,\n DropdownOption,\n DropdownOptionElement,\n DropdownTexts,\n dropdownValues,\n ElementProps,\n SearchFilter,\n} from '@sebgroup/extract'\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\n\n@Component({\n selector: 'ngg-dropdown',\n templateUrl: 'dropdown.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges\n{\n @Input() id?: string\n @Input() texts?: DropdownTexts\n @Input() loop?: boolean = false\n @Input() display?: string\n @Input() useValue?: string\n @Input() label?: string\n @Input() options: DropdownOption[] = []\n @Input() valid?: boolean\n @Input() invalid?: boolean\n @Input() compareWith?: CompareWith\n @Input() searchFilter?: SearchFilter\n\n @Input() set multiSelect(value: string | boolean) {\n this._multiSelect = this.convertToBoolean(value)\n }\n get multiSelect(): boolean {\n return this._multiSelect\n }\n private _multiSelect = false\n\n @Input() set searchable(value: string | boolean) {\n this._searchable = this.convertToBoolean(value)\n }\n get searchable(): boolean {\n return this._searchable\n }\n private _searchable = false\n\n @Input() set value(newValue: any) {\n this.handler?.selectByValue(newValue)\n this._value = newValue\n }\n get value(): any {\n return this._value\n }\n private _value: any\n\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @Output() readonly touched: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n\n @ViewChild('togglerRef') public togglerRef?: ElementRef<HTMLElement>\n @ViewChild('listboxRef') public listboxRef?: ElementRef<HTMLElement>\n @ViewChild('fieldsetRef') public fieldsetRef?: ElementRef<HTMLElement>\n\n @ContentChild(NggDropdownOptionDirective)\n customOption?: NggDropdownOptionDirective\n\n onChangeFn?: (value: unknown) => void\n onTouchedFn?: () => void\n\n dropdown?: AbstractDropdown\n handler?: DropdownHandler\n toggler?: Partial<ElementProps> = dropdownValues.elements?.toggler\n listbox?: Partial<ElementProps> = dropdownValues.elements?.listbox\n fieldset?: Partial<ElementProps> = dropdownValues.elements?.fieldset\n\n get control(): NgControl | undefined {\n return this.injector.get(NgControl)\n }\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(Injector) private injector: Injector\n ) {}\n\n ngAfterViewInit(): void {\n if (this.togglerRef?.nativeElement && this.listboxRef?.nativeElement) {\n this.handler = createDropdown(\n this.props,\n this.togglerRef.nativeElement,\n this.listboxRef.nativeElement,\n this.fieldsetRef?.nativeElement,\n (dropdown) => {\n this.dropdown = dropdown\n this.toggler = dropdown.elements.toggler\n this.listbox = dropdown.elements.listbox\n this.fieldset = dropdown.elements.fieldset\n this.cd.detectChanges()\n },\n (value) => {\n this.updateValue(value)\n }\n )\n }\n }\n\n ngOnDestroy(): void {\n this.handler?.destroy()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n this.handler &&\n (changes.id || changes.text || changes.loop || changes.options)\n ) {\n this.handler.update(this.props)\n }\n }\n\n writeValue(value: any): void {\n this.value = value\n if (\n value === null &&\n this.dropdown?.isTouched &&\n this.control?.control?.untouched\n ) {\n this.handler?.resetTouchedState()\n this.cd.detectChanges()\n }\n }\n\n registerOnChange(fn: () => unknown): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn\n }\n\n trackByKey = (index: number, option: DropdownOptionElement): string => {\n return option.attributes.id ?? ''\n }\n\n search($event: Event): void {\n this.handler?.search(($event.target as HTMLInputElement).value)\n }\n\n private get props(): DropdownArgs {\n return {\n id: this.id || this.dropdown?.id,\n texts: this.texts,\n useValue: this.useValue,\n display: this.display,\n options: this.options,\n loop: this.loop,\n value: this.value,\n multiSelect: this.multiSelect,\n searchable: this.searchable,\n searchFilter: this.searchFilter,\n compareWith: this.compareWith,\n onTouched: () => {\n this.onTouchedFn?.()\n this.touched.emit(true)\n this.cd.markForCheck()\n },\n }\n }\n\n private updateValue(option: any): void {\n this._value = option\n this.valueChange.emit(option)\n this.onChangeFn?.(option)\n }\n\n private convertToBoolean(value: string | boolean): boolean {\n return (\n value === '' || value === 'true' || value.toString() === 'true' || false\n )\n }\n}\n","<div>\n <span class=\"label\" *ngIf=\"label\" [id]=\"toggler?.attributes?.id + '_label'\">{{\n label\n }}</span>\n <button\n [attr.aria-labelledby]=\"label ? toggler?.attributes?.id + '_label' : null\"\n [attr.aria-describedby]=\"\n formInfo?.textContent && (formInfo?.textContent?.length ?? 0 > 0)\n ? toggler?.attributes?.id + '_info'\n : null\n \"\n type=\"button\"\n #togglerRef\n [id]=\"toggler?.attributes?.id\"\n [attr.aria-haspopup]=\"toggler?.attributes?.['aria-haspopup']\"\n [attr.aria-expanded]=\"toggler?.attributes?.['aria-expanded']\"\n [attr.aria-owns]=\"toggler?.attributes?.['aria-owns']\"\n [tabindex]=\"toggler?.attributes?.tabIndex\"\n [style]=\"toggler?.attributes?.style\"\n [class]=\"toggler?.classes\"\n (click)=\"handler?.toggle()\"\n [class.is-valid]=\"valid\"\n [class.is-invalid]=\"invalid\"\n >\n <span>{{ dropdown?.texts?.select }}</span>\n </button>\n <span\n class=\"form-info\"\n #formInfo\n [attr.id]=\"toggler?.attributes?.id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n <div\n #listboxRef\n [id]=\"listbox?.attributes?.id\"\n [attr.role]=\"listbox?.attributes?.role\"\n [attr.aria-activedescendant]=\"\n listbox?.attributes?.['aria-activedescendant']\n \"\n [tabindex]=\"listbox?.attributes?.tabIndex\"\n [style]=\"listbox?.attributes?.style\"\n [class]=\"listbox?.classes\"\n >\n <button\n type=\"button\"\n class=\"close m-4 m-sm-2 d-block d-sm-none\"\n (click)=\"handler?.close()\"\n >\n <span class=\"sr-only\">{{ dropdown?.texts?.close }}</span>\n <i></i>\n </button>\n <ul role=\"listbox\" *ngIf=\"!dropdown?.isMultiSelect\">\n <ng-container *ngTemplateOutlet=\"searchInput\"></ng-container>\n <li\n *ngFor=\"\n let option of dropdown?.options;\n let index = index;\n trackBy: trackByKey\n \"\n [id]=\"option.attributes.id\"\n [attr.role]=\"option.attributes.role\"\n [attr.aria-selected]=\"option.attributes['aria-selected']\"\n [style]=\"option.attributes.style\"\n [class]=\"option.classes\"\n (click)=\"handler?.select(option)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container>\n </li>\n </ul>\n <div *ngIf=\"dropdown?.isMultiSelect\" class=\"sg-fieldset-container\">\n <ng-container *ngTemplateOutlet=\"searchInput\"></ng-container>\n <!--TODO: Improve checkboxes in dropdown angular-->\n <fieldset\n #fieldsetRef\n [attr.aria-describedby]=\"fieldset?.attributes?.id\"\n role=\"listbox\"\n tabIndex=\"-1\"\n aria-multiselectable=\"true\"\n >\n <legend class=\"sr-only\" [id]=\"fieldset?.attributes?.id\">Options</legend>\n <div>\n <label\n class=\"form-control\"\n [attr.role]=\"option.attributes.role\"\n [id]=\"option.attributes.id\"\n [attr.aria-selected]=\"option.attributes['aria-selected']\"\n [class]=\"option.classes\"\n *ngFor=\"\n let option of dropdown?.options;\n let index = index;\n trackBy: trackByKey\n \"\n >\n <input\n type=\"checkbox\"\n (change)=\"handler?.select(option, false)\"\n [checked]=\"option.selected\"\n tabIndex=\"-1\"\n />\n <ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container>\n <i></i>\n </label>\n </div>\n </fieldset>\n </div>\n </div>\n</div>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ option[dropdown!.display] }}\n</ng-template>\n\n<ng-template #searchInput>\n <input\n *ngIf=\"dropdown?.isSearchable\"\n [id]=\"toggler?.attributes?.id + '_search-input'\"\n type=\"search\"\n (input)=\"search($event)\"\n placeholder=\"{{ dropdown?.texts?.searchPlaceholder }}\"\n class=\"rounded-0 rounded-top border-0 border-bottom border-info\"\n />\n</ng-template>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\n\n@NgModule({\n declarations: [NggDropdownComponent, NggDropdownOptionDirective],\n imports: [CommonModule],\n exports: [NggDropdownComponent, NggDropdownOptionDirective],\n})\nexport class NggDropdownModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Output,\n ViewChild,\n EventEmitter,\n ChangeDetectorRef,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms'\nimport {\n AbstractDropdown,\n DropdownHandler,\n ElementProps,\n DatepickerData,\n Datepicker,\n createDatepicker,\n DatepickerState,\n DropdownOption,\n months,\n years,\n randomId,\n DatepickerOptions,\n} from '@sebgroup/extract'\nimport { endOfDay, startOfDay } from 'date-fns'\n\n@Component({\n selector: 'ngg-datepicker',\n templateUrl: 'datepicker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDatepickerComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDatepickerComponent\n implements ControlValueAccessor, AfterViewInit\n{\n get months(): Array<DropdownOption> {\n return this._months\n }\n\n set months(value: Array<DropdownOption>) {\n this._months = value\n }\n @Input()\n get options(): DatepickerOptions {\n return <DatepickerOptions>this._options\n }\n set options(value: DatepickerOptions) {\n this._options = value\n if (value.locale) {\n this.months = months({ locale: this.options?.locale })\n }\n }\n @Input()\n get value(): string | Date | undefined {\n return this._value\n }\n set value(newValue: string | Date | undefined) {\n if (newValue !== this._value) {\n this._value = newValue\n }\n }\n @Input() id?: string = randomId()\n @Input() label?: string\n @Input() isValid: boolean | null = null\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @ViewChild('datepickerDialogElRef')\n public datepickerDialogElRef?: ElementRef<HTMLElement>\n @ViewChild('dateInputElRef')\n public dateInputElRef?: ElementRef<HTMLInputElement>\n @ViewChild('datepickerElRef') public datepickerElRef?: ElementRef<HTMLElement>\n @ViewChild('datepickerTriggerElRef')\n public datepickerTriggerElRef?: ElementRef<HTMLButtonElement>\n\n onChangeFn?: (value: any) => void\n onTouchedFn?: any\n\n dropdown?: AbstractDropdown\n handler?: DropdownHandler\n toggler?: Partial<ElementProps>\n listbox?: Partial<ElementProps>\n _value: string | Date | undefined\n private _months: Array<DropdownOption> = months({})\n years?: Array<DropdownOption>\n private _options?: DatepickerOptions\n\n dp: Datepicker | undefined\n private _data: DatepickerData | undefined\n\n constructor(private _cdr: ChangeDetectorRef) {}\n\n writeValue(value: any): void {\n this.value = value\n\n // When binding using ngModel we need to set initial select date\n // once we get initial value as it's not available when component is created\n if (value && this.dp && !this.data?.selectedDate) {\n this.dp.select(value)\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n get data(): DatepickerData | undefined {\n return this._data\n }\n\n set data(value: DatepickerData | undefined) {\n this._data = value\n }\n\n onDateChange(value: string) {\n const newDate = new Date(value)\n // Only pass valid date to date picker\n if (!isNaN(newDate.getTime())) {\n this.dp?.select(value)\n } else {\n this.valueChange.emit(value)\n this.onChangeFn && this.onChangeFn(value)\n }\n }\n\n listener = (\n data: DatepickerData | undefined,\n state: DatepickerState | undefined\n ) => {\n if (this.dp && state) {\n this.dp.state = { ...state }\n this.years = years({\n from: this.dp.state?.minDate?.getFullYear(),\n to: this.dp.state?.maxDate?.getFullYear(),\n })\n }\n\n this.onTouchedFn && this.onTouchedFn()\n\n if (data) {\n // only emit change event if date has changed\n if (this.data?.selectedDate !== data.selectedDate) {\n this.valueChange.emit(data.selectedDate)\n this.onChangeFn && this.onChangeFn(data.selectedDate)\n }\n this.data = data\n }\n\n if (data || state) {\n this._cdr.markForCheck()\n }\n }\n trackWeek(index: any, week: any) {\n return week\n }\n\n ngAfterViewInit(): void {\n // initialize datepicker\n if (\n this.datepickerElRef &&\n this.datepickerDialogElRef &&\n this.dateInputElRef &&\n this.datepickerTriggerElRef &&\n !this.dp\n ) {\n this.dp = createDatepicker(\n this.listener,\n {\n ...this.options,\n selectedDate: this.value,\n },\n this.datepickerElRef.nativeElement,\n this.datepickerDialogElRef.nativeElement,\n this.dateInputElRef.nativeElement,\n this.datepickerTriggerElRef.nativeElement\n )\n this._cdr.detectChanges()\n } else {\n throw 'Missing one or more elements...'\n }\n }\n}\n\nexport function dateValidator(dates?: { min?: Date; max?: Date }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n if (!value) {\n return null\n }\n const newDate = new Date(value)\n const isValidDate = !isNaN(newDate.getTime())\n if (!isValidDate) {\n return { validDate: true }\n }\n\n const validMinDate = dates?.min ? newDate >= startOfDay(dates.min) : true\n const validMaxDate = dates?.max ? newDate <= endOfDay(dates.max) : true\n\n if (!validMinDate && dates?.min) {\n return {\n validDate: {\n minDate: startOfDay(dates.min),\n actualDate: newDate,\n },\n }\n }\n if (!validMaxDate && dates?.max) {\n return {\n validDate: {\n maxDate: endOfDay(dates.max),\n actualDate: newDate,\n },\n }\n }\n\n return null\n }\n}\n","<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\">{{ label }}</label>\n <div\n class=\"group\"\n #datepickerElRef\n [class.is-valid]=\"isValid\"\n [class.is-invalid]=\"isValid === false\"\n >\n <input\n [attr.id]=\"id\"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? id + '_info'\n : null\n \"\n type=\"text\"\n placeholder=\"yyyy-mm-dd\"\n #dateInputElRef\n [value]=\"data?.formattedSelectedDate || ''\"\n (change)=\"onDateChange(dateInputElRef.value)\"\n />\n <button\n #datepickerTriggerElRef\n (click)=\"dp?.toggle()\"\n type=\"button\"\n class=\"primary\"\n >\n <i class=\"sg-icon sg-icon-calendar\">Select date</i>\n </button>\n </div>\n <span class=\"form-info\" #formInfo [attr.id]=\"id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n</div>\n<!-- TODO: get or set attributes from within datepicker instance (dp) -->\n<div\n #datepickerDialogElRef\n class=\"popover popover-datepicker\"\n [class.active]=\"dp?.state?.isActive\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose Date\"\n>\n <button type=\"button\" class=\"close\" (click)=\"dp?.close()\"><i></i>Close</button>\n <div class=\"sg-date\">\n <header>\n <button type=\"button\" class=\"link\" (click)=\"dp?.sub(1, 'months')\">\n <i class=\"sg-icon sg-icon-previous\">Previous month</i>\n </button>\n <ngg-dropdown\n [options]=\"months\"\n display=\"key\"\n text=\"Select\"\n [value]=\"data?.month\"\n (valueChange)=\"dp?.setMonth($event)\"\n ></ngg-dropdown>\n <ngg-dropdown\n *ngIf=\"years\"\n [options]=\"years\"\n display=\"key\"\n text=\"Select\"\n [value]=\"data?.year\"\n (valueChange)=\"dp?.setYear($event)\"\n ></ngg-dropdown>\n <button type=\"button\" class=\"link\" (click)=\"dp?.add(1, 'months')\">\n <i class=\"sg-icon sg-icon-next\">Next month</i>\n </button>\n </header>\n <main>\n <table role=\"grid\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let header of data?.calendar?.headers\"\n [abbr]=\"header.abbr\"\n [class.sg-week-header]=\"header.type === 'week'\"\n [class.sg-day-header]=\"header.type === 'day'\"\n >\n {{ header.displayText }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let week of data?.calendar?.calendarGrid;\n trackBy: trackWeek;\n let i = index\n \"\n >\n <th\n *ngIf=\"data?.calendar?.weekNumbers as weekNumbers\"\n class=\"sg-week-number\"\n >\n {{ weekNumbers[i] }}\n </th>\n <td\n *ngFor=\"let day of week\"\n [attr.data-date]=\"day.formattedDate\"\n [attr.role]=\"day.selected ? 'gridcell' : null\"\n [attr.aria-selected]=\"\n day.selected && !data?.highlightedDate ? true : null\n \"\n [class.disabled]=\"day.disabled\"\n [class.sg-date-today]=\"day.today\"\n [title]=\"day.today ? 'Today' : ''\"\n [tabIndex]=\"\n day.highlighted ||\n (day.selected && !data?.highlightedDate) ||\n (day.today && !data?.highlightedDate && !data?.selectedDate)\n ? 0\n : -1\n \"\n (click)=\"day.currentMonth && dp?.select(day.date)\"\n >\n {{ day.day }}\n </td>\n </tr>\n </tbody>\n </table>\n </main>\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDatepickerComponent } from './datepicker.component'\nimport { NggDropdownModule } from '../dropdown/dropdown.module'\n\n@NgModule({\n declarations: [NggDatepickerComponent],\n imports: [CommonModule, NggDropdownModule],\n exports: [NggDatepickerComponent],\n})\nexport class NggDatepickerModule {}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlModule } from './segmented-control/segmented-control.module'\nimport { NggDropdownModule } from './dropdown/dropdown.module'\nimport { NggDatepickerModule } from './datepicker/datepicker.module'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [NggSegmentedControlModule, NggDropdownModule, NggDatepickerModule],\n})\nexport class NggModule {}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { ModalType, Size } from '@sebgroup/extract';\nimport {\n disableBodyScroll,\n enableBodyScroll,\n } from \"body-scroll-lock\";\n\n@Component({\n selector: 'ngg-modal',\n styleUrls: ['./modal.component.scss'],\n templateUrl: './modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NggModalComponent implements OnDestroy {\n @Input() public modalType?: ModalType\n @Input() public header?: string\n @Input() public confirmLabel?: string\n @Input() public dismissLabel?: string\n @Input() public size?: Size\n\n @Input() \n public get isOpen(): boolean | undefined {\n return this._isOpen;\n }\n public set isOpen(value: boolean | undefined) {\n this._isOpen = value;\n\n if (value) {\n disableBodyScroll(this.ref.nativeElement);\n } else {\n enableBodyScroll(this.ref.nativeElement);\n }\n }\n\n @Output() public isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() public closed: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n @Output() public confirm: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n @Output() public dismiss: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n \n @HostBinding('class.open') get open() { return this.isOpen; }\n @ViewChild('backdrop') private backdropRef?: ElementRef<HTMLInputElement>;\n private _isOpen?: boolean;\n \n constructor(private ref: ElementRef<HTMLElement>) {\n }\n \n public handleCloseClick(event: MouseEvent) {\n this.closeModal(event);\n }\n\n public handleBackdropClick(event: MouseEvent) {\n if (event.target == this.backdropRef?.nativeElement)\n this.closeModal(event);\n }\n \n public handleDismiss(event: MouseEvent) {\n this.dismiss.emit(event);\n }\n \n public handleConfirm(event: MouseEvent) {\n this.confirm.emit(event);\n }\n\n private closeModal(event: MouseEvent) {\n if (this.closed.observers.length > 0) {\n this.closed.emit(event);\n }\n else {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n }\n }\n \n ngOnDestroy(): void {\n enableBodyScroll(this.ref.nativeElement);\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-header]',\n styleUrls: ['./modal.component.scss'],\n template: `\n <h3 data-testid=\"modal-header-text\">{{header}}</h3>\n <button data-testid=\"modal-close-button\" class=\"close\" (click)=\"this.handleClose($event)\">\n <span className=\"sr-only\">Close</span>\n </button>\n `\n})\nexport class NggModalHeaderComponent {\n @Input() header?: string;\n @Output() closed: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n handleClose(event: MouseEvent) {\n this.closed.emit(event);\n }\n\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-body]',\n styleUrls: ['./modal.component.scss'],\n template: `<ng-content></ng-content>`\n})\nexport class NggModalBodyComponent {\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-footer]',\n styleUrls: ['./modal.component.scss'],\n template: `\n <button data-testid=\"modal-dismiss-button\" *ngIf=\"dismissLabel\" class=\"secondary\" (click)=\"this.handleDismiss($event)\">{{dismissLabel}}</button>\n <button data-testid=\"modal-confirm-button\" *ngIf=\"confirmLabel\" class=\"primary\" (click)=\"this.handleConfirm($event)\">{{confirmLabel}}</button>\n `\n})\nexport class NggModalFooterComponent {\n @Input() dismissLabel?: string;\n @Input() confirmLabel?: string;\n @Output() dismiss: EventEmitter<MouseEvent> = new EventEmitter();\n @Output() confirm: EventEmitter<MouseEvent> = new EventEmitter();\n\n handleDismiss(event: MouseEvent) {\n this.dismiss.emit(event);\n }\n\n handleConfirm(event: MouseEvent) {\n this.confirm.emit(event);\n }\n}","<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <header ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container> \n </div>\n <footer ngg-modal-footer data-testid=\"modal-footer\" *ngIf=\"dismissLabel || confirmLabel\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </aside>\n <main data-testid=\"modal\" *ngSwitchCase=\"'takeover'\" role=\"dialog\" aria-modal=\"true\">\n <header ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container> \n </div>\n <footer ngg-modal-footer data-testid=\"modal-footer\" *ngIf=\"dismissLabel || confirmLabel\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </main>\n <section data-testid=\"modal\" *ngSwitchDefault role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <header ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container> \n </div>\n <footer ngg-modal-footer data-testid=\"modal-footer\" *ngIf=\"dismissLabel || confirmLabel\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </section>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div #backdrop data-testid=\"modal-backdrop\" class=\"backdrop\" (click)=\"this.handleBackdropClick($event)\" [attr.aria-hidden]=\"true\"></div>\n</ng-container>","\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NggModalBodyComponent, NggModalComponent, NggModalFooterComponent, NggModalHeaderComponent } from './modal.component';\n\nconst DECLARATIONS = [\n NggModalComponent,\n NggModalHeaderComponent,\n NggModalBodyComponent,\n NggModalFooterComponent\n];\n\nconst EXPORTS = [\n NggModalComponent,\n];\n\n@NgModule({\n imports: [ CommonModule ],\n exports: EXPORTS,\n declarations: DECLARATIONS,\n})\nexport class NggModalModule { }","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core'\nimport { BadgeType } from '@sebgroup/extract'\n\n@Component({\n // we need to disable this warning since we don't want the badge component to create a new element\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-badge]',\n template: `\n <strong>\n <ng-content></ng-content>\n </strong>\n <button *ngIf=\"isCloseable\" class=\"close\" (click)=\"close($event)\">\n {{ closeText }}\n <i></i>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggBadgeComponent implements OnInit {\n /** The color of the component */\n @Input() badgeType?: BadgeType | '' = ''\n /** Flag whether the component can be dismissed */\n @Input() set isCloseable(value: boolean | '') {\n this._isCloseable = value\n }\n get isCloseable(): boolean {\n return this._isCloseable === '' || !!this._isCloseable\n }\n /** Close text */\n @Input() closeText?: string\n /** Custom text color */\n @HostBinding('style.color') @Input() customColor?: string\n /** Custom background color */\n @HostBinding('style.background-color') @Input() customBackgroundColor?: string\n\n @HostBinding('class') get class(): string {\n return ['badge', this.badgeType].join(' ')\n }\n\n /** Callback when component is dismissed */\n @Output() handleClose: EventEmitter<Event> = new EventEmitter()\n\n private _isCloseable?: boolean | ''\n\n //eslint-disable-next-line\n constructor() {}\n\n ngOnInit(): void {\n if (!!this.customColor || !!this.customBackgroundColor) {\n this.badgeType = ''\n }\n }\n\n close(e: Event) {\n this.handleClose.emit(e)\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggBadgeComponent } from './badge.component'\n\n@NgModule({\n declarations: [NggBadgeComponent],\n imports: [CommonModule],\n exports: [NggBadgeComponent],\n})\nexport class NggBadgeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NggDropdownComponent","i2"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export * from './lib/green-angular.module';
2
2
  export * from './lib/dropdown/dropdown.module';
3
3
  export * from './lib/dropdown/dropdown.component';
4
+ export * from './lib/dropdown/dropdown-option.directive';
5
+ export * from './lib/modal';
6
+ export * from './lib/datepicker/datepicker.module';
7
+ export * from './lib/datepicker/datepicker.component';
4
8
  export * from './lib/segmented-control/segmented-control.module';
5
9
  export * from './lib/segmented-control/segmented-control.component';
10
+ export * from './lib/badge/badge.module';
11
+ export * from './lib/badge/badge.component';
@@ -0,0 +1,25 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { BadgeType } from '@sebgroup/extract';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NggBadgeComponent implements OnInit {
5
+ /** The color of the component */
6
+ badgeType?: BadgeType | '';
7
+ /** Flag whether the component can be dismissed */
8
+ set isCloseable(value: boolean | '');
9
+ get isCloseable(): boolean;
10
+ /** Close text */
11
+ closeText?: string;
12
+ /** Custom text color */
13
+ customColor?: string;
14
+ /** Custom background color */
15
+ customBackgroundColor?: string;
16
+ get class(): string;
17
+ /** Callback when component is dismissed */
18
+ handleClose: EventEmitter<Event>;
19
+ private _isCloseable?;
20
+ constructor();
21
+ ngOnInit(): void;
22
+ close(e: Event): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggBadgeComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggBadgeComponent, "[ngg-badge]", never, { "badgeType": "badgeType"; "isCloseable": "isCloseable"; "closeText": "closeText"; "customColor": "customColor"; "customBackgroundColor": "customBackgroundColor"; }, { "handleClose": "handleClose"; }, never, ["*"]>;
25
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./badge.component";
3
+ import * as i2 from "@angular/common";
4
+ export declare class NggBadgeModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggBadgeModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NggBadgeModule, [typeof i1.NggBadgeComponent], [typeof i2.CommonModule], [typeof i1.NggBadgeComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<NggBadgeModule>;
8
+ }
@@ -0,0 +1,49 @@
1
+ import { AfterViewInit, ElementRef, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
+ import { ControlValueAccessor, ValidatorFn } from '@angular/forms';
3
+ import { AbstractDropdown, DropdownHandler, ElementProps, DatepickerData, Datepicker, DatepickerState, DropdownOption, DatepickerOptions } from '@sebgroup/extract';
4
+ import * as i0 from "@angular/core";
5
+ export declare class NggDatepickerComponent implements ControlValueAccessor, AfterViewInit {
6
+ private _cdr;
7
+ get months(): Array<DropdownOption>;
8
+ set months(value: Array<DropdownOption>);
9
+ get options(): DatepickerOptions;
10
+ set options(value: DatepickerOptions);
11
+ get value(): string | Date | undefined;
12
+ set value(newValue: string | Date | undefined);
13
+ id?: string;
14
+ label?: string;
15
+ isValid: boolean | null;
16
+ readonly valueChange: EventEmitter<any>;
17
+ datepickerDialogElRef?: ElementRef<HTMLElement>;
18
+ dateInputElRef?: ElementRef<HTMLInputElement>;
19
+ datepickerElRef?: ElementRef<HTMLElement>;
20
+ datepickerTriggerElRef?: ElementRef<HTMLButtonElement>;
21
+ onChangeFn?: (value: any) => void;
22
+ onTouchedFn?: any;
23
+ dropdown?: AbstractDropdown;
24
+ handler?: DropdownHandler;
25
+ toggler?: Partial<ElementProps>;
26
+ listbox?: Partial<ElementProps>;
27
+ _value: string | Date | undefined;
28
+ private _months;
29
+ years?: Array<DropdownOption>;
30
+ private _options?;
31
+ dp: Datepicker | undefined;
32
+ private _data;
33
+ constructor(_cdr: ChangeDetectorRef);
34
+ writeValue(value: any): void;
35
+ registerOnChange(fn: any): void;
36
+ registerOnTouched(fn: any): void;
37
+ get data(): DatepickerData | undefined;
38
+ set data(value: DatepickerData | undefined);
39
+ onDateChange(value: string): void;
40
+ listener: (data: DatepickerData | undefined, state: DatepickerState | undefined) => void;
41
+ trackWeek(index: any, week: any): any;
42
+ ngAfterViewInit(): void;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggDatepickerComponent, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggDatepickerComponent, "ngg-datepicker", never, { "options": "options"; "value": "value"; "id": "id"; "label": "label"; "isValid": "isValid"; }, { "valueChange": "valueChange"; }, never, ["[data-form-info]"]>;
45
+ }
46
+ export declare function dateValidator(dates?: {
47
+ min?: Date;
48
+ max?: Date;
49
+ }): ValidatorFn;
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./datepicker.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../dropdown/dropdown.module";
5
+ export declare class NggDatepickerModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggDatepickerModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NggDatepickerModule, [typeof i1.NggDatepickerComponent], [typeof i2.CommonModule, typeof i3.NggDropdownModule], [typeof i1.NggDatepickerComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<NggDatepickerModule>;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NggDropdownOptionDirective {
4
+ templateRef: TemplateRef<unknown>;
5
+ constructor(templateRef: TemplateRef<unknown>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggDropdownOptionDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NggDropdownOptionDirective, "[nggDropdownOption]", never, {}, {}, never>;
8
+ }
@@ -1,33 +1,57 @@
1
- import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy } from '@angular/core';
2
- import { ControlValueAccessor } from '@angular/forms';
3
- import { AbstractDropdown, DropdownHandler, DropdownOption, ExtendedDropdownOption, ElementProps } from '@sebgroup/extract';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
3
+ import { AbstractDropdown, CompareWith, DropdownHandler, DropdownOption, DropdownOptionElement, DropdownTexts, ElementProps, SearchFilter } from '@sebgroup/extract';
4
+ import { NggDropdownOptionDirective } from './dropdown-option.directive';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class NggDropdownComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {
6
7
  private cd;
8
+ private injector;
7
9
  id?: string;
8
- text?: string;
10
+ texts?: DropdownTexts;
9
11
  loop?: boolean;
12
+ display?: string;
13
+ useValue?: string;
14
+ label?: string;
10
15
  options: DropdownOption[];
11
- togglerRef: ElementRef<HTMLElement> | undefined;
12
- listboxRef: ElementRef<HTMLElement> | undefined;
13
- value: any;
14
- onChangeFn?: any;
15
- onTouchedFn?: any;
16
+ valid?: boolean;
17
+ invalid?: boolean;
18
+ compareWith?: CompareWith;
19
+ searchFilter?: SearchFilter;
20
+ set multiSelect(value: string | boolean);
21
+ get multiSelect(): boolean;
22
+ private _multiSelect;
23
+ set searchable(value: string | boolean);
24
+ get searchable(): boolean;
25
+ private _searchable;
26
+ set value(newValue: any);
27
+ get value(): any;
28
+ private _value;
29
+ readonly valueChange: EventEmitter<any>;
30
+ readonly touched: EventEmitter<boolean>;
31
+ togglerRef?: ElementRef<HTMLElement>;
32
+ listboxRef?: ElementRef<HTMLElement>;
33
+ fieldsetRef?: ElementRef<HTMLElement>;
34
+ customOption?: NggDropdownOptionDirective;
35
+ onChangeFn?: (value: unknown) => void;
36
+ onTouchedFn?: () => void;
16
37
  dropdown?: AbstractDropdown;
17
38
  handler?: DropdownHandler;
18
39
  toggler?: Partial<ElementProps>;
19
40
  listbox?: Partial<ElementProps>;
20
- constructor(cd: ChangeDetectorRef);
41
+ fieldset?: Partial<ElementProps>;
42
+ get control(): NgControl | undefined;
43
+ constructor(cd: ChangeDetectorRef, injector: Injector);
21
44
  ngAfterViewInit(): void;
22
45
  ngOnDestroy(): void;
23
- ngOnChanges(): void;
24
- writeValue(obj: any): void;
25
- registerOnChange(fn: any): void;
26
- registerOnTouched(fn: any): void;
27
- select(option: ExtendedDropdownOption): void;
28
- trackByKey: (index: number, option: ExtendedDropdownOption) => string;
46
+ ngOnChanges(changes: SimpleChanges): void;
47
+ writeValue(value: any): void;
48
+ registerOnChange(fn: () => unknown): void;
49
+ registerOnTouched(fn: () => void): void;
50
+ trackByKey: (index: number, option: DropdownOptionElement) => string;
51
+ search($event: Event): void;
29
52
  private get props();
30
- private selectFromValue;
53
+ private updateValue;
54
+ private convertToBoolean;
31
55
  static ɵfac: i0.ɵɵFactoryDeclaration<NggDropdownComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<NggDropdownComponent, "ngg-dropdown", never, { "id": "id"; "text": "text"; "loop": "loop"; "options": "options"; }, {}, never, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggDropdownComponent, "ngg-dropdown", never, { "id": "id"; "texts": "texts"; "loop": "loop"; "display": "display"; "useValue": "useValue"; "label": "label"; "options": "options"; "valid": "valid"; "invalid": "invalid"; "compareWith": "compareWith"; "searchFilter": "searchFilter"; "multiSelect": "multiSelect"; "searchable": "searchable"; "value": "value"; }, { "valueChange": "valueChange"; "touched": "touched"; }, ["customOption"], ["[data-form-info]"]>;
33
57
  }
@@ -1,8 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./dropdown.component";
3
- import * as i2 from "@angular/common";
3
+ import * as i2 from "./dropdown-option.directive";
4
+ import * as i3 from "@angular/common";
4
5
  export declare class NggDropdownModule {
5
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NggDropdownModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<NggDropdownModule, [typeof i1.NggDropdownComponent], [typeof i2.CommonModule], [typeof i1.NggDropdownComponent]>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NggDropdownModule, [typeof i1.NggDropdownComponent, typeof i2.NggDropdownOptionDirective], [typeof i3.CommonModule], [typeof i1.NggDropdownComponent, typeof i2.NggDropdownOptionDirective]>;
7
8
  static ɵinj: i0.ɵɵInjectorDeclaration<NggDropdownModule>;
8
9
  }
@@ -2,8 +2,9 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "@angular/common";
3
3
  import * as i2 from "./segmented-control/segmented-control.module";
4
4
  import * as i3 from "./dropdown/dropdown.module";
5
+ import * as i4 from "./datepicker/datepicker.module";
5
6
  export declare class NggModule {
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NggModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<NggModule, never, [typeof i1.CommonModule], [typeof i2.NggSegmentedControlModule, typeof i3.NggDropdownModule]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NggModule, never, [typeof i1.CommonModule], [typeof i2.NggSegmentedControlModule, typeof i3.NggDropdownModule, typeof i4.NggDatepickerModule]>;
8
9
  static ɵinj: i0.ɵɵInjectorDeclaration<NggModule>;
9
10
  }
@@ -0,0 +1,2 @@
1
+ export * from './modal.component';
2
+ export * from './modal.module';
@@ -0,0 +1,50 @@
1
+ import { ElementRef, EventEmitter, OnDestroy } from '@angular/core';
2
+ import { ModalType, Size } from '@sebgroup/extract';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NggModalComponent implements OnDestroy {
5
+ private ref;
6
+ modalType?: ModalType;
7
+ header?: string;
8
+ confirmLabel?: string;
9
+ dismissLabel?: string;
10
+ size?: Size;
11
+ get isOpen(): boolean | undefined;
12
+ set isOpen(value: boolean | undefined);
13
+ isOpenChange: EventEmitter<boolean>;
14
+ closed: EventEmitter<MouseEvent>;
15
+ confirm: EventEmitter<MouseEvent>;
16
+ dismiss: EventEmitter<MouseEvent>;
17
+ get open(): boolean | undefined;
18
+ private backdropRef?;
19
+ private _isOpen?;
20
+ constructor(ref: ElementRef<HTMLElement>);
21
+ handleCloseClick(event: MouseEvent): void;
22
+ handleBackdropClick(event: MouseEvent): void;
23
+ handleDismiss(event: MouseEvent): void;
24
+ handleConfirm(event: MouseEvent): void;
25
+ private closeModal;
26
+ ngOnDestroy(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggModalComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggModalComponent, "ngg-modal", never, { "modalType": "modalType"; "header": "header"; "confirmLabel": "confirmLabel"; "dismissLabel": "dismissLabel"; "size": "size"; "isOpen": "isOpen"; }, { "isOpenChange": "isOpenChange"; "closed": "closed"; "confirm": "confirm"; "dismiss": "dismiss"; }, never, ["*"]>;
29
+ }
30
+ export declare class NggModalHeaderComponent {
31
+ header?: string;
32
+ closed: EventEmitter<MouseEvent>;
33
+ handleClose(event: MouseEvent): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggModalHeaderComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggModalHeaderComponent, "[ngg-modal-header]", never, { "header": "header"; }, { "closed": "closed"; }, never, never>;
36
+ }
37
+ export declare class NggModalBodyComponent {
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggModalBodyComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggModalBodyComponent, "[ngg-modal-body]", never, {}, {}, never, ["*"]>;
40
+ }
41
+ export declare class NggModalFooterComponent {
42
+ dismissLabel?: string;
43
+ confirmLabel?: string;
44
+ dismiss: EventEmitter<MouseEvent>;
45
+ confirm: EventEmitter<MouseEvent>;
46
+ handleDismiss(event: MouseEvent): void;
47
+ handleConfirm(event: MouseEvent): void;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggModalFooterComponent, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<NggModalFooterComponent, "[ngg-modal-footer]", never, { "dismissLabel": "dismissLabel"; "confirmLabel": "confirmLabel"; }, { "dismiss": "dismiss"; "confirm": "confirm"; }, never, never>;
50
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./modal.component";
3
+ import * as i2 from "@angular/common";
4
+ export declare class NggModalModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NggModalModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NggModalModule, [typeof i1.NggModalComponent, typeof i1.NggModalHeaderComponent, typeof i1.NggModalBodyComponent, typeof i1.NggModalFooterComponent], [typeof i2.CommonModule], [typeof i1.NggModalComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<NggModalModule>;
8
+ }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@sebgroup/green-angular",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.41",
4
4
  "peerDependencies": {
5
- "@angular/common": "^13.0.0",
6
- "@angular/core": "^13.0.0",
7
- "rxjs": "^6.6.7",
8
- "@angular/forms": "^13.0.0",
9
- "@angular/platform-browser": "^13.0.0",
10
- "@angular/router": "^13.0.0"
5
+ "@angular/common": "^12 || ^13 || ^14",
6
+ "@angular/core": "^12 || ^13 || ^14",
7
+ "@angular/forms": "^12 || ^13 || ^14",
8
+ "@angular/platform-browser": "^12 || ^13 || ^14",
9
+ "@angular/router": "^12 || ^13 || ^14",
10
+ "rxjs": "^6.5.3 || ^7.4.0"
11
11
  },
12
12
  "dependencies": {
13
- "@sebgroup/chlorophyll": "^1.0.0-beta.4",
14
- "@sebgroup/extract": "^1.0.0-beta.4",
13
+ "@sebgroup/chlorophyll": "^1.0.0-beta.41",
14
+ "@sebgroup/extract": "^1.0.0-beta.40",
15
15
  "tslib": "^2.3.1"
16
16
  },
17
17
  "description": "Angular components built on top of @sebgroup/chlorophyll.",
@@ -50,4 +50,4 @@
50
50
  }
51
51
  },
52
52
  "sideEffects": false
53
- }
53
+ }