various fixes; doesnt work in runtime

This commit is contained in:
Alessandro Seravalli 2025-05-08 01:31:07 +02:00
parent 9efeab2f44
commit b99a21dd26
16 changed files with 596 additions and 283 deletions

View File

@ -50,6 +50,7 @@
"@isp/xdce-arch-core": "1.50.30",
"@isp/xdce-arch-core-base": "1.21.8",
"@isp/xdce-widget": "1.125.2",
"@ng-bootstrap/ng-bootstrap": "4.0.0",
"ag-grid-angular": "22.1.1",
"ag-grid-community": "22.1.1",
"@ag-grid-community/all-modules": "22.1.1",

View File

@ -1,71 +1,71 @@
import { ModuleWithProviders, NgModule } from "@angular/core";
import { NbpBreadCrumbsComponent } from "./widgetfideuram/components/nbp-bread-crumbs/nbp-bread-crumbs.component";
export { NbpBreadCrumbsComponent } from "./widgetfideuram/components/nbp-bread-crumbs/nbp-bread-crumbs.component";
import { NbpFidBarChartComponent } from "./widgetfideuram/components/nbp-fid-bar-chart/nbp-fid-bar-chart.component";
export { NbpFidBarChartComponent } from "./widgetfideuram/components/nbp-fid-bar-chart/nbp-fid-bar-chart.component";
import { NbpFidButtonBarComponent } from "./widgetfideuram/components/nbp-fid-button-bar/nbp-fid-button-bar.component";
export { NbpFidButtonBarComponent } from "./widgetfideuram/components/nbp-fid-button-bar/nbp-fid-button-bar.component";
import { NbpFidDonutChartComponent } from "./widgetfideuram/components/nbp-fid-donut-chart/nbp-fid-donut-chart.component";
export { NbpFidDonutChartComponent } from "./widgetfideuram/components/nbp-fid-donut-chart/nbp-fid-donut-chart.component";
import { NbpFidPyramidChartComponent } from "./widgetfideuram/components/nbp-fid-pyramid-chart/nbp-fid-pyramid-chart.component";
export { NbpFidPyramidChartComponent } from "./widgetfideuram/components/nbp-fid-pyramid-chart/nbp-fid-pyramid-chart.component";
import { NbpFidSidePopupComponent } from "./widgetfideuram/components/nbp-fid-side-popup/nbp-fid-side-popup.component";
export { NbpFidSidePopupComponent } from "./widgetfideuram/components/nbp-fid-side-popup/nbp-fid-side-popup.component";
import { NbpFidTableComponent } from "./widgetfideuram/components/nbp-fid-table/nbp-fid-table.component";
export { NbpFidTableComponent } from "./widgetfideuram/components/nbp-fid-table/nbp-fid-table.component";
import { NbpFidToggleTabComponentA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.a11y";
export { NbpFidToggleTabComponentA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.a11y";
import { NbpFidToggleTabComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.noa11y";
export { NbpFidToggleTabComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.noa11y";
import { NbpFidToggleTabComponent } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component";
export { NbpFidToggleTabComponent } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component";
import { NbpFidToggleTabsetComponentA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.a11y";
export { NbpFidToggleTabsetComponentA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.a11y";
import { NbpFidToggleTabsetComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.noa11y";
export { NbpFidToggleTabsetComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.noa11y";
import { NbpFidToggleTabsetComponent } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component";
export { NbpFidToggleTabsetComponent } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component";
import { NbpFidComboComponent } from "./widgetfideuram/components/nbp-fid-combo/nbp-fid-combo.component";
export { NbpFidComboComponent } from "./widgetfideuram/components/nbp-fid-combo/nbp-fid-combo.component";
import { ShowcaseComponent } from "./widgetfideuram/components/showcase/showcase.component";
export { ShowcaseComponent } from "./widgetfideuram/components/showcase/showcase.component";
import { Showcase1Component } from "./widgetfideuram/components/showcase/showcase1.component";
export { Showcase1Component } from "./widgetfideuram/components/showcase/showcase1.component";
import { WidgetFideuramShowcaseComponent } from "./widgetfideuram/components/widget-fideuram-showcase/widget-fideuram-showcase.component";
export { WidgetFideuramShowcaseComponent } from "./widgetfideuram/components/widget-fideuram-showcase/widget-fideuram-showcase.component";
import { NbpFidCalendarGeneric } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-fid-calendar-generic.component";
export { NbpFidCalendarGeneric } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-fid-calendar-generic.component";
import { ModuleWithProviders, NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { FormsModule } from "@angular/forms";
import { XdceArchModule } from "@isp/xdce-arch-core";
import { NbpModule } from "@isp/xdce-widget";
import { NgbModule } from "@ng-bootstrap/ng-bootstrap";
import {
AgGridModule,
AngularFrameworkComponentWrapper,
AngularFrameworkOverrides,
} from "ag-grid-angular";
import { NbpModule } from "@isp/xdce-widget";
import { XdceArchModule } from "@isp/xdce-arch-core";
import { NbpBreadCrumbsComponent } from "./widgetfideuram/components/nbp-bread-crumbs/nbp-bread-crumbs.component";
import { NbpFidBarChartComponent } from "./widgetfideuram/components/nbp-fid-bar-chart/nbp-fid-bar-chart.component";
import { NbpFidButtonBarComponent } from "./widgetfideuram/components/nbp-fid-button-bar/nbp-fid-button-bar.component";
import { FidRplCalendarNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker";
import { NgbFidInputDatepickerNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker-input";
import { NgbFidDatepickerRoutingViewNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker-routing-view";
import { FidRplCalendar } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker";
import { NgbFidInputDatepicker } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker-input";
import { NgbFidDatepickerRoutingView } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker-routing-view";
import { NbpCalendarGenericComponentA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-calendar-generic.component.a11y";
import { NbpCalendarGenericComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-calendar-generic.component.noa11y";
export { NbpCalendarGenericComponentA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-calendar-generic.component.a11y";
export { NbpCalendarGenericComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-calendar-generic.component.noa11y";
import { NgbInputDatepicker } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker-input";
export { NgbInputDatepicker } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker-input";
import { RplCalendarNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker";
export { RplCalendarNOA11Y } from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker";
export { AgGridModule } from "ag-grid-angular";
import { NbpFidCalendarGeneric } from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-fid-calendar-generic.component";
import { NbpFidComboComponent } from "./widgetfideuram/components/nbp-fid-combo/nbp-fid-combo.component";
import { NbpFidDonutChartComponent } from "./widgetfideuram/components/nbp-fid-donut-chart/nbp-fid-donut-chart.component";
import { NbpFidPyramidChartComponent } from "./widgetfideuram/components/nbp-fid-pyramid-chart/nbp-fid-pyramid-chart.component";
import { NbpFidSidePopupComponent } from "./widgetfideuram/components/nbp-fid-side-popup/nbp-fid-side-popup.component";
import { NbpFidTableComponent } from "./widgetfideuram/components/nbp-fid-table/nbp-fid-table.component";
import { NbpFidToggleTabComponent } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component";
import { NbpFidToggleTabComponentA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.a11y";
import { NbpFidToggleTabComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.noa11y";
import { NbpFidToggleTabsetComponent } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component";
import { NbpFidToggleTabsetComponentA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.a11y";
import { NbpFidToggleTabsetComponentNOA11Y } from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.noa11y";
import { ShowcaseComponent } from "./widgetfideuram/components/showcase/showcase.component";
import { Showcase1Component } from "./widgetfideuram/components/showcase/showcase1.component";
import { WidgetFideuramShowcaseComponent } from "./widgetfideuram/components/widget-fideuram-showcase/widget-fideuram-showcase.component";
import { NgbDatepickerService, NgbDatepickerServiceNOA11Y } from '@isp/xdce-widget';
export {
DATE_STRING_FORMAT,
formatDate,
formatNumber,
setSpinnerMessage,
clearSpinnerMessage,
} from "./widgetfideuram/Utils";
export { AgGridModule } from "ag-grid-angular";
export * from "./widgetfideuram/components/nbp-bread-crumbs/nbp-bread-crumbs.component";
export * from "./widgetfideuram/components/nbp-fid-bar-chart/nbp-fid-bar-chart.component";
export * from "./widgetfideuram/components/nbp-fid-button-bar/nbp-fid-button-bar.component";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap-noa11y/datepicker/datepicker-input";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/@ng-bootstrap/datepicker/datepicker-input";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-calendar-generic.component.a11y";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-calendar-generic.component.noa11y";
export * from "./widgetfideuram/components/nbp-fid-calendar-generic/nbp-fid-calendar-generic.component";
export * from "./widgetfideuram/components/nbp-fid-combo/nbp-fid-combo.component";
export * from "./widgetfideuram/components/nbp-fid-donut-chart/nbp-fid-donut-chart.component";
export * from "./widgetfideuram/components/nbp-fid-pyramid-chart/nbp-fid-pyramid-chart.component";
export * from "./widgetfideuram/components/nbp-fid-side-popup/nbp-fid-side-popup.component";
export * from "./widgetfideuram/components/nbp-fid-table/nbp-fid-table.component";
export * from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component";
export * from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.a11y";
export * from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.noa11y";
export * from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component";
export * from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.a11y";
export * from "./widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.noa11y";
export * from "./widgetfideuram/components/showcase/showcase.component";
export * from "./widgetfideuram/components/showcase/showcase1.component";
export * from "./widgetfideuram/components/widget-fideuram-showcase/widget-fideuram-showcase.component";
export * from "./widgetfideuram/Utils";
@NgModule({
imports: [XdceArchModule, NbpModule, AgGridModule, FormsModule],
imports: [XdceArchModule, NbpModule, AgGridModule, FormsModule, NgbModule],
declarations: [
NbpBreadCrumbsComponent,
NbpFidBarChartComponent,
@ -85,11 +85,14 @@ export {
Showcase1Component,
WidgetFideuramShowcaseComponent,
NbpFidCalendarGeneric,
NgbInputDatepicker,
RplCalendarNOA11Y,
NgbFidInputDatepicker,
FidRplCalendarNOA11Y,
NbpCalendarGenericComponentNOA11Y,
NbpCalendarGenericComponentA11Y,
FidRplCalendar,
NgbFidInputDatepickerNOA11Y,
NgbFidDatepickerRoutingView,
NgbFidDatepickerRoutingViewNOA11Y
],
exports: [
NbpBreadCrumbsComponent,
@ -111,9 +114,19 @@ export {
WidgetFideuramShowcaseComponent,
AgGridModule,
NbpFidCalendarGeneric,
RplCalendarNOA11Y
FidRplCalendarNOA11Y,
FidRplCalendar,
NgbFidDatepickerRoutingView,
NgbFidDatepickerRoutingViewNOA11Y,
NgbFidInputDatepickerNOA11Y,
NgbFidInputDatepicker
],
providers: [
AngularFrameworkOverrides,
AngularFrameworkComponentWrapper,
{ provide: 'NgbDatepickerServiceNOA11Y', useClass: NgbDatepickerServiceNOA11Y },
{ provide: 'NgbDatepickerService', useClass: NgbDatepickerService }
],
providers: [AngularFrameworkOverrides, AngularFrameworkComponentWrapper],
entryComponents: [
NbpFidToggleTabComponentA11Y,
NbpFidToggleTabComponentNOA11Y,
@ -123,7 +136,12 @@ export {
NbpFidToggleTabsetComponent,
NbpCalendarGenericComponentA11Y,
NbpCalendarGenericComponentNOA11Y,
FidRplCalendarNOA11Y,
FidRplCalendar,
NgbFidDatepickerRoutingView,
NgbFidDatepickerRoutingViewNOA11Y
],
schemas: [NO_ERRORS_SCHEMA]
})
export class XdceWidgetFideuramModule {
static forRoot(): ModuleWithProviders {

View File

@ -22,36 +22,33 @@ import {
NG_VALUE_ACCESSOR,
Validator,
} from "@angular/forms";
import {
NgbDatepickerNavigateEventNOA11Y,
RplCalendarNOA11Y,
} from "./datepicker";
import { Positioning } from "@isp/xdce-widget/user-input/isp-typeahead/ng-bootstrap/positioning";
import { EventManager } from "@isp/xdce-arch-core-base";
import {
NgbDatepickerServiceNOA11Y,
NgbDate,
DayTemplateContextNOA11Y,
NgbDateStruct,
NbpCalendarPattern,
NbpDateSeparator,
NbpCalendarPosition,
NgbDateParserFormatterNOA11Y,
NbpDateSeparator,
NgbCalendarNOA11Y,
NgbDate,
NgbDateParserFormatterNOA11Y,
NgbDateStruct,
NgbDatepickerNavigateEventNOA11Y,
NgbDatepickerServiceNOA11Y,
} from "@isp/xdce-widget";
import { Positioning } from "../util/positioning";
import {
FidRplCalendarNOA11Y,
} from "./datepicker";
const NGB_DATEPICKER_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => NgbInputDatepickerNOA11Y),
useExisting: forwardRef(() => NgbFidInputDatepickerNOA11Y),
multi: true,
};
const NGB_DATEPICKER_VALIDATOR = {
provide: NG_VALIDATORS,
useExisting: forwardRef(() => NgbInputDatepickerNOA11Y),
useExisting: forwardRef(() => NgbFidInputDatepickerNOA11Y),
multi: true,
};
@ -60,8 +57,8 @@ const NGB_DATEPICKER_VALIDATOR = {
* Manages integration with the input field itself (data entry) and ngModel (validation etc.).
*/
@Directive({
selector: "input[rplCalendarNOA11Y]",
exportAs: "rplCalendarNOA11Y",
selector: "input[fidRplCalendarNOA11Y]",
exportAs: "fidRplCalendarNOA11Y",
host: {
"(input)": "waitForFormat($event.target.value)",
"(change)": "manualDateChange($event.target.value, true)",
@ -75,10 +72,10 @@ const NGB_DATEPICKER_VALIDATOR = {
NgbDatepickerServiceNOA11Y,
],
})
export class NgbInputDatepickerNOA11Y
export class NgbFidInputDatepickerNOA11Y
implements OnChanges, OnDestroy, ControlValueAccessor, Validator
{
private _cRef: ComponentRef<RplCalendarNOA11Y> = null;
private _cRef: ComponentRef<FidRplCalendarNOA11Y> = null;
private _model: NgbDate;
private _zoneSubscription: any;
@ -432,7 +429,7 @@ export class NgbInputDatepickerNOA11Y
}
}
const cf = this._cfr.resolveComponentFactory(RplCalendarNOA11Y);
const cf = this._cfr.resolveComponentFactory(FidRplCalendarNOA11Y);
this._cRef = this._vcRef.createComponent(cf);
this._applyPopupStyling(this._cRef.location.nativeElement);
@ -567,7 +564,7 @@ export class NgbInputDatepickerNOA11Y
return 0;
}
private _applyDatepickerInputs(datepickerInstance: RplCalendarNOA11Y): void {
private _applyDatepickerInputs(datepickerInstance: FidRplCalendarNOA11Y): void {
[
"dayTemplate",
"displayMonths",
@ -594,7 +591,7 @@ export class NgbInputDatepickerNOA11Y
}
private _subscribeForDatepickerOutputs(
datepickerInstance: RplCalendarNOA11Y
datepickerInstance: FidRplCalendarNOA11Y
) {
datepickerInstance.navigate.subscribe((date: any) =>
this.navigate.emit(date)

View File

@ -1,40 +1,39 @@
import {
Component,
EventEmitter,
Input,
OnInit,
Output,
TemplateRef,
ChangeDetectionStrategy,
ChangeDetectorRef,
SimpleChanges,
Component,
ElementRef,
EventEmitter,
Input,
OnChanges,
OnDestroy,
OnInit,
Output,
SimpleChanges,
TemplateRef,
ViewChild,
ElementRef,
} from "@angular/core";
import { CalendarItemNOA11Y } from "./datepicker";
import { Subscription } from "rxjs";
import {
CalendarItemNOA11Y,
DayTemplateContextNOA11Y,
NgbDataTemplateStruct,
DayViewModel,
MonthViewModel,
NgbDataTemplateStruct,
NgbDate,
NgbDatepickerI18nNOA11Y,
NgbDatepickerServiceNOA11Y,
DayViewModel,
WeekViewModel,
WeekViewModel
} from "@isp/xdce-widget";
import { Subscription } from "rxjs";
@Component({
selector: "ngb-datepicker-routing-view",
host: { class: "d-block" },
templateUrl: "./datepicker-routing-view.html",
templateUrl: './datepicker-routing-view.html',
styleUrls: ["./datepicker-routing-view.scss"],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class NgbDatepickerRoutingViewNOA11Y
export class NgbFidDatepickerRoutingViewNOA11Y
implements OnInit, OnChanges, OnDestroy
{
@Input() dayTemplate: TemplateRef<DayTemplateContextNOA11Y>;

View File

@ -1,24 +1,20 @@
import { Subscription } from "rxjs";
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
ElementRef,
EventEmitter,
forwardRef,
Input,
OnChanges,
TemplateRef,
forwardRef,
OnInit,
SimpleChanges,
EventEmitter,
Output,
OnDestroy,
ElementRef,
ViewChild,
ViewChildren,
OnInit,
Output,
SimpleChanges,
TemplateRef,
ViewChild
} from "@angular/core";
import { NG_VALUE_ACCESSOR, ControlValueAccessor } from "@angular/forms";
import { NgbDatepickerRoutingViewNOA11Y } from "./datepicker-routing-view";
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms";
import {
DatepickerViewModel,
DayTemplateContextNOA11Y,
@ -31,40 +27,22 @@ import {
NgbDatepickerConfigNOA11Y,
NgbDatepickerI18nNOA11Y,
NgbDatepickerKeyMapServiceNOA11Y,
RplCalendarNavigateEventNOA11Y,
NgbDatepickerServiceNOA11Y,
NgbDateStruct,
NgbDatepickerNavigateEventNOA11Y,
CalendarItemNOA11Y
} from "@isp/xdce-widget";
import { toInteger } from "@isp/xdce-widget/user-input/isp-typeahead/ng-bootstrap/util";
import { toInteger } from "../util/util";
import { Subscription } from "rxjs";
import { NgbFidDatepickerRoutingViewNOA11Y } from "./datepicker-routing-view";
const NGB_CALENDAR_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => RplCalendarNOA11Y),
useExisting: forwardRef(() => FidRplCalendarNOA11Y),
multi: true,
};
/**
* The payload of the datepicker navigation event
*/
export interface RplCalendarNavigateEventNOA11Y {
/**
* Currently displayed month
*/
current: { year: number; month: number };
/**
* Month we're navigating to
*/
next: { year: number; month: number };
}
export class CalendarItemNOA11Y {
name: string;
number: number;
focused: boolean;
disabled: boolean;
selected: boolean;
}
/**
* A lightweight and highly configurable datepicker directive
*/
@ -89,15 +67,15 @@ export class CalendarItemNOA11Y {
NgbDatepickerKeyMapServiceNOA11Y,
],
})
export class RplCalendarNOA11Y
export class FidRplCalendarNOA11Y
implements OnDestroy, OnChanges, OnInit, ControlValueAccessor
{
model: DatepickerViewModel;
@ViewChild(forwardRef(() => NgbDatepickerRoutingViewNOA11Y))
datepickerRoutingView: NgbDatepickerRoutingViewNOA11Y;
@ViewChild(forwardRef(() => NgbDatepickerRoutingViewNOA11Y))
datepickerHeader: NgbDatepickerRoutingViewNOA11Y;
@ViewChild(forwardRef(() => NgbFidDatepickerRoutingViewNOA11Y))
datepickerRoutingView: NgbFidDatepickerRoutingViewNOA11Y;
@ViewChild(forwardRef(() => NgbFidDatepickerRoutingViewNOA11Y))
datepickerHeader: NgbFidDatepickerRoutingViewNOA11Y;
private _subscription: Subscription;
/**
@ -783,18 +761,4 @@ export class RplCalendarNOA11Y
this._subscription.unsubscribe();
}
}
}
/**
* The payload of the calendar navigation event
*/
export interface NgbDatepickerNavigateEventNOA11Y {
/**
* Currently displayed month
*/
current: { year: number; month: number };
/**
* Month we're navigating to
*/
next: { year: number; month: number };
}
}

View File

@ -0,0 +1,151 @@
// previous version:
// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js
export class Positioning {
private getStyle(element: HTMLElement, prop: string): string { return window.getComputedStyle(element)[prop]; }
private isStaticPositioned(element: HTMLElement): boolean {
return (this.getStyle(element, 'position') || 'static') === 'static';
}
private offsetParent(element: HTMLElement): HTMLElement {
let offsetParentEl = <HTMLElement>element.offsetParent || document.documentElement;
while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {
offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;
}
return offsetParentEl || document.documentElement;
}
position(element: HTMLElement, round = true): ClientRect {
let elPosition: ClientRect;
let parentOffset: ClientRect = {width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0};
if (this.getStyle(element, 'position') === 'fixed') {
elPosition = element.getBoundingClientRect();
} else {
const offsetParentEl = this.offsetParent(element);
elPosition = this.offset(element, false);
if (offsetParentEl !== document.documentElement) {
parentOffset = this.offset(offsetParentEl, false);
}
parentOffset.top += offsetParentEl.clientTop;
parentOffset.left += offsetParentEl.clientLeft;
}
elPosition.top -= parentOffset.top;
elPosition.bottom -= parentOffset.top;
elPosition.left -= parentOffset.left;
elPosition.right -= parentOffset.left;
if (round) {
elPosition.top = Math.round(elPosition.top);
elPosition.bottom = Math.round(elPosition.bottom);
elPosition.left = Math.round(elPosition.left);
elPosition.right = Math.round(elPosition.right);
}
return elPosition;
}
offset(element: HTMLElement, round = true): ClientRect {
const elBcr = element.getBoundingClientRect();
const viewportOffset = {
top: window.pageYOffset - document.documentElement.clientTop,
left: window.pageXOffset - document.documentElement.clientLeft
};
let elOffset = {
height: elBcr.height || element.offsetHeight,
width: elBcr.width || element.offsetWidth,
top: elBcr.top + viewportOffset.top,
bottom: elBcr.bottom + viewportOffset.top,
left: elBcr.left + viewportOffset.left,
right: elBcr.right + viewportOffset.left
};
if (round) {
elOffset.height = Math.round(elOffset.height);
elOffset.width = Math.round(elOffset.width);
elOffset.top = Math.round(elOffset.top);
elOffset.bottom = Math.round(elOffset.bottom);
elOffset.left = Math.round(elOffset.left);
elOffset.right = Math.round(elOffset.right);
}
return elOffset;
}
positionElements(hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean):
ClientRect {
const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);
const targetElBCR = targetElement.getBoundingClientRect();
const placementPrimary = placement.split('-')[0] || 'top';
const placementSecondary = placement.split('-')[1] || 'center';
let targetElPosition: ClientRect = {
'height': targetElBCR.height || targetElement.offsetHeight,
'width': targetElBCR.width || targetElement.offsetWidth,
'top': 0,
'bottom': targetElBCR.height || targetElement.offsetHeight,
'left': 0,
'right': targetElBCR.width || targetElement.offsetWidth
};
switch (placementPrimary) {
case 'top':
targetElPosition.top = hostElPosition.top - targetElement.offsetHeight;
break;
case 'bottom':
targetElPosition.top = hostElPosition.top + hostElPosition.height;
break;
case 'left':
targetElPosition.left = hostElPosition.left - targetElement.offsetWidth;
break;
case 'right':
targetElPosition.left = hostElPosition.left + hostElPosition.width;
break;
}
switch (placementSecondary) {
case 'top':
targetElPosition.top = hostElPosition.top;
break;
case 'bottom':
targetElPosition.top = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;
break;
case 'left':
targetElPosition.left = hostElPosition.left;
break;
case 'right':
targetElPosition.left = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;
break;
case 'center':
if (placementPrimary === 'top' || placementPrimary === 'bottom') {
targetElPosition.left = hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2;
} else {
targetElPosition.top = hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2;
}
break;
}
targetElPosition.top = Math.round(targetElPosition.top);
targetElPosition.bottom = Math.round(targetElPosition.bottom);
targetElPosition.left = Math.round(targetElPosition.left);
targetElPosition.right = Math.round(targetElPosition.right);
return targetElPosition;
}
}
const positionService = new Positioning();
export function positionElements(
hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean): void {
const pos = positionService.positionElements(hostElement, targetElement, placement, appendToBody);
targetElement.style.top = `${pos.top}px`;
targetElement.style.left = `${pos.left}px`;
}

View File

@ -0,0 +1,39 @@
export function toInteger(value: any): number {
return parseInt(`${value}`, 10);
}
export function toString(value: any): string {
return (value !== undefined && value !== null) ? `${value}` : '';
}
export function getValueInRange(value: number, max: number, min = 0): number {
return Math.max(Math.min(value, max), min);
}
export function isString(value: any): value is string {
return typeof value === 'string';
}
export function isNumber(value: any): value is number {
return !isNaN(toInteger(value));
}
export function isInteger(value: any): value is number {
return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
}
export function isDefined(value: any): boolean {
return value !== undefined && value !== null;
}
export function padNumber(value: number) {
if (isNumber(value)) {
return `0${value}`.slice(-2);
} else {
return '';
}
}
export function regExpEscape(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}

View File

@ -0,0 +1,17 @@
import { Injector } from "@angular/core";
import {
NgbDatepickerNavigation,
NgbDatepickerNavigationSelect,
NgbDatepickerDayView,
NgbDatepickerReplyMonthView,
NgbDatepickerReplyYearsView,
NgbDatepickerI18n,
NgbCalendar,
NgbDatepickerService
} from "@isp/xdce-widget";
export class NgbFidDatepickerNavigation extends NgbDatepickerNavigation {
constructor(i18n: NgbDatepickerI18n, _calendar: NgbCalendar, injector: Injector, _service: NgbDatepickerService, translate: TranslateService, elementRef: ElementRef) {
super(i18n, _calendar, injector, _service, translate, elementRef);
}
}

View File

@ -22,7 +22,7 @@ import {
NG_VALUE_ACCESSOR,
Validator,
} from "@angular/forms";
import { EventManager } from "@isp/xdce-arch-core-base";
import {
DayTemplateContext,
NbpCalendarPattern,
@ -35,20 +35,18 @@ import {
NgbDatepickerNavigateEvent,
NgbDatepickerService,
} from "@isp/xdce-widget";
import { RplCalendar } from "./datepicker";
import { EventManager } from "@isp/xdce-arch-core-base";
import { Positioning } from "@isp/xdce-widget/user-input/isp-typeahead/ng-bootstrap/positioning";
import { Positioning } from "../util/positioning";
import { FidRplCalendar } from "./datepicker";
const NGB_DATEPICKER_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => NgbInputDatepicker),
useExisting: forwardRef(() => NgbFidInputDatepicker),
multi: true,
};
const NGB_DATEPICKER_VALIDATOR = {
provide: NG_VALIDATORS,
useExisting: forwardRef(() => NgbInputDatepicker),
useExisting: forwardRef(() => NgbFidInputDatepicker),
multi: true,
};
@ -57,7 +55,7 @@ const NGB_DATEPICKER_VALIDATOR = {
* Manages integration with the input field itself (data entry) and ngModel (validation etc.).
*/
@Directive({
selector: "input[fidRplCalendar]",
selector: 'input[fidRplCalendar]',
exportAs: "fidRplCalendar",
host: {
"(input)": "waitForFormat($event.target.value)",
@ -72,10 +70,10 @@ const NGB_DATEPICKER_VALIDATOR = {
NgbDatepickerService,
],
})
export class NgbInputDatepicker
export class NgbFidInputDatepicker
implements OnChanges, OnDestroy, ControlValueAccessor, Validator
{
private _cRef: ComponentRef<RplCalendar> = null;
private _cRef: ComponentRef<FidRplCalendar> = null;
private _model: NgbDate;
private _zoneSubscription: any;
@ -438,7 +436,7 @@ export class NgbInputDatepicker
}
}
const cf = this._cfr.resolveComponentFactory(RplCalendar);
const cf = this._cfr.resolveComponentFactory(FidRplCalendar);
this._cRef = this._vcRef.createComponent(cf);
this._applyPopupStyling(this._cRef.location.nativeElement);
@ -592,7 +590,7 @@ export class NgbInputDatepicker
return 0;
}
private _applyDatepickerInputs(datepickerInstance: RplCalendar): void {
private _applyDatepickerInputs(datepickerInstance: FidRplCalendar): void {
[
"dayTemplate",
"displayMonths",
@ -618,7 +616,7 @@ export class NgbInputDatepicker
this._renderer.setStyle(nativeElement, "padding", "0");
}
private _subscribeForDatepickerOutputs(datepickerInstance: RplCalendar) {
private _subscribeForDatepickerOutputs(datepickerInstance: FidRplCalendar) {
datepickerInstance.navigate.subscribe((date: any) =>
this.navigate.emit(date)
);

View File

@ -15,7 +15,6 @@ import {
ViewChild,
} from "@angular/core";
import {
CalendarItem,
DayTemplateContext,
DayViewModel,
MonthViewModel,
@ -23,18 +22,18 @@ import {
NgbDate,
NgbDatepickerI18n,
NgbDatepickerService,
WeekViewModel,
WeekViewModel
} from "@isp/xdce-widget";
import { Subscription } from "rxjs";
@Component({
selector: "ngb-fid-datepicker-routing-view",
selector: 'ngb-fid-datepicker-routing-view',
host: { class: "d-block" },
templateUrl: "./datepicker-routing-view.html",
templateUrl: './datepicker-routing-view.html',
styleUrls: ["./datepicker-routing-view.scss"],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class NgbDatepickerRoutingView implements OnInit, OnChanges, OnDestroy {
export class NgbFidDatepickerRoutingView implements OnInit, OnChanges, OnDestroy {
@Input() dayTemplate: TemplateRef<DayTemplateContext>;
@Input() monthTemplate: TemplateRef<DayTemplateContext>;
@Input() yearsTemplate: TemplateRef<DayTemplateContext>;
@ -413,7 +412,7 @@ export class NgbDatepickerRoutingView implements OnInit, OnChanges, OnDestroy {
}
private resetMesi() {
let months: CalendarItem[][] = [];
let months: [][] = [];
months = this.mesi.map((row) => {
return row.map((m) => {
const res = { ...m };
@ -430,7 +429,7 @@ export class NgbDatepickerRoutingView implements OnInit, OnChanges, OnDestroy {
}
private resetAnni() {
let yrs: CalendarItem[][] = [];
let yrs: [][] = [];
yrs = this.years.map((row) => {
return row.map((y) => {
const res = { ...y };

View File

@ -16,6 +16,7 @@ import {
} from "@angular/core";
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms";
import {
CalendarItem,
DatepickerViewModel,
DayTemplateContext,
EnabledRangeService,
@ -27,48 +28,26 @@ import {
NgbDatepickerConfig,
NgbDatepickerI18n,
NgbDatepickerKeyMapService,
NgbDatepickerNavigateEvent,
NgbDatepickerService,
NgbDateStruct,
NgbDateStruct
} from "@isp/xdce-widget";
import { toInteger } from "@isp/xdce-widget/user-input/isp-typeahead/ng-bootstrap/util";
import { Subscription } from "rxjs";
import { NgbDatepickerRoutingView } from "./datepicker-routing-view";
import { toInteger } from "../util/util";
import { NgbFidDatepickerRoutingView } from "./datepicker-routing-view";
const NGB_CALENDAR_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => RplCalendar),
useExisting: forwardRef(() => FidRplCalendar),
multi: true,
};
/**
* The payload of the datepicker navigation event
*/
export interface RplCalendarNavigateEvent {
/**
* Currently displayed month
*/
current: { year: number; month: number };
/**
* Month we're navigating to
*/
next: { year: number; month: number };
}
export class CalendarItem {
name: string;
number: number;
focused: boolean;
disabled: boolean;
selected: boolean;
}
/**
* A lightweight and highly configurable datepicker directive
*/
@Component({
exportAs: "rplCalendar",
selector: "rpl-calendar",
exportAs: "fidRplCalendar",
selector: 'fid-rpl-calendar',
changeDetection: ChangeDetectionStrategy.OnPush,
host: {
class: "d-inline-block rounded",
@ -90,15 +69,15 @@ export class CalendarItem {
NgbDatepickerKeyMapService,
],
})
export class RplCalendar
export class FidRplCalendar
implements OnDestroy, OnChanges, OnInit, ControlValueAccessor
{
model: DatepickerViewModel;
@ViewChild(forwardRef(() => NgbDatepickerRoutingView))
datepickerRoutingView: NgbDatepickerRoutingView;
@ViewChild(forwardRef(() => NgbDatepickerRoutingView))
datepickerHeader: NgbDatepickerRoutingView;
@ViewChild(forwardRef(() => NgbFidDatepickerRoutingView))
datepickerRoutingView: NgbFidDatepickerRoutingView;
@ViewChild(forwardRef(() => NgbFidDatepickerRoutingView))
datepickerHeader: NgbFidDatepickerRoutingView;
private _subscription: Subscription;
/**
@ -850,18 +829,4 @@ export class RplCalendar
this._subscription.unsubscribe();
}
}
}
/**
* The payload of the calendar navigation event
*/
export interface NgbDatepickerNavigateEvent {
/**
* Currently displayed month
*/
current: { year: number; month: number };
/**
* Month we're navigating to
*/
next: { year: number; month: number };
}
}

View File

@ -0,0 +1,151 @@
// previous version:
// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js
export class Positioning {
private getStyle(element: HTMLElement, prop: string): string { return window.getComputedStyle(element)[prop]; }
private isStaticPositioned(element: HTMLElement): boolean {
return (this.getStyle(element, 'position') || 'static') === 'static';
}
private offsetParent(element: HTMLElement): HTMLElement {
let offsetParentEl = <HTMLElement>element.offsetParent || document.documentElement;
while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {
offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;
}
return offsetParentEl || document.documentElement;
}
position(element: HTMLElement, round = true): ClientRect {
let elPosition: ClientRect;
let parentOffset: ClientRect = {width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0};
if (this.getStyle(element, 'position') === 'fixed') {
elPosition = element.getBoundingClientRect();
} else {
const offsetParentEl = this.offsetParent(element);
elPosition = this.offset(element, false);
if (offsetParentEl !== document.documentElement) {
parentOffset = this.offset(offsetParentEl, false);
}
parentOffset.top += offsetParentEl.clientTop;
parentOffset.left += offsetParentEl.clientLeft;
}
elPosition.top -= parentOffset.top;
elPosition.bottom -= parentOffset.top;
elPosition.left -= parentOffset.left;
elPosition.right -= parentOffset.left;
if (round) {
elPosition.top = Math.round(elPosition.top);
elPosition.bottom = Math.round(elPosition.bottom);
elPosition.left = Math.round(elPosition.left);
elPosition.right = Math.round(elPosition.right);
}
return elPosition;
}
offset(element: HTMLElement, round = true): ClientRect {
const elBcr = element.getBoundingClientRect();
const viewportOffset = {
top: window.pageYOffset - document.documentElement.clientTop,
left: window.pageXOffset - document.documentElement.clientLeft
};
let elOffset = {
height: elBcr.height || element.offsetHeight,
width: elBcr.width || element.offsetWidth,
top: elBcr.top + viewportOffset.top,
bottom: elBcr.bottom + viewportOffset.top,
left: elBcr.left + viewportOffset.left,
right: elBcr.right + viewportOffset.left
};
if (round) {
elOffset.height = Math.round(elOffset.height);
elOffset.width = Math.round(elOffset.width);
elOffset.top = Math.round(elOffset.top);
elOffset.bottom = Math.round(elOffset.bottom);
elOffset.left = Math.round(elOffset.left);
elOffset.right = Math.round(elOffset.right);
}
return elOffset;
}
positionElements(hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean):
ClientRect {
const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);
const targetElBCR = targetElement.getBoundingClientRect();
const placementPrimary = placement.split('-')[0] || 'top';
const placementSecondary = placement.split('-')[1] || 'center';
let targetElPosition: ClientRect = {
'height': targetElBCR.height || targetElement.offsetHeight,
'width': targetElBCR.width || targetElement.offsetWidth,
'top': 0,
'bottom': targetElBCR.height || targetElement.offsetHeight,
'left': 0,
'right': targetElBCR.width || targetElement.offsetWidth
};
switch (placementPrimary) {
case 'top':
targetElPosition.top = hostElPosition.top - targetElement.offsetHeight;
break;
case 'bottom':
targetElPosition.top = hostElPosition.top + hostElPosition.height;
break;
case 'left':
targetElPosition.left = hostElPosition.left - targetElement.offsetWidth;
break;
case 'right':
targetElPosition.left = hostElPosition.left + hostElPosition.width;
break;
}
switch (placementSecondary) {
case 'top':
targetElPosition.top = hostElPosition.top;
break;
case 'bottom':
targetElPosition.top = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;
break;
case 'left':
targetElPosition.left = hostElPosition.left;
break;
case 'right':
targetElPosition.left = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;
break;
case 'center':
if (placementPrimary === 'top' || placementPrimary === 'bottom') {
targetElPosition.left = hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2;
} else {
targetElPosition.top = hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2;
}
break;
}
targetElPosition.top = Math.round(targetElPosition.top);
targetElPosition.bottom = Math.round(targetElPosition.bottom);
targetElPosition.left = Math.round(targetElPosition.left);
targetElPosition.right = Math.round(targetElPosition.right);
return targetElPosition;
}
}
const positionService = new Positioning();
export function positionElements(
hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean): void {
const pos = positionService.positionElements(hostElement, targetElement, placement, appendToBody);
targetElement.style.top = `${pos.top}px`;
targetElement.style.left = `${pos.left}px`;
}

View File

@ -0,0 +1,39 @@
export function toInteger(value: any): number {
return parseInt(`${value}`, 10);
}
export function toString(value: any): string {
return (value !== undefined && value !== null) ? `${value}` : '';
}
export function getValueInRange(value: number, max: number, min = 0): number {
return Math.max(Math.min(value, max), min);
}
export function isString(value: any): value is string {
return typeof value === 'string';
}
export function isNumber(value: any): value is number {
return !isNaN(toInteger(value));
}
export function isInteger(value: any): value is number {
return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
}
export function isDefined(value: any): boolean {
return value !== undefined && value !== null;
}
export function padNumber(value: number) {
if (isNumber(value)) {
return `0${value}`.slice(-2);
} else {
return '';
}
}
export function regExpEscape(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}

View File

@ -19,8 +19,6 @@ import {
SimpleChanges,
ViewChild,
} from "@angular/core";
// import forEach from 'lodash/foreach';
import {
NG_ASYNC_VALIDATORS,
NG_VALIDATORS,
@ -36,31 +34,28 @@ import {
import {
AsyncValidatorArray,
coerceBooleanProperty,
DateValidator, EnabledRangeService,
FormTouchService,
I18n,
INbpInput,
NbpFormContainerComponent,
NbpInputElementBase,
NbpStyle,
ValidatorArray,
WidgetMode,
} from "@isp/xdce-widget/base";
import {
DateValidator, EnabledRangeService, I18n,
NbpCalendarPattern,
NbpCalendarPosition,
NbpDatepickerConfiguration,
NbpDatepickerItI18n,
NbpDateSeparator,
NbpFormContainerComponent,
NbpInputElementBase,
NbpItDateParserFormatter,
NbpStyle,
NgbDate,
NgbDateParserFormatter,
NgbDatepickerI18n,
NgbDateStruct,
NgbInputDatepicker,
ValidatorArray,
WidgetMode,
} from "@isp/xdce-widget";
import { TranslateService } from "@ngx-translate/core";
import { NgbFidInputDatepicker } from "./@ng-bootstrap/datepicker/datepicker-input";
/**
@ -412,8 +407,8 @@ export class NbpCalendarGenericComponentA11Y
this._tax = value ? value : this._tax;
}
@ViewChild("rplCalendar", { read: NgbInputDatepicker })
rplCalendar: NgbInputDatepicker;
@ViewChild("rplCalendar", { read: NgbFidInputDatepicker })
rplCalendar: NgbFidInputDatepicker;
@ViewChild(NgModel) model: NgModel;
/**

View File

@ -17,8 +17,6 @@ import {
SimpleChanges,
ViewChild,
} from "@angular/core";
// import forEach from 'lodash/foreach';
import {
NG_ASYNC_VALIDATORS,
NG_VALIDATORS,
@ -26,41 +24,24 @@ import {
NgControl,
NgModel,
} from "@angular/forms";
import { coerceBooleanProperty } from "@isp/xdce-widget/base";
import { Observable } from "rxjs";
import {
EventManager,
ApplicationContextManagerInterface,
APPLICATION_CONTEXT_MANAGER,
SESSION_MANAGER,
ApplicationContextManagerInterface,
EventManager
} from "@isp/xdce-arch-core-base";
import {
NbpFormContainerComponent,
AsyncValidatorArray,
ValidatorArray,
FormTouchService,
NbpStyle,
WidgetMode,
NbpInputElementBase,
INbpInput,
} from "@isp/xdce-widget/base";
import { EnabledRangeService, NgbDate, NgbDateParserFormatterNOA11Y, NgbDatepickerI18nNOA11Y, NgbDateStruct, NgbInputDatepickerNOA11Y } from "@isp/xdce-widget";
import { DateValidator } from "@isp/xdce-widget";
import {
AsyncValidatorArray, coerceBooleanProperty, DateValidator, EnabledRangeService, FormTouchService,
I18nNOA11Y,
NbpDatepickerConfigurationNOA11Y,
NbpDatepickerItI18nNOA11Y,
INbpInput, NbpCalendarPattern,
NbpCalendarPosition, NbpDatepickerConfigurationNOA11Y,
NbpDatepickerItI18nNOA11Y, NbpDateSeparator, NbpFormContainerComponent,
NbpInputElementBase,
NbpItDateParserFormatterNOA11Y,
NbpStyle, NgbDate, NgbDateParserFormatterNOA11Y, NgbDatepickerI18nNOA11Y, NgbDateStruct, ValidatorArray,
WidgetMode
} from "@isp/xdce-widget";
import {
NbpCalendarPattern,
NbpCalendarPosition,
NbpDateSeparator,
} from "@isp/xdce-widget";
import { Observable } from "rxjs";
import { NgbFidInputDatepickerNOA11Y } from "./@ng-bootstrap-noa11y/datepicker/datepicker-input";
/**
@ -108,8 +89,7 @@ let nextId = 0;
})
export class NbpCalendarGenericComponentNOA11Y
extends NbpInputElementBase<any>
implements INbpInput, AfterViewInit, OnDestroy
{
implements INbpInput, AfterViewInit, OnDestroy {
/**
* (opzionale ) Boolean for keeping the value of the date
* when the input is disabled
@ -385,8 +365,8 @@ export class NbpCalendarGenericComponentNOA11Y
this._tax = value ? value : this._tax;
}
@ViewChild("rplCalendar", { read: NgbInputDatepickerNOA11Y })
rplCalendar: NgbInputDatepickerNOA11Y;
@ViewChild("rplCalendar", { read: NgbFidInputDatepickerNOA11Y })
rplCalendar: NgbFidInputDatepickerNOA11Y;
@ViewChild(NgModel) model: NgModel;
/**
@ -740,10 +720,10 @@ export class NbpCalendarGenericComponentNOA11Y
private parseDateStructFromDate(value: Date) {
return value && value instanceof Date
? {
day: value.getDate(),
month: value.getMonth() + 1,
year: value.getFullYear(),
}
day: value.getDate(),
month: value.getMonth() + 1,
year: value.getFullYear(),
}
: value;
}

View File

@ -6,7 +6,7 @@ import { NG_ASYNC_VALIDATORS, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/
import { AsyncValidatorArray, FormTouchService, NbpFormContainerComponent, NbpInputElementBase, NbpInputElementBaseComponentA11YWrapper, NbpStyle, ValidatorArray } from '@isp/xdce-widget/base';
import { APPLICATION_CONTEXT_MANAGER, ApplicationContextManagerInterface, EventManager } from '@isp/xdce-arch-core-base';
import { EnabledRangeService, NbpCalendarGenericComponent, NbpCalendarPattern, NbpDateSeparator, NgbDateStruct } from '@isp/xdce-widget';
import { EnabledRangeService, NbpCalendarPattern, NbpDateSeparator, NgbDateStruct } from '@isp/xdce-widget';
import { NbpCalendarGenericComponentA11Y } from './nbp-calendar-generic.component.a11y';
import { NbpCalendarGenericComponentNOA11Y } from './nbp-calendar-generic.component.noa11y';
@ -14,13 +14,13 @@ import { NbpCalendarGenericComponentNOA11Y } from './nbp-calendar-generic.compon
export const NBP_CALENDAR_CONTROL_VALUE_ACCESSOR: any = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => NbpCalendarGenericComponent), // un riferimento al futuro componente corrente
useExisting: forwardRef(() => NbpFidCalendarGeneric), // un riferimento al futuro componente corrente
multi: true
};
export const NBP_INPUT_CALENDAR_ELEMENT_BASE: any = {
provide: NbpInputElementBase,
useExisting: forwardRef(() => NbpCalendarGenericComponent), // un riferimento al futuro componente corrente
useExisting: forwardRef(() => NbpFidCalendarGeneric), // un riferimento al futuro componente corrente
multi: true
};