ng-inail-common 2.0.30-beta.2 → 2.0.30-beta.6

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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/internal-compatibility'), require('@angular/forms'), require('@angular/common'), require('@angular/common/http'), require('@angular/platform-browser'), require('rxjs/operators'), require('@angular/router'), require('rxjs'), require('@lib-ng-inail-common-components/core/base.component')) :
3
- typeof define === 'function' && define.amd ? define('ng-inail-common', ['exports', '@angular/core', 'rxjs/internal-compatibility', '@angular/forms', '@angular/common', '@angular/common/http', '@angular/platform-browser', 'rxjs/operators', '@angular/router', 'rxjs', '@lib-ng-inail-common-components/core/base.component'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['ng-inail-common'] = {}, global.ng.core, global.rxjs['internal-compatibility'], global.ng.forms, global.ng.common, global.ng.common.http, global.ng.platformBrowser, global.rxjs.operators, global.ng.router, global.rxjs, global.base_component));
5
- }(this, (function (exports, core, internalCompatibility, forms, common, http, platformBrowser, operators, router, rxjs, base_component) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/internal-compatibility'), require('@angular/forms'), require('@angular/common'), require('@angular/common/http'), require('@angular/platform-browser'), require('rxjs/operators'), require('@angular/router'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define('ng-inail-common', ['exports', '@angular/core', 'rxjs/internal-compatibility', '@angular/forms', '@angular/common', '@angular/common/http', '@angular/platform-browser', 'rxjs/operators', '@angular/router', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['ng-inail-common'] = {}, global.ng.core, global.rxjs['internal-compatibility'], global.ng.forms, global.ng.common, global.ng.common.http, global.ng.platformBrowser, global.rxjs.operators, global.ng.router, global.rxjs));
5
+ }(this, (function (exports, core, internalCompatibility, forms, common, http, platformBrowser, operators, router, rxjs) { 'use strict';
6
6
 
7
7
  var isBlankOrNull = function (s) { return s == undefined || String(s).trim().length == 0; };
8
8
  var isNotBlankOrNull = function (s) { return !isBlankOrNull(s); };
@@ -1642,30 +1642,30 @@
1642
1642
  * quando la proprieta linkRegex matcha
1643
1643
  * con l'url corrente
1644
1644
  */
1645
- _this.disableLinkOverwriting = base_component.getConfigValue((_b = (_a = _this.libConfig) === null || _a === void 0 ? void 0 : _a.menuComponent) === null || _b === void 0 ? void 0 : _b.disableLinkOverwriting, false);
1645
+ _this.disableLinkOverwriting = getConfigValue((_b = (_a = _this.libConfig) === null || _a === void 0 ? void 0 : _a.menuComponent) === null || _b === void 0 ? void 0 : _b.disableLinkOverwriting, false);
1646
1646
  /**
1647
1647
  * Se true indica che le voci del menu sono collassabili.
1648
1648
  * Questa impostazione viene sovrascritta se specificato diversamente
1649
1649
  * negli elementi del menu
1650
1650
  */
1651
- _this.collapsible = base_component.getConfigValue((_d = (_c = _this.libConfig) === null || _c === void 0 ? void 0 : _c.menuComponent) === null || _d === void 0 ? void 0 : _d.collapsible, false);
1651
+ _this.collapsible = getConfigValue((_d = (_c = _this.libConfig) === null || _c === void 0 ? void 0 : _c.menuComponent) === null || _d === void 0 ? void 0 : _d.collapsible, false);
1652
1652
  /**
1653
1653
  * Indica lo stato iniziale del menu, se colassato o espanso.
1654
1654
  * Questa impostazione viene sovrascritta se specificato diversamente
1655
1655
  * negli elementi del menu
1656
1656
  */
1657
- _this.collapsed = base_component.getConfigValue((_f = (_e = _this.libConfig) === null || _e === void 0 ? void 0 : _e.menuComponent) === null || _f === void 0 ? void 0 : _f.collapsed, undefined);
1657
+ _this.collapsed = getConfigValue((_f = (_e = _this.libConfig) === null || _e === void 0 ? void 0 : _e.menuComponent) === null || _f === void 0 ? void 0 : _f.collapsed, undefined);
1658
1658
  /**
1659
1659
  * Se true abilita l'effetto fisarmonica
1660
1660
  * sulle voci di menu espandibili.
1661
1661
  */
1662
- _this.collapseOther = base_component.getConfigValue((_h = (_g = _this.libConfig) === null || _g === void 0 ? void 0 : _g.menuComponent) === null || _h === void 0 ? void 0 : _h.collapseOther, false);
1662
+ _this.collapseOther = getConfigValue((_h = (_g = _this.libConfig) === null || _g === void 0 ? void 0 : _g.menuComponent) === null || _h === void 0 ? void 0 : _h.collapseOther, false);
1663
1663
  /**
1664
1664
  * Se true espande automaticamente il percorso
1665
1665
  * verso un elemento
1666
1666
  * quando questo si riferisce all'url corrente
1667
1667
  */
1668
- _this.expandAutomatically = base_component.getConfigValue((_k = (_j = _this.libConfig) === null || _j === void 0 ? void 0 : _j.menuComponent) === null || _k === void 0 ? void 0 : _k.expandAutomatically, true);
1668
+ _this.expandAutomatically = getConfigValue((_k = (_j = _this.libConfig) === null || _j === void 0 ? void 0 : _j.menuComponent) === null || _k === void 0 ? void 0 : _k.expandAutomatically, true);
1669
1669
  /**
1670
1670
  * Emette la voce di menu selezionata.
1671
1671
  */
@@ -4155,6 +4155,8 @@
4155
4155
  if (changes.value && !changes.value.firstChange) {
4156
4156
  this.hasError = false;
4157
4157
  this.error = undefined;
4158
+ this.hasErrorChange.emit(this.hasError);
4159
+ this.errorChange.emit(this.error);
4158
4160
  }
4159
4161
  // Se cambiano le options o gli array delle date abilitate/disabilitate
4160
4162
  // reinizializzo il componente
@@ -5997,13 +5999,13 @@
5997
5999
  _this = _super.call(this, cdr, libConfig) || this;
5998
6000
  _this.cdr = cdr;
5999
6001
  _this.libConfig = libConfig;
6000
- _this.placeholder = base_component.getConfigValue((_b = (_a = _this.libConfig) === null || _a === void 0 ? void 0 : _a.inputFileComponent) === null || _b === void 0 ? void 0 : _b.placeholder, undefined);
6001
- _this.chooseButtonText = base_component.getConfigValue((_d = (_c = _this.libConfig) === null || _c === void 0 ? void 0 : _c.inputFileComponent) === null || _d === void 0 ? void 0 : _d.chooseButtonText, 'Scegli il file');
6002
- _this.addButtonText = base_component.getConfigValue((_f = (_e = _this.libConfig) === null || _e === void 0 ? void 0 : _e.inputFileComponent) === null || _f === void 0 ? void 0 : _f.addButtonText, 'Aggiungi');
6003
- _this.chooseButton = base_component.getConfigValue((_h = (_g = _this.libConfig) === null || _g === void 0 ? void 0 : _g.inputFileComponent) === null || _h === void 0 ? void 0 : _h.chooseButton, true);
6004
- _this.addButton = base_component.getConfigValue((_k = (_j = _this.libConfig) === null || _j === void 0 ? void 0 : _j.inputFileComponent) === null || _k === void 0 ? void 0 : _k.addButton, true);
6002
+ _this.placeholder = getConfigValue((_b = (_a = _this.libConfig) === null || _a === void 0 ? void 0 : _a.inputFileComponent) === null || _b === void 0 ? void 0 : _b.placeholder, undefined);
6003
+ _this.chooseButtonText = getConfigValue((_d = (_c = _this.libConfig) === null || _c === void 0 ? void 0 : _c.inputFileComponent) === null || _d === void 0 ? void 0 : _d.chooseButtonText, 'Scegli il file');
6004
+ _this.addButtonText = getConfigValue((_f = (_e = _this.libConfig) === null || _e === void 0 ? void 0 : _e.inputFileComponent) === null || _f === void 0 ? void 0 : _f.addButtonText, 'Aggiungi');
6005
+ _this.chooseButton = getConfigValue((_h = (_g = _this.libConfig) === null || _g === void 0 ? void 0 : _g.inputFileComponent) === null || _h === void 0 ? void 0 : _h.chooseButton, true);
6006
+ _this.addButton = getConfigValue((_k = (_j = _this.libConfig) === null || _j === void 0 ? void 0 : _j.inputFileComponent) === null || _k === void 0 ? void 0 : _k.addButton, true);
6005
6007
  /** Estensioni accettate separate da virgola (esempio: ".pdf, .txt, .doc") */
6006
- _this.accept = base_component.getConfigValue((_m = (_l = _this.libConfig) === null || _l === void 0 ? void 0 : _l.inputFileComponent) === null || _m === void 0 ? void 0 : _m.accept, undefined);
6008
+ _this.accept = getConfigValue((_m = (_l = _this.libConfig) === null || _l === void 0 ? void 0 : _l.inputFileComponent) === null || _m === void 0 ? void 0 : _m.accept, undefined);
6007
6009
  _this.fileChange = new core.EventEmitter();
6008
6010
  _this.logPrefix = "[inail-input-file]";
6009
6011
  _super.prototype.overrideConfig.call(_this, libConfig === null || libConfig === void 0 ? void 0 : libConfig.inputFileComponent);
@@ -6756,6 +6758,169 @@
6756
6758
  sort: [{ type: core.Input }]
6757
6759
  };
6758
6760
 
6761
+ var HM_PLACEHOLDER = 'HH:MM';
6762
+ var HMS_PLACEHOLDER = 'HH:MM:SS';
6763
+ var ACCEPTED_INPUTS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'Backspace', 'Delete'];
6764
+ var InputTimeComponent = /** @class */ (function (_super) {
6765
+ __extends(InputTimeComponent, _super);
6766
+ function InputTimeComponent(cdr, libConfig) {
6767
+ var _this = this;
6768
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
6769
+ _this = _super.call(this, cdr, libConfig) || this;
6770
+ _this.cdr = cdr;
6771
+ _this.libConfig = libConfig;
6772
+ _this.timeHMRegex = new RegExp(/^((([01][0-9])|([2][0-3]))[:]([0-5][0-9])$)/gm);
6773
+ _this.timeHMSRegex = new RegExp(/^((([01][0-9])|([2][0-3]))[:]([0-5][0-9])[:]([0-5][0-9])$)/gm);
6774
+ _this.validInputRegx = new RegExp(/^([0-9]+[0-9:]*)$/gm);
6775
+ _this.nativeInputTypeTime = getConfigValue((_b = (_a = _this.libConfig) === null || _a === void 0 ? void 0 : _a.inputTimeComponent) === null || _b === void 0 ? void 0 : _b.nativeInputTypeTime, false);
6776
+ _this.withSeconds = getConfigValue((_d = (_c = _this.libConfig) === null || _c === void 0 ? void 0 : _c.inputTimeComponent) === null || _d === void 0 ? void 0 : _d.withSeconds, false);
6777
+ _this.selfValidation = getConfigValue((_f = (_e = _this.libConfig) === null || _e === void 0 ? void 0 : _e.inputTimeComponent) === null || _f === void 0 ? void 0 : _f.selfValidation, true);
6778
+ _this.selfValidationError = getConfigValue((_h = (_g = _this.libConfig) === null || _g === void 0 ? void 0 : _g.inputTimeComponent) === null || _h === void 0 ? void 0 : _h.selfValidationError, 'Orario non valido');
6779
+ _this.step = getConfigValue((_k = (_j = _this.libConfig) === null || _j === void 0 ? void 0 : _j.inputTimeComponent) === null || _k === void 0 ? void 0 : _k.step, undefined);
6780
+ _this.valueChange = new core.EventEmitter();
6781
+ _this.preventPasting = getConfigValue((_m = (_l = _this.libConfig) === null || _l === void 0 ? void 0 : _l.inputTimeComponent) === null || _m === void 0 ? void 0 : _m.preventPasting, false);
6782
+ _this.getType = function () { return _this.nativeInputTypeTime ? 'time' : 'text'; };
6783
+ _this.getStep = function () { return _this.nativeInputTypeTime ? _this.step : undefined; };
6784
+ _this.getMaxLength = function () { return _this.nativeInputTypeTime ? undefined : (_this.withSeconds ? 8 : 5); };
6785
+ _this.isBefore2Points = function (value) { return (value === null || value === void 0 ? void 0 : value.length) == 2 || (_this.withSeconds == true && (value === null || value === void 0 ? void 0 : value.length) == 5); };
6786
+ _this.isValidValue = function (value) { return _this.withSeconds ? _this.timeHMSRegex.test(value) : _this.timeHMRegex.test(value); };
6787
+ _this.isValidInput = function (value) { return _this.validInputRegx.test(value); };
6788
+ _this.logPrefix = "[inail-input-time]";
6789
+ _this.emitDebug('NgInailCommonConfig:');
6790
+ _this.emitDebug((_o = _this.libConfig) === null || _o === void 0 ? void 0 : _o.inputTimeComponent);
6791
+ _super.prototype.overrideConfig.call(_this, (_p = _this.libConfig) === null || _p === void 0 ? void 0 : _p.inputTimeComponent);
6792
+ _this.detach();
6793
+ return _this;
6794
+ }
6795
+ InputTimeComponent.prototype.ngOnChanges = function (changes) {
6796
+ var _a, _b, _c;
6797
+ _super.prototype.ngOnChanges.call(this, changes);
6798
+ if (((_a = changes === null || changes === void 0 ? void 0 : changes.withSeconds) === null || _a === void 0 ? void 0 : _a.currentValue) != undefined) {
6799
+ this.placeholder = getConfigValue((_c = (_b = this.libConfig) === null || _b === void 0 ? void 0 : _b.inputTimeComponent) === null || _c === void 0 ? void 0 : _c.placeholder, this.withSeconds ? HMS_PLACEHOLDER : HM_PLACEHOLDER);
6800
+ }
6801
+ this.placeholder = this.getNotBlankValue(this.placeholder);
6802
+ this.cdr.detectChanges();
6803
+ };
6804
+ InputTimeComponent.prototype.ngOnInit = function () {
6805
+ var _this = this;
6806
+ _super.prototype.ngOnInit.call(this);
6807
+ this.emitDebug("@ViewChild('formControl')");
6808
+ this.emitDebug(this.formControlElement);
6809
+ if (this.focus) {
6810
+ this.push(this.focus.subscribe(function (scroll) {
6811
+ _this.emitDebug("Catch focus!");
6812
+ setFocus(_this.formControlElement.nativeElement, scroll);
6813
+ }));
6814
+ }
6815
+ };
6816
+ InputTimeComponent.prototype.ngAfterViewInit = function () {
6817
+ };
6818
+ Object.defineProperty(InputTimeComponent.prototype, "value", {
6819
+ get: function () {
6820
+ return this.inputValue;
6821
+ },
6822
+ set: function (value) {
6823
+ this.emitDebug("@Input set value: " + this.inputValue + " -> " + value);
6824
+ this.setValue(value);
6825
+ },
6826
+ enumerable: false,
6827
+ configurable: true
6828
+ });
6829
+ InputTimeComponent.prototype.writeValue = function (value) {
6830
+ this.emitDebug("writeValue: " + value);
6831
+ this.setValue(value);
6832
+ };
6833
+ InputTimeComponent.prototype.setValue = function (value) {
6834
+ this.emitDebug("setValue: " + value);
6835
+ if (this.inputValue != value) {
6836
+ this.emitDebug("update value: " + this.inputValue + " -> " + value);
6837
+ if (!this.nativeInputTypeTime) {
6838
+ value = this.bonificaValore(value);
6839
+ this.inputValue = this.isBefore2Points(value) ? value + ":" : value;
6840
+ if (isNotBlankOrNull(this.inputValue) && this.selfValidation && !this.isValidValue(this.inputValue)) {
6841
+ this.setDescError(this.selfValidationError);
6842
+ }
6843
+ else {
6844
+ this.cleanError();
6845
+ }
6846
+ }
6847
+ else {
6848
+ this.inputValue = value;
6849
+ this.cleanError();
6850
+ }
6851
+ this.cdr.detectChanges();
6852
+ this.emitDebug("this.valueChange.emit(" + this.inputValue + ")");
6853
+ this.valueChange.emit(this.inputValue);
6854
+ if (this.onChange) {
6855
+ this.onChange(value);
6856
+ }
6857
+ }
6858
+ };
6859
+ InputTimeComponent.prototype.bonificaValore = function (value) {
6860
+ var valoreBonificato = undefined;
6861
+ if (value != undefined) {
6862
+ var parti = value.replace(/([:]{2,})/g, ':').split(':');
6863
+ if (parti[0] != undefined && parti[0] == '24') {
6864
+ parti[0] = '00';
6865
+ }
6866
+ if (parti[1] != undefined && parti[1] == '60') {
6867
+ parti[1] = '00';
6868
+ }
6869
+ if (parti[2] != undefined && parti[2] == '60') {
6870
+ parti[2] = '00';
6871
+ }
6872
+ valoreBonificato = parti.join(':');
6873
+ }
6874
+ return valoreBonificato;
6875
+ };
6876
+ InputTimeComponent.prototype.onPaste = function ($event) {
6877
+ if (this.preventPasting === true) {
6878
+ $event.preventDefault();
6879
+ }
6880
+ };
6881
+ InputTimeComponent.prototype.onKeyDown = function (ev) {
6882
+ if (!ACCEPTED_INPUTS.some(function (v) { return v === ev.key; }) && ev.ctrlKey == false) {
6883
+ ev.preventDefault();
6884
+ }
6885
+ };
6886
+ InputTimeComponent.prototype.ngOnDestroy = function () {
6887
+ _super.prototype.ngOnDestroy.call(this);
6888
+ };
6889
+ return InputTimeComponent;
6890
+ }(FormElementComponent));
6891
+ InputTimeComponent.decorators = [
6892
+ { type: core.Component, args: [{
6893
+ selector: 'inail-input-time',
6894
+ template: "<div class=\"form-group {{getResponsiveClass()}} noPaddingLeft {{class}} inail-input-time\"\n [ngClass]=\"{'has-error': isThereError()}\">\n <label *ngIf=\"label\"\n class=\"control-label {{labelClass}}\"\n [ngClass]=\"{'sr-only': hiddenLabel}\"\n [attr.title]=\"labelTitle\"\n [for]=\"id\"\n [innerHTML]=\"getLabel()\"></label>\n <span *ngIf=\"showPopover()\"\n [style.padding-left.px]=\"5\">\n <inail-popover [iconClass]=\"popoverButtonIcon\"\n [buttonTitle]=\"popoverButtonTitle\"\n [header]=\"popoverHeader\"\n [content]=\"popoverContent\">\n </inail-popover>\n </span>\n <div class=\"form-control-wrapper\"\n [ngClass]=\"{'no-label' : hiddenLabel || !label}\">\n <input #formControl\n [id]=\"id\"\n [attr.type]=\"getType()\"\n [attr.step]=\"getStep()\"\n class=\"form-control {{inputClass}}\"\n [ngClass]=\"{'disabled': disabled}\"\n [attr.name]=\"name\"\n [attr.title]=\"title\"\n [attr.maxlength]=\"getMaxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-required]=\"required === true ? true : undefined\"\n [attr.aria-invalid]=\"isThereError() === true ? true : undefined\"\n [attr.aria-describedBy]=\"getAriaDescribedBy()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n (paste)=\"onPaste($event)\"\n (keyup.enter)=\"enterUp.emit()\"\n [(ngModel)]=\"value\">\n </div>\n <div *ngIf=\"showError()\" [id]=\"id+'-description'\">\n <div class=\"msg msg-errore\">\n <strong [innerHTML]=\"'ERRORE: '+this.error\"></strong>\n </div>\n <div *ngIf=\"description\" [innerHTML]=\"this.description\"></div>\n </div>\n <div *ngIf=\"description && !showError()\"\n [id]=\"id+'-description'\"\n [innerHTML]=\"this.description\">\n </div>\n <debug-pre *ngIf=\"showState\">\n <state-propertie [label]=\"'id'\" [propertie]=\"id\"></state-propertie>\n <state-propertie [label]=\"'label'\" [propertie]=\"label\"></state-propertie>\n <state-propertie [label]=\"'inputValue'\" [propertie]=\"inputValue\"></state-propertie>\n <state-propertie [label]=\"'placeholder'\" [propertie]=\"placeholder\" [hideIfNull]=\"false\"></state-propertie>\n <inail-form-element-state-properties [formElement]=\"this\"></inail-form-element-state-properties>\n </debug-pre>\n</div>\n",
6895
+ changeDetection: CHANGE_DETECTION_STRATEGY,
6896
+ encapsulation: core.ViewEncapsulation.None,
6897
+ providers: [
6898
+ {
6899
+ provide: forms.NG_VALUE_ACCESSOR,
6900
+ useExisting: core.forwardRef(function () { return InputTimeComponent; }),
6901
+ multi: true
6902
+ }
6903
+ ],
6904
+ styles: [".inail-input-time .form-control-wrapper:after{font-family:FontAwesome;content:\"\\f017\";right:30px;position:absolute;top:30px;font-size:17px}.inail-input-time input[type=time]{padding-right:33px}.inail-input-time .form-control-wrapper.no-label:after{top:11px}"]
6905
+ },] }
6906
+ ];
6907
+ InputTimeComponent.ctorParameters = function () { return [
6908
+ { type: core.ChangeDetectorRef },
6909
+ { type: undefined, decorators: [{ type: core.Inject, args: [NG_INAIL_COMMON_CONFIG,] }] }
6910
+ ]; };
6911
+ InputTimeComponent.propDecorators = {
6912
+ formControlElement: [{ type: core.ViewChild, args: ['formControl', { static: true },] }],
6913
+ nativeInputTypeTime: [{ type: core.Input }],
6914
+ withSeconds: [{ type: core.Input }],
6915
+ selfValidation: [{ type: core.Input }],
6916
+ selfValidationError: [{ type: core.Input }],
6917
+ step: [{ type: core.Input }],
6918
+ placeholder: [{ type: core.Input }],
6919
+ valueChange: [{ type: core.Output }],
6920
+ preventPasting: [{ type: core.Input }],
6921
+ value: [{ type: core.Input }]
6922
+ };
6923
+
6759
6924
  var NgInailCommonModule = /** @class */ (function () {
6760
6925
  function NgInailCommonModule() {
6761
6926
  }
@@ -6822,7 +6987,8 @@
6822
6987
  ContainerComponent,
6823
6988
  TrCheckboxComponent,
6824
6989
  ProgressBarComponent,
6825
- MultiSelectComponent
6990
+ MultiSelectComponent,
6991
+ InputTimeComponent
6826
6992
  ],
6827
6993
  imports: [
6828
6994
  common.CommonModule,
@@ -6872,7 +7038,8 @@
6872
7038
  ContainerComponent,
6873
7039
  TrCheckboxComponent,
6874
7040
  ProgressBarComponent,
6875
- MultiSelectComponent
7041
+ MultiSelectComponent,
7042
+ InputTimeComponent
6876
7043
  ],
6877
7044
  providers: [common.DatePipe]
6878
7045
  },] }
@@ -6909,6 +7076,7 @@
6909
7076
  exports.InputFileComponent = InputFileComponent;
6910
7077
  exports.InputNumberComponent = InputNumberComponent;
6911
7078
  exports.InputTextComponent = InputTextComponent;
7079
+ exports.InputTimeComponent = InputTimeComponent;
6912
7080
  exports.LoaderComponent = LoaderComponent;
6913
7081
  exports.MenuComponent = MenuComponent;
6914
7082
  exports.MenuIntranetComponent = MenuIntranetComponent;