@bnsights/bbsf-controls 1.0.193 → 1.0.194-beta.0

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 (111) hide show
  1. package/README.md +331 -0
  2. package/esm2022/lib/Shared/Components/app-base-component.mjs +3 -3
  3. package/esm2022/lib/Shared/Components/ng-tag-input.mjs +12 -7
  4. package/esm2022/lib/Shared/Directives/appPreventDoubleClick.directive.mjs +3 -2
  5. package/esm2022/lib/Shared/Directives/template-name.directive.mjs +4 -3
  6. package/esm2022/lib/Shared/Models/DatePickerOptions.mjs +4 -4
  7. package/esm2022/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +4 -3
  8. package/esm2022/lib/Shared/Pipes/bbsf-date.pipe.mjs +4 -3
  9. package/esm2022/lib/Shared/default_intl.mjs +2 -2
  10. package/esm2022/lib/Shared/services/ControlUtility.mjs +2 -2
  11. package/esm2022/lib/Shared/services/file-upload.service.mjs +3 -3
  12. package/esm2022/lib/Shared/services/validationErrorMassage.service.mjs +2 -2
  13. package/esm2022/lib/Shared/utils/date-formatter.mjs +48 -0
  14. package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +24 -16
  15. package/esm2022/lib/controls/Calendar/Calendar.component.mjs +19 -12
  16. package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +14 -10
  17. package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +8 -5
  18. package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +21 -14
  19. package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +12 -6
  20. package/esm2022/lib/controls/FileUpload/FileUpload.component.mjs +15 -7
  21. package/esm2022/lib/controls/Form/Form.component.mjs +22 -6
  22. package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +14 -9
  23. package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +17 -9
  24. package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +22 -13
  25. package/esm2022/lib/controls/MarkdownEditor/markdown-editor.component.mjs +16 -8
  26. package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +14 -9
  27. package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +12 -7
  28. package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +18 -12
  29. package/esm2022/lib/controls/Paging/JwPagination.component.mjs +8 -4
  30. package/esm2022/lib/controls/Paging/Paging.component.mjs +25 -12
  31. package/esm2022/lib/controls/Phone/Phone.component.mjs +14 -9
  32. package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +17 -9
  33. package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +10 -6
  34. package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +13 -14
  35. package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +13 -7
  36. package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +6 -4
  37. package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +5 -4
  38. package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +13 -7
  39. package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +19 -14
  40. package/esm2022/lib/controls/TextArea/TextArea.component.mjs +20 -12
  41. package/esm2022/lib/controls/TextBox/TextBox.component.mjs +16 -10
  42. package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +13 -7
  43. package/esm2022/lib/controls/bbsf-controls.module.mjs +70 -333
  44. package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +15 -11
  45. package/esm2022/lib/modules/bbsf-core.module.mjs +210 -0
  46. package/esm2022/lib/modules/bbsf-datetime.module.mjs +90 -0
  47. package/esm2022/lib/modules/bbsf-dropdown.module.mjs +57 -0
  48. package/esm2022/lib/modules/bbsf-editors.module.mjs +97 -0
  49. package/esm2022/lib/modules/bbsf-forms-basic.module.mjs +79 -0
  50. package/esm2022/lib/modules/bbsf-multilingual.module.mjs +60 -0
  51. package/esm2022/lib/modules/bbsf-phone.module.mjs +57 -0
  52. package/esm2022/lib/modules/bbsf-specialized.module.mjs +160 -0
  53. package/esm2022/lib/modules/bbsf-uploads.module.mjs +106 -0
  54. package/esm2022/lib/modules/bbsf-utility.module.mjs +103 -0
  55. package/esm2022/public-api.mjs +38 -2
  56. package/fesm2022/bnsights-bbsf-controls.mjs +8673 -7750
  57. package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
  58. package/lib/Shared/Components/app-base-component.d.ts +2 -2
  59. package/lib/Shared/Components/ng-tag-input.d.ts +2 -3
  60. package/lib/Shared/Directives/appPreventDoubleClick.directive.d.ts +1 -1
  61. package/lib/Shared/Directives/template-name.directive.d.ts +1 -1
  62. package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +1 -1
  63. package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +1 -1
  64. package/lib/Shared/default_intl.d.ts +1 -1
  65. package/lib/Shared/services/ControlUtility.d.ts +1 -1
  66. package/lib/Shared/services/file-upload.service.d.ts +1 -1
  67. package/lib/Shared/services/validationErrorMassage.service.d.ts +1 -1
  68. package/lib/Shared/utils/date-formatter.d.ts +23 -0
  69. package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +5 -4
  70. package/lib/controls/Calendar/Calendar.component.d.ts +5 -4
  71. package/lib/controls/CheckBox/CheckBox.component.d.ts +3 -2
  72. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +2 -2
  73. package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +3 -3
  74. package/lib/controls/DropdownList/DropdownList.component.d.ts +2 -2
  75. package/lib/controls/FileUpload/FileUpload.component.d.ts +3 -4
  76. package/lib/controls/Form/Form.component.d.ts +2 -2
  77. package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +3 -3
  78. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +4 -4
  79. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +5 -4
  80. package/lib/controls/MarkdownEditor/markdown-editor.component.d.ts +2 -2
  81. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +3 -3
  82. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +2 -2
  83. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +3 -2
  84. package/lib/controls/Paging/JwPagination.component.d.ts +1 -1
  85. package/lib/controls/Paging/Paging.component.d.ts +5 -4
  86. package/lib/controls/Phone/Phone.component.d.ts +2 -2
  87. package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +3 -3
  88. package/lib/controls/RadioButton/RadioButton.component.d.ts +2 -2
  89. package/lib/controls/Recaptcha/Recaptcha.component.d.ts +3 -2
  90. package/lib/controls/Repeater/repeater/repeater.component.d.ts +1 -1
  91. package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +1 -1
  92. package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +1 -1
  93. package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +2 -2
  94. package/lib/controls/TagsInput/TagsInput.component.d.ts +5 -4
  95. package/lib/controls/TextArea/TextArea.component.d.ts +3 -2
  96. package/lib/controls/TextBox/TextBox.component.d.ts +2 -2
  97. package/lib/controls/Toggleslide/Toggleslide.component.d.ts +2 -2
  98. package/lib/controls/bbsf-controls.module.d.ts +35 -66
  99. package/lib/controls/page-header-component/page-header-component.component.d.ts +2 -2
  100. package/lib/modules/bbsf-core.module.d.ts +90 -0
  101. package/lib/modules/bbsf-datetime.module.d.ts +41 -0
  102. package/lib/modules/bbsf-dropdown.module.d.ts +33 -0
  103. package/lib/modules/bbsf-editors.module.d.ts +47 -0
  104. package/lib/modules/bbsf-forms-basic.module.d.ts +35 -0
  105. package/lib/modules/bbsf-multilingual.module.d.ts +31 -0
  106. package/lib/modules/bbsf-phone.module.d.ts +33 -0
  107. package/lib/modules/bbsf-specialized.module.d.ts +63 -0
  108. package/lib/modules/bbsf-uploads.module.d.ts +50 -0
  109. package/lib/modules/bbsf-utility.module.d.ts +45 -0
  110. package/package.json +2 -13
  111. package/public-api.d.ts +12 -0
@@ -1,17 +1,15 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
5
+ import { InlineSVGModule } from 'ng-inline-svg-2';
2
6
  import { DataType } from '../../Shared/Enums/Enums';
3
7
  import * as i0 from "@angular/core";
4
8
  import * as i1 from "@angular/router";
5
- import * as i2 from "@bnsights/bbsf-utilities";
9
+ import * as i2 from "@bnsights/bbsf-utilities/ui";
6
10
  import * as i3 from "@angular/common";
7
11
  import * as i4 from "@ng-bootstrap/ng-bootstrap";
8
12
  import * as i5 from "ng-inline-svg-2";
9
- import * as i6 from "../DateTimePicker/DateTimePicker.component";
10
- import * as i7 from "../TextBox/TextBox.component";
11
- import * as i8 from "../DropdownList/DropdownList.component";
12
- import * as i9 from "../Toggleslide/Toggleslide.component";
13
- import * as i10 from "../TagsInput/TagsInput.component";
14
- import * as i11 from "../../Shared/Directives/appPreventDoubleClick.directive";
15
13
  export class PageHeaderComponentComponent {
16
14
  constructor(router, utilityService) {
17
15
  this.router = router;
@@ -25,14 +23,20 @@ export class PageHeaderComponentComponent {
25
23
  this.EN = this.utilityService.isCurrentLanguageEnglish();
26
24
  }
27
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageHeaderComponentComponent, deps: [{ token: i1.Router }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PageHeaderComponentComponent, selector: "bbsf-page-header-component", inputs: { group: "group", options: "options" }, ngImport: i0, template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\" />\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.titleKey||options.titleValue\">{{options.titleValue == null ? translate(options.titleKey) :\r\n options.titleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.listing\">\r\n {{translate(options.subTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.breadCrumb.active\">\r\n <ng-container *ngFor=\"let item of options.breadCrumb.breadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.dropDownActions.active\">\r\n <button [routerLink]=\"item.routerLink\" (click)='item.function?item.function():\"\"'\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\"\r\n *ngFor=\"let item of options.dropDownActions.dropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.svg\"></span>\r\n {{item.text}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.searchTextBox.active\" [options]=\"options.searchTextBox.textSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.gridView.active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.exportButton.active\" (click)=\"options.exportButton.function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.exportButton.buttonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.filtersButton.active\" ngbDropdown container=\"body\"\r\n [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.filtersButton.function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.filtersButton.buttonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.filters.showLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.filters.controlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\" (click)=\"options.filters.restFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\" (click)=\"options.filters.applyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.addButton.active\"\r\n (click)=\"options.addButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.addButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.editButton.active\"\r\n (click)=\"options.editButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.editButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.deleteButton.active\"\r\n (click)=\"options.deleteButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.deleteButton.buttonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--End toolbar-->", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i6.DateInputComponent, selector: "BBSF-DateTimePicker", inputs: ["group", "options", "DropdownTemplateVariable"], outputs: ["onChange"] }, { kind: "component", type: i7.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i8.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options", "DropdownTemplateVariable"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i9.ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i10.TagsInputComponent, selector: "BBSF-TagsInput", inputs: ["group", "name", "options", "DropdownTemplateVariable"], outputs: ["onChange"] }, { kind: "directive", type: i11.PreventDoubleClickDirective, selector: "[appPreventDoubleClick]", inputs: ["debounceTime"] }] }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PageHeaderComponentComponent, isStandalone: true, selector: "bbsf-page-header-component", inputs: { group: "group", options: "options" }, ngImport: i0, template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\" />\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.titleKey||options.titleValue\">{{options.titleValue == null ? translate(options.titleKey) :\r\n options.titleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.listing\">\r\n {{translate(options.subTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.breadCrumb.active\">\r\n <ng-container *ngFor=\"let item of options.breadCrumb.breadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.dropDownActions.active\">\r\n <button [routerLink]=\"item.routerLink\" (click)='item.function?item.function():\"\"'\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\"\r\n *ngFor=\"let item of options.dropDownActions.dropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.svg\"></span>\r\n {{item.text}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.searchTextBox.active\" [options]=\"options.searchTextBox.textSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.gridView.active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.exportButton.active\" (click)=\"options.exportButton.function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.exportButton.buttonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.filtersButton.active\" ngbDropdown container=\"body\"\r\n [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.filtersButton.function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.filtersButton.buttonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.filters.showLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.filters.controlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\" (click)=\"options.filters.restFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\" (click)=\"options.filters.applyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.addButton.active\"\r\n (click)=\"options.addButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.addButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.editButton.active\"\r\n (click)=\"options.editButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.editButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.deleteButton.active\"\r\n (click)=\"options.deleteButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.deleteButton.buttonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--End toolbar-->", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NgbModule }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "ngmodule", type: InlineSVGModule }, { kind: "directive", type: i5.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] }); }
29
27
  }
30
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageHeaderComponentComponent, decorators: [{
31
29
  type: Component,
32
- args: [{ selector: 'bbsf-page-header-component', template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\" />\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.titleKey||options.titleValue\">{{options.titleValue == null ? translate(options.titleKey) :\r\n options.titleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.listing\">\r\n {{translate(options.subTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.breadCrumb.active\">\r\n <ng-container *ngFor=\"let item of options.breadCrumb.breadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.dropDownActions.active\">\r\n <button [routerLink]=\"item.routerLink\" (click)='item.function?item.function():\"\"'\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\"\r\n *ngFor=\"let item of options.dropDownActions.dropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.svg\"></span>\r\n {{item.text}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.searchTextBox.active\" [options]=\"options.searchTextBox.textSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.gridView.active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.exportButton.active\" (click)=\"options.exportButton.function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.exportButton.buttonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.filtersButton.active\" ngbDropdown container=\"body\"\r\n [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.filtersButton.function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.filtersButton.buttonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.filters.showLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.filters.controlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\" (click)=\"options.filters.restFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\" (click)=\"options.filters.applyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.addButton.active\"\r\n (click)=\"options.addButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.addButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.editButton.active\"\r\n (click)=\"options.editButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.editButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.deleteButton.active\"\r\n (click)=\"options.deleteButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.deleteButton.buttonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--End toolbar-->" }]
30
+ args: [{ selector: 'bbsf-page-header-component', standalone: true, imports: [
31
+ CommonModule,
32
+ FormsModule,
33
+ ReactiveFormsModule,
34
+ NgbModule,
35
+ InlineSVGModule
36
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\" />\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.titleKey||options.titleValue\">{{options.titleValue == null ? translate(options.titleKey) :\r\n options.titleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.listing\">\r\n {{translate(options.subTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.breadCrumb.active\">\r\n <ng-container *ngFor=\"let item of options.breadCrumb.breadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.dropDownActions.active\">\r\n <button [routerLink]=\"item.routerLink\" (click)='item.function?item.function():\"\"'\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\"\r\n *ngFor=\"let item of options.dropDownActions.dropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.svg\"></span>\r\n {{item.text}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.searchTextBox.active\" [options]=\"options.searchTextBox.textSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.gridView.active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.exportButton.active\" (click)=\"options.exportButton.function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.exportButton.buttonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.filtersButton.active\" ngbDropdown container=\"body\"\r\n [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.filtersButton.function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.filtersButton.buttonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.filters.showLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.filters.controlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\" (click)=\"options.filters.restFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\" (click)=\"options.filters.applyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.addButton.active\"\r\n (click)=\"options.addButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.addButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.editButton.active\"\r\n (click)=\"options.editButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.editButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.deleteButton.active\"\r\n (click)=\"options.deleteButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.deleteButton.buttonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--End toolbar-->" }]
33
37
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.UtilityService }], propDecorators: { group: [{
34
38
  type: Input
35
39
  }], options: [{
36
40
  type: Input
37
41
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSW5FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1wRCxNQUFNLE9BQU8sNEJBQTRCO0lBT3ZDLFlBQW9CLE1BQWMsRUFBUyxjQUE4QjtRQUFyRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRmxFLGlCQUFZLEdBQUcsUUFBUSxDQUFDO0lBSS9CLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVztRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUMzRCxDQUFDOytHQWpCVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixrSENWekMseXVPQXFJa0I7OzRGRDNITCw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0UsNEJBQTRCO3dHQUs3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBQYWdlSGVhZGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvcGFnZS1oZWFkZXItb3B0aW9ucyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWhlYWRlci1jb21wb25lbnQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBFTjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFBhZ2VIZWFkZXJPcHRpb25zO1xyXG5cclxuICBwdWJsaWMgRGF0YVR5cGVFbnVtID0gRGF0YVR5cGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShrZXkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkVOID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUVuZ2xpc2goKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS10b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJ0b29sYmFyXCIgc3R5bGU9XCJvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7XCI+XHJcbiAgPGltZyBjbGFzcz1cInBhdHRlcm5cIiBzcmM9XCIuL3NyYy9hc3NldHMvaW1hZ2VzL0JnLXBhdHRlcm4ucG5nXCIgLz5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXh4bFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtdGl0bGUgdy0xMDBcIiBbbmdDbGFzc109XCIhb3B0aW9ucy5saXN0aW5nPyAnbWItMCcgOiAnJ1wiPlxyXG4gICAgICAgIDxoMyAqbmdJZj1cIm9wdGlvbnMudGl0bGVLZXl8fG9wdGlvbnMudGl0bGVWYWx1ZVwiPnt7b3B0aW9ucy50aXRsZVZhbHVlID09IG51bGwgPyB0cmFuc2xhdGUob3B0aW9ucy50aXRsZUtleSkgOlxyXG4gICAgICAgICAgb3B0aW9ucy50aXRsZVZhbHVlIH19PC9oMz5cclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10aXRsZVwiICpuZ0lmPVwib3B0aW9ucy5saXN0aW5nXCI+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLnN1YlRpdGxlS2V5KX19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJicmVhZGNydW1iIGJyZWFkY3J1bWItZG90XCIgKm5nSWY9XCJvcHRpb25zLmJyZWFkQ3J1bWIuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9ucy5icmVhZENydW1iLmJyZWFkQ3J1bWJJdGVtc1wiPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbVwiICpuZ0lmPVwiIWl0ZW0uYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIml0ZW0ucm91dGVcIiBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlXCI+e3sgaXRlbS5sYWJlbCB9fTwvYT5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWl0ZW0ucm91dGVcIiBocmVmPVwiamF2YXNjcmlwdDogdm9pZCgwKTtcIj57eyBpdGVtLmxhYmVsIH19PC9hPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIGFjdGl2ZVwiICpuZ0lmPVwiaXRlbS5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2Utc3ViaGVhZGVyXCIgKm5nSWY9XCJvcHRpb25zLmRyb3BEb3duQWN0aW9ucy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIiAoY2xpY2spPSdpdGVtLmZ1bmN0aW9uP2l0ZW0uZnVuY3Rpb24oKTpcIlwiJ1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gc3ViaGVhZGVyLWJ0biBleHBvcnQtYnRuXCJcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zLmRyb3BEb3duQWN0aW9ucy5kcm9wZG93bkFjdGlvbkl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCJpdGVtLnN2Z1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICB7e2l0ZW0udGV4dH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1zdWJoZWFkZXJcIj5cclxuICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cIm9wdGlvbnMuc2VhcmNoVGV4dEJveC5hY3RpdmVcIiBbb3B0aW9uc109XCJvcHRpb25zLnNlYXJjaFRleHRCb3gudGV4dFNlYXJjaEJveE9wdGlvbnNcIlxyXG4gICAgICAgIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyLWJ0biBsaXN0LWdyaWRcIiAqbmdJZj1cIm9wdGlvbnMuZ3JpZFZpZXcuYWN0aXZlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncmlkLWl0ZW1cIiBbbmdDbGFzc109XCJvcHRpb25zLmdyaWRWaWV3LnNob3dHcmlkVmlld0J5RGVmYXVsdD8gJ2xpc3QtZ3JpZC1pdGVtLWFjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcHRpb25zLmdyaWRWaWV3LnRvZ2dsZUZ1bmN0aW9uKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvTGlzdGluZy5zdmcnXCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JpZC1pdGVtXCIgW25nQ2xhc3NdPVwiIW9wdGlvbnMuZ3JpZFZpZXcuc2hvd0dyaWRWaWV3QnlEZWZhdWx0PyAnbGlzdC1ncmlkLWl0ZW0tYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuZ3JpZFZpZXcudG9nZ2xlRnVuY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9HcmlkLnN2ZydcIj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmV4cG9ydEJ1dHRvbi5hY3RpdmVcIiAoY2xpY2spPVwib3B0aW9ucy5leHBvcnRCdXR0b24uZnVuY3Rpb24oKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHN1YmhlYWRlci1idG4gZXhwb3J0LWJ0blwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi01XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLmV4cG9ydEJ1dHRvbi5idXR0b25UZXh0S2V5KX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9ucy5maWx0ZXJzQnV0dG9uLmFjdGl2ZVwiIG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgW3BsYWNlbWVudF09XCJFTiA/ICdib3R0b20tcmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiICNkcm9wZG93bj1cIm5nYkRyb3Bkb3duXCIgY2xhc3M9XCJzdWJoZWFkZXItYnRuXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwib3B0aW9ucy5maWx0ZXJzQnV0dG9uLmZ1bmN0aW9uKClcIiBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIGZpbHRlcnMtYnRuXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNVwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2Fycm93ZHJvcGRvd24uc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAge3t0cmFuc2xhdGUob3B0aW9ucy5maWx0ZXJzQnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgY2xhc3M9XCJkcm9wZG93bi1tZW51LWN1c3RvbSBmaWx0ZXJzLWRyb3Bkb3duXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPVwib3B0aW9ucy5maWx0ZXJzLnNob3dMb2FkaW5nSW5GaWx0ZXJzQm94XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIG9wdGlvbnMuZmlsdGVycy5jb250cm9sc09wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3dpdGNoXT1cImNvbnRyb2wua2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5TaW5nbGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLk11bGlwbGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLkRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURhdGVUaW1lUGlja2VyIFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1EYXRlVGltZVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5EYXRlVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRGF0ZVRpbWVQaWNrZXIgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLURhdGVUaW1lUGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLlRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURhdGVUaW1lUGlja2VyIFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1EYXRlVGltZVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5Cb29sZWFuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UYWdzSW5wdXQgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRhZ3NJbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudS1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHRcIiAoY2xpY2spPVwib3B0aW9ucy5maWx0ZXJzLnJlc3RGdW5jdGlvbihkcm9wZG93bilcIj5cclxuICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUoXCJSZXNldFwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbVwiIChjbGljayk9XCJvcHRpb25zLmZpbHRlcnMuYXBwbHlGdW5jdGlvbihkcm9wZG93bilcIj5cclxuICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUoXCJBcHBseVwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmFkZEJ1dHRvbi5hY3RpdmVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuYWRkQnV0dG9uLmZ1bmN0aW9uKClcIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuYWRkQnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmVkaXRCdXR0b24uYWN0aXZlXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcHRpb25zLmVkaXRCdXR0b24uZnVuY3Rpb24oKVwiIGNsYXNzPVwiYnRuIGJ0bi1icmFuZCBidG4tc20gc3ViaGVhZGVyLWJ0blwiPlxyXG4gICAgICAgICAge3t0cmFuc2xhdGUob3B0aW9ucy5lZGl0QnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmRlbGV0ZUJ1dHRvbi5hY3RpdmVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuZGVsZXRlQnV0dG9uLmZ1bmN0aW9uKClcIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuZGVsZXRlQnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tRW5kIHRvb2xiYXItLT4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFVLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFnQnBELE1BQU0sT0FBTyw0QkFBNEI7SUFPdkMsWUFBb0IsTUFBYyxFQUFTLGNBQThCO1FBQXJELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGbEUsaUJBQVksR0FBRyxRQUFRLENBQUM7SUFJL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzNELENBQUM7K0dBakJVLDRCQUE0QjttR0FBNUIsNEJBQTRCLHNJQ3ZCekMseXVPQXFJa0IsMkNEdEhkLFlBQVkseW1CQUNaLFdBQVcsOEJBQ1gsbUJBQW1CLDhCQUNuQixTQUFTLG9hQUNULGVBQWU7OzRGQUlOLDRCQUE0QjtrQkFieEMsU0FBUzsrQkFDRSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEIsV0FDUSxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO3dHQUkxQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IElubGluZVNWR01vZHVsZSB9IGZyb20gJ25nLWlubGluZS1zdmctMic7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzL3VpJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBQYWdlSGVhZGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvcGFnZS1oZWFkZXItb3B0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Jic2YtcGFnZS1oZWFkZXItY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIElubGluZVNWR01vZHVsZVxyXG4gIF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBFTjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFBhZ2VIZWFkZXJPcHRpb25zO1xyXG5cclxuICBwdWJsaWMgRGF0YVR5cGVFbnVtID0gRGF0YVR5cGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShrZXkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkVOID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUVuZ2xpc2goKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS10b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJ0b29sYmFyXCIgc3R5bGU9XCJvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7XCI+XHJcbiAgPGltZyBjbGFzcz1cInBhdHRlcm5cIiBzcmM9XCIuL3NyYy9hc3NldHMvaW1hZ2VzL0JnLXBhdHRlcm4ucG5nXCIgLz5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXh4bFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtdGl0bGUgdy0xMDBcIiBbbmdDbGFzc109XCIhb3B0aW9ucy5saXN0aW5nPyAnbWItMCcgOiAnJ1wiPlxyXG4gICAgICAgIDxoMyAqbmdJZj1cIm9wdGlvbnMudGl0bGVLZXl8fG9wdGlvbnMudGl0bGVWYWx1ZVwiPnt7b3B0aW9ucy50aXRsZVZhbHVlID09IG51bGwgPyB0cmFuc2xhdGUob3B0aW9ucy50aXRsZUtleSkgOlxyXG4gICAgICAgICAgb3B0aW9ucy50aXRsZVZhbHVlIH19PC9oMz5cclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10aXRsZVwiICpuZ0lmPVwib3B0aW9ucy5saXN0aW5nXCI+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLnN1YlRpdGxlS2V5KX19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJicmVhZGNydW1iIGJyZWFkY3J1bWItZG90XCIgKm5nSWY9XCJvcHRpb25zLmJyZWFkQ3J1bWIuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9ucy5icmVhZENydW1iLmJyZWFkQ3J1bWJJdGVtc1wiPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbVwiICpuZ0lmPVwiIWl0ZW0uYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIml0ZW0ucm91dGVcIiBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlXCI+e3sgaXRlbS5sYWJlbCB9fTwvYT5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWl0ZW0ucm91dGVcIiBocmVmPVwiamF2YXNjcmlwdDogdm9pZCgwKTtcIj57eyBpdGVtLmxhYmVsIH19PC9hPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIGFjdGl2ZVwiICpuZ0lmPVwiaXRlbS5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2Utc3ViaGVhZGVyXCIgKm5nSWY9XCJvcHRpb25zLmRyb3BEb3duQWN0aW9ucy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIiAoY2xpY2spPSdpdGVtLmZ1bmN0aW9uP2l0ZW0uZnVuY3Rpb24oKTpcIlwiJ1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gc3ViaGVhZGVyLWJ0biBleHBvcnQtYnRuXCJcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zLmRyb3BEb3duQWN0aW9ucy5kcm9wZG93bkFjdGlvbkl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCJpdGVtLnN2Z1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICB7e2l0ZW0udGV4dH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1zdWJoZWFkZXJcIj5cclxuICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cIm9wdGlvbnMuc2VhcmNoVGV4dEJveC5hY3RpdmVcIiBbb3B0aW9uc109XCJvcHRpb25zLnNlYXJjaFRleHRCb3gudGV4dFNlYXJjaEJveE9wdGlvbnNcIlxyXG4gICAgICAgIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyLWJ0biBsaXN0LWdyaWRcIiAqbmdJZj1cIm9wdGlvbnMuZ3JpZFZpZXcuYWN0aXZlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncmlkLWl0ZW1cIiBbbmdDbGFzc109XCJvcHRpb25zLmdyaWRWaWV3LnNob3dHcmlkVmlld0J5RGVmYXVsdD8gJ2xpc3QtZ3JpZC1pdGVtLWFjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcHRpb25zLmdyaWRWaWV3LnRvZ2dsZUZ1bmN0aW9uKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvTGlzdGluZy5zdmcnXCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JpZC1pdGVtXCIgW25nQ2xhc3NdPVwiIW9wdGlvbnMuZ3JpZFZpZXcuc2hvd0dyaWRWaWV3QnlEZWZhdWx0PyAnbGlzdC1ncmlkLWl0ZW0tYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuZ3JpZFZpZXcudG9nZ2xlRnVuY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9HcmlkLnN2ZydcIj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmV4cG9ydEJ1dHRvbi5hY3RpdmVcIiAoY2xpY2spPVwib3B0aW9ucy5leHBvcnRCdXR0b24uZnVuY3Rpb24oKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHN1YmhlYWRlci1idG4gZXhwb3J0LWJ0blwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi01XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLmV4cG9ydEJ1dHRvbi5idXR0b25UZXh0S2V5KX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9ucy5maWx0ZXJzQnV0dG9uLmFjdGl2ZVwiIG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgW3BsYWNlbWVudF09XCJFTiA/ICdib3R0b20tcmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiICNkcm9wZG93bj1cIm5nYkRyb3Bkb3duXCIgY2xhc3M9XCJzdWJoZWFkZXItYnRuXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwib3B0aW9ucy5maWx0ZXJzQnV0dG9uLmZ1bmN0aW9uKClcIiBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIGZpbHRlcnMtYnRuXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNVwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2Fycm93ZHJvcGRvd24uc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAge3t0cmFuc2xhdGUob3B0aW9ucy5maWx0ZXJzQnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgY2xhc3M9XCJkcm9wZG93bi1tZW51LWN1c3RvbSBmaWx0ZXJzLWRyb3Bkb3duXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPVwib3B0aW9ucy5maWx0ZXJzLnNob3dMb2FkaW5nSW5GaWx0ZXJzQm94XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIG9wdGlvbnMuZmlsdGVycy5jb250cm9sc09wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3dpdGNoXT1cImNvbnRyb2wua2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5TaW5nbGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLk11bGlwbGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLkRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURhdGVUaW1lUGlja2VyIFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1EYXRlVGltZVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5EYXRlVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRGF0ZVRpbWVQaWNrZXIgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLURhdGVUaW1lUGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLlRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURhdGVUaW1lUGlja2VyIFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1EYXRlVGltZVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5Cb29sZWFuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UYWdzSW5wdXQgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRhZ3NJbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudS1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHRcIiAoY2xpY2spPVwib3B0aW9ucy5maWx0ZXJzLnJlc3RGdW5jdGlvbihkcm9wZG93bilcIj5cclxuICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUoXCJSZXNldFwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbVwiIChjbGljayk9XCJvcHRpb25zLmZpbHRlcnMuYXBwbHlGdW5jdGlvbihkcm9wZG93bilcIj5cclxuICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUoXCJBcHBseVwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmFkZEJ1dHRvbi5hY3RpdmVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuYWRkQnV0dG9uLmZ1bmN0aW9uKClcIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuYWRkQnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmVkaXRCdXR0b24uYWN0aXZlXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcHRpb25zLmVkaXRCdXR0b24uZnVuY3Rpb24oKVwiIGNsYXNzPVwiYnRuIGJ0bi1icmFuZCBidG4tc20gc3ViaGVhZGVyLWJ0blwiPlxyXG4gICAgICAgICAge3t0cmFuc2xhdGUob3B0aW9ucy5lZGl0QnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLmRlbGV0ZUJ1dHRvbi5hY3RpdmVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuZGVsZXRlQnV0dG9uLmZ1bmN0aW9uKClcIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuZGVsZXRlQnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tRW5kIHRvb2xiYXItLT4iXX0=
@@ -0,0 +1,210 @@
1
+ import { CommonModule, DatePipe, KeyValuePipe } from '@angular/common';
2
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
3
+ import { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { RouterModule } from '@angular/router';
5
+ import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';
6
+ import { StoreDevtoolsModule } from '@ngrx/store-devtools';
7
+ import { TranslateService } from '@ngx-translate/core';
8
+ import { provideNgxMask } from 'ngx-mask';
9
+ import { OWL_DATE_TIME_LOCALE } from '@danielmoncada/angular-datetime-picker';
10
+ // Import new granular modules
11
+ import { BBSFFormsBasicModule } from './bbsf-forms-basic.module';
12
+ import { BBSFDropdownModule } from './bbsf-dropdown.module';
13
+ import { BBSFDateTimeModule } from './bbsf-datetime.module';
14
+ import { BBSFPhoneModule } from './bbsf-phone.module';
15
+ import { BBSFUtilityModule } from './bbsf-utility.module';
16
+ import { BBSFMultilingualModule } from './bbsf-multilingual.module';
17
+ // Services
18
+ import { ControlUtility } from '../Shared/services/ControlUtility';
19
+ import { OnPagingFiltersChangeService } from '../Shared/services/OnPagingFiltersChange.service';
20
+ import { RenderComponentService } from '../Shared/services/render-component-service.service';
21
+ import { ErrorMassageValidation } from '../Shared/services/validationErrorMassage.service';
22
+ import { BBSFDateTimePipe } from '../Shared/Pipes/bbsf-date-time.pipe';
23
+ import { BBSFDatePipe } from '../Shared/Pipes/bbsf-date.pipe';
24
+ import * as i0 from "@angular/core";
25
+ import * as i1 from "@ngrx/store-devtools";
26
+ /**
27
+ * BBSF Core Module (Legacy - For Backward Compatibility)
28
+ *
29
+ * ⚠️ **DEPRECATED**: This module imports ALL core controls (~650-800 KB) and should only be used for backward compatibility.
30
+ *
31
+ * **For better bundle optimization, use the new granular modules instead:**
32
+ *
33
+ * | Module | Size | Contains |
34
+ * |--------|------|----------|
35
+ * | **BBSFFormsBasicModule** | ~30 KB | TextBox, TextArea, CheckBox, Radio, Toggle |
36
+ * | **BBSFDropdownModule** | ~130 KB | DropdownList (includes ng-select ~100 KB) |
37
+ * | **BBSFDateTimeModule** | ~220 KB | DateTimePicker (includes Owl DateTime ~200 KB) + Date pipes |
38
+ * | **BBSFPhoneModule** | ~90 KB | Phone input (includes intl-tel-input ~80 KB) |
39
+ * | **BBSFUtilityModule** | ~80 KB | Form, Modals, Paging, PageHeader, Recaptcha |
40
+ * | **BBSFMultilingualModule** | ~15 KB | Multilingual text controls |
41
+ * | **BBSFCoreModule** | **~650-800 KB** | **ALL of the above** |
42
+ *
43
+ * **Bundle Size Comparison:**
44
+ * ```typescript
45
+ * // ❌ Old way (BBSFCoreModule): ~650-800 KB
46
+ * import { BBSFCoreModule } from '@bnsights/bbsf-controls';
47
+ *
48
+ * // ✅ New way (Only what you need): ~160 KB (74% smaller!)
49
+ * import { BBSFFormsBasicModule, BBSFDropdownModule } from '@bnsights/bbsf-controls';
50
+ * ```
51
+ *
52
+ * **Migration Example:**
53
+ * ```typescript
54
+ * // Before: Import everything (~650 KB)
55
+ * import { BBSFCoreModule } from '@bnsights/bbsf-controls';
56
+ *
57
+ * @NgModule({
58
+ * imports: [BBSFCoreModule]
59
+ * })
60
+ * export class MyModule { }
61
+ *
62
+ * // After: Import only what you need (~160 KB for basic forms + dropdown)
63
+ * import { BBSFFormsBasicModule, BBSFDropdownModule } from '@bnsights/bbsf-controls';
64
+ *
65
+ * @NgModule({
66
+ * imports: [
67
+ * BBSFFormsBasicModule, // ~30 KB - TextBox, CheckBox, etc.
68
+ * BBSFDropdownModule // ~130 KB - Dropdown
69
+ * ]
70
+ * })
71
+ * export class MyModule { }
72
+ * ```
73
+ *
74
+ * **Common Use Cases:**
75
+ * ```typescript
76
+ * // Use case 1: Basic forms only (~30 KB)
77
+ * import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
78
+ *
79
+ * // Use case 2: Forms + Dropdown (~160 KB, 75% smaller than BBSFCoreModule)
80
+ * import { BBSFFormsBasicModule, BBSFDropdownModule } from '@bnsights/bbsf-controls';
81
+ *
82
+ * // Use case 3: Forms + Date picker (~250 KB, 60% smaller)
83
+ * import { BBSFFormsBasicModule, BBSFDateTimeModule } from '@bnsights/bbsf-controls';
84
+ *
85
+ * // Use case 4: Full set (~565 KB - still excludes unused modules)
86
+ * import {
87
+ * BBSFFormsBasicModule,
88
+ * BBSFDropdownModule,
89
+ * BBSFDateTimeModule,
90
+ * BBSFPhoneModule,
91
+ * BBSFUtilityModule,
92
+ * BBSFMultilingualModule
93
+ * } from '@bnsights/bbsf-controls';
94
+ * ```
95
+ *
96
+ * This module will be removed in v3.0
97
+ *
98
+ * @deprecated Use granular modules (BBSFFormsBasicModule, BBSFDropdownModule, etc.) for better tree-shaking
99
+ */
100
+ export class BBSFCoreModule {
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
102
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: BBSFCoreModule, imports: [
103
+ // Common Angular modules
104
+ CommonModule,
105
+ FormsModule,
106
+ ReactiveFormsModule,
107
+ RouterModule,
108
+ // Granular control modules
109
+ BBSFFormsBasicModule,
110
+ BBSFDropdownModule,
111
+ BBSFDateTimeModule,
112
+ BBSFPhoneModule,
113
+ BBSFUtilityModule,
114
+ BBSFMultilingualModule, i1.StoreDevtoolsModule], exports: [
115
+ // Re-export granular modules so all their components are available
116
+ BBSFFormsBasicModule,
117
+ BBSFDropdownModule,
118
+ BBSFDateTimeModule,
119
+ BBSFPhoneModule,
120
+ BBSFUtilityModule,
121
+ BBSFMultilingualModule] }); }
122
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFCoreModule, providers: [
123
+ // Services
124
+ ErrorMassageValidation,
125
+ ControlUtility,
126
+ OnPagingFiltersChangeService,
127
+ TranslateService,
128
+ FormGroupDirective,
129
+ NgbModal,
130
+ NgbActiveModal,
131
+ DatePipe,
132
+ KeyValuePipe,
133
+ BBSFDateTimePipe,
134
+ BBSFDatePipe,
135
+ RenderComponentService,
136
+ { provide: OWL_DATE_TIME_LOCALE, useValue: ControlUtility.getLocal() },
137
+ provideNgxMask()
138
+ ], imports: [
139
+ // Common Angular modules
140
+ CommonModule,
141
+ FormsModule,
142
+ ReactiveFormsModule,
143
+ RouterModule,
144
+ // Granular control modules
145
+ BBSFFormsBasicModule,
146
+ BBSFDropdownModule,
147
+ BBSFDateTimeModule,
148
+ BBSFPhoneModule,
149
+ BBSFUtilityModule,
150
+ BBSFMultilingualModule,
151
+ // DevTools (still here for backward compatibility, but should be in app module)
152
+ StoreDevtoolsModule.instrument({ connectInZone: true }),
153
+ // Re-export granular modules so all their components are available
154
+ BBSFFormsBasicModule,
155
+ BBSFDropdownModule,
156
+ BBSFDateTimeModule,
157
+ BBSFPhoneModule,
158
+ BBSFUtilityModule,
159
+ BBSFMultilingualModule] }); }
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFCoreModule, decorators: [{
162
+ type: NgModule,
163
+ args: [{
164
+ declarations: [],
165
+ imports: [
166
+ // Common Angular modules
167
+ CommonModule,
168
+ FormsModule,
169
+ ReactiveFormsModule,
170
+ RouterModule,
171
+ // Granular control modules
172
+ BBSFFormsBasicModule,
173
+ BBSFDropdownModule,
174
+ BBSFDateTimeModule,
175
+ BBSFPhoneModule,
176
+ BBSFUtilityModule,
177
+ BBSFMultilingualModule,
178
+ // DevTools (still here for backward compatibility, but should be in app module)
179
+ StoreDevtoolsModule.instrument({ connectInZone: true })
180
+ ],
181
+ providers: [
182
+ // Services
183
+ ErrorMassageValidation,
184
+ ControlUtility,
185
+ OnPagingFiltersChangeService,
186
+ TranslateService,
187
+ FormGroupDirective,
188
+ NgbModal,
189
+ NgbActiveModal,
190
+ DatePipe,
191
+ KeyValuePipe,
192
+ BBSFDateTimePipe,
193
+ BBSFDatePipe,
194
+ RenderComponentService,
195
+ { provide: OWL_DATE_TIME_LOCALE, useValue: ControlUtility.getLocal() },
196
+ provideNgxMask()
197
+ ],
198
+ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
199
+ exports: [
200
+ // Re-export granular modules so all their components are available
201
+ BBSFFormsBasicModule,
202
+ BBSFDropdownModule,
203
+ BBSFDateTimeModule,
204
+ BBSFPhoneModule,
205
+ BBSFUtilityModule,
206
+ BBSFMultilingualModule
207
+ ]
208
+ }]
209
+ }] });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1jb3JlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9tb2R1bGVzL2Jic2YtY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLFdBQVc7QUFDWCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFFOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RUc7QUFpREgsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYztnSEFBZCxjQUFjO1lBN0NuQix5QkFBeUI7WUFDekIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsWUFBWTtZQUVaLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLHNCQUFzQjtZQXdCdEIsbUVBQW1FO1lBQ25FLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsc0JBQXNCO2dIQUdqQixjQUFjLGFBNUJaO1lBQ1AsV0FBVztZQUNYLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsNEJBQTRCO1lBQzVCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsUUFBUTtZQUNSLGNBQWM7WUFDZCxRQUFRO1lBQ1IsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osc0JBQXNCO1lBQ3RCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEUsY0FBYyxFQUFFO1NBQ25CO1lBakNHLHlCQUF5QjtZQUN6QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBRVosMkJBQTJCO1lBQzNCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsc0JBQXNCO1lBRXRCLGdGQUFnRjtZQUNoRixtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFxQnZELG1FQUFtRTtZQUNuRSxvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLHNCQUFzQjs7NEZBR2pCLGNBQWM7a0JBaEQxQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ0wseUJBQXlCO3dCQUN6QixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUVaLDJCQUEyQjt3QkFDM0Isb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFFdEIsZ0ZBQWdGO3dCQUNoRixtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7cUJBQzFEO29CQUNELFNBQVMsRUFBRTt3QkFDUCxXQUFXO3dCQUNYLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCw0QkFBNEI7d0JBQzVCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsUUFBUTt3QkFDUixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ3RFLGNBQWMsRUFBRTtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxtRUFBbUU7d0JBQ25FLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixzQkFBc0I7cUJBQ3pCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgS2V5VmFsdWVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUsIE5PX0VSUk9SU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwsIE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBTdG9yZURldnRvb2xzTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUtZGV2dG9vbHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IHByb3ZpZGVOZ3hNYXNrIH0gZnJvbSAnbmd4LW1hc2snO1xyXG5pbXBvcnQgeyBPV0xfREFURV9USU1FX0xPQ0FMRSB9IGZyb20gJ0BkYW5pZWxtb25jYWRhL2FuZ3VsYXItZGF0ZXRpbWUtcGlja2VyJztcclxuXHJcbi8vIEltcG9ydCBuZXcgZ3JhbnVsYXIgbW9kdWxlc1xyXG5pbXBvcnQgeyBCQlNGRm9ybXNCYXNpY01vZHVsZSB9IGZyb20gJy4vYmJzZi1mb3Jtcy1iYXNpYy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBCQlNGRHJvcGRvd25Nb2R1bGUgfSBmcm9tICcuL2Jic2YtZHJvcGRvd24ubW9kdWxlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVUaW1lTW9kdWxlIH0gZnJvbSAnLi9iYnNmLWRhdGV0aW1lLm1vZHVsZSc7XHJcbmltcG9ydCB7IEJCU0ZQaG9uZU1vZHVsZSB9IGZyb20gJy4vYmJzZi1waG9uZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBCQlNGVXRpbGl0eU1vZHVsZSB9IGZyb20gJy4vYmJzZi11dGlsaXR5Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEJCU0ZNdWx0aWxpbmd1YWxNb2R1bGUgfSBmcm9tICcuL2Jic2YtbXVsdGlsaW5ndWFsLm1vZHVsZSc7XHJcblxyXG4vLyBTZXJ2aWNlc1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uL1NoYXJlZC9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IE9uUGFnaW5nRmlsdGVyc0NoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvT25QYWdpbmdGaWx0ZXJzQ2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZW5kZXJDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vU2hhcmVkL3NlcnZpY2VzL3JlbmRlci1jb21wb25lbnQtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiB9IGZyb20gJy4uL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCQlNGRGF0ZVRpbWVQaXBlIH0gZnJvbSAnLi4vU2hhcmVkL1BpcGVzL2Jic2YtZGF0ZS10aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBCQlNGRGF0ZVBpcGUgfSBmcm9tICcuLi9TaGFyZWQvUGlwZXMvYmJzZi1kYXRlLnBpcGUnO1xyXG5cclxuLyoqXHJcbiAqIEJCU0YgQ29yZSBNb2R1bGUgKExlZ2FjeSAtIEZvciBCYWNrd2FyZCBDb21wYXRpYmlsaXR5KVxyXG4gKiBcclxuICog4pqg77iPICoqREVQUkVDQVRFRCoqOiBUaGlzIG1vZHVsZSBpbXBvcnRzIEFMTCBjb3JlIGNvbnRyb2xzICh+NjUwLTgwMCBLQikgYW5kIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXHJcbiAqIFxyXG4gKiAqKkZvciBiZXR0ZXIgYnVuZGxlIG9wdGltaXphdGlvbiwgdXNlIHRoZSBuZXcgZ3JhbnVsYXIgbW9kdWxlcyBpbnN0ZWFkOioqXHJcbiAqIFxyXG4gKiB8IE1vZHVsZSB8IFNpemUgfCBDb250YWlucyB8XHJcbiAqIHwtLS0tLS0tLXwtLS0tLS18LS0tLS0tLS0tLXxcclxuICogfCAqKkJCU0ZGb3Jtc0Jhc2ljTW9kdWxlKiogfCB+MzAgS0IgfCBUZXh0Qm94LCBUZXh0QXJlYSwgQ2hlY2tCb3gsIFJhZGlvLCBUb2dnbGUgfFxyXG4gKiB8ICoqQkJTRkRyb3Bkb3duTW9kdWxlKiogfCB+MTMwIEtCIHwgRHJvcGRvd25MaXN0IChpbmNsdWRlcyBuZy1zZWxlY3QgfjEwMCBLQikgfFxyXG4gKiB8ICoqQkJTRkRhdGVUaW1lTW9kdWxlKiogfCB+MjIwIEtCIHwgRGF0ZVRpbWVQaWNrZXIgKGluY2x1ZGVzIE93bCBEYXRlVGltZSB+MjAwIEtCKSArIERhdGUgcGlwZXMgfFxyXG4gKiB8ICoqQkJTRlBob25lTW9kdWxlKiogfCB+OTAgS0IgfCBQaG9uZSBpbnB1dCAoaW5jbHVkZXMgaW50bC10ZWwtaW5wdXQgfjgwIEtCKSB8XHJcbiAqIHwgKipCQlNGVXRpbGl0eU1vZHVsZSoqIHwgfjgwIEtCIHwgRm9ybSwgTW9kYWxzLCBQYWdpbmcsIFBhZ2VIZWFkZXIsIFJlY2FwdGNoYSB8XHJcbiAqIHwgKipCQlNGTXVsdGlsaW5ndWFsTW9kdWxlKiogfCB+MTUgS0IgfCBNdWx0aWxpbmd1YWwgdGV4dCBjb250cm9scyB8XHJcbiAqIHwgKipCQlNGQ29yZU1vZHVsZSoqIHwgKip+NjUwLTgwMCBLQioqIHwgKipBTEwgb2YgdGhlIGFib3ZlKiogfFxyXG4gKiBcclxuICogKipCdW5kbGUgU2l6ZSBDb21wYXJpc29uOioqXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogLy8g4p2MIE9sZCB3YXkgKEJCU0ZDb3JlTW9kdWxlKTogfjY1MC04MDAgS0JcclxuICogaW1wb3J0IHsgQkJTRkNvcmVNb2R1bGUgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbiAqIFxyXG4gKiAvLyDinIUgTmV3IHdheSAoT25seSB3aGF0IHlvdSBuZWVkKTogfjE2MCBLQiAoNzQlIHNtYWxsZXIhKVxyXG4gKiBpbXBvcnQgeyBCQlNGRm9ybXNCYXNpY01vZHVsZSwgQkJTRkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG4gKiBgYGBcclxuICogXHJcbiAqICoqTWlncmF0aW9uIEV4YW1wbGU6KipcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiAvLyBCZWZvcmU6IEltcG9ydCBldmVyeXRoaW5nICh+NjUwIEtCKVxyXG4gKiBpbXBvcnQgeyBCQlNGQ29yZU1vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuICogXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW0JCU0ZDb3JlTW9kdWxlXVxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgTXlNb2R1bGUgeyB9XHJcbiAqIFxyXG4gKiAvLyBBZnRlcjogSW1wb3J0IG9ubHkgd2hhdCB5b3UgbmVlZCAofjE2MCBLQiBmb3IgYmFzaWMgZm9ybXMgKyBkcm9wZG93bilcclxuICogaW1wb3J0IHsgQkJTRkZvcm1zQmFzaWNNb2R1bGUsIEJCU0ZEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuICogXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1xyXG4gKiAgICAgQkJTRkZvcm1zQmFzaWNNb2R1bGUsICAvLyB+MzAgS0IgLSBUZXh0Qm94LCBDaGVja0JveCwgZXRjLlxyXG4gKiAgICAgQkJTRkRyb3Bkb3duTW9kdWxlICAgICAvLyB+MTMwIEtCIC0gRHJvcGRvd25cclxuICogICBdXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBNeU1vZHVsZSB7IH1cclxuICogYGBgXHJcbiAqIFxyXG4gKiAqKkNvbW1vbiBVc2UgQ2FzZXM6KipcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiAvLyBVc2UgY2FzZSAxOiBCYXNpYyBmb3JtcyBvbmx5ICh+MzAgS0IpXHJcbiAqIGltcG9ydCB7IEJCU0ZGb3Jtc0Jhc2ljTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG4gKiBcclxuICogLy8gVXNlIGNhc2UgMjogRm9ybXMgKyBEcm9wZG93biAofjE2MCBLQiwgNzUlIHNtYWxsZXIgdGhhbiBCQlNGQ29yZU1vZHVsZSlcclxuICogaW1wb3J0IHsgQkJTRkZvcm1zQmFzaWNNb2R1bGUsIEJCU0ZEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuICogXHJcbiAqIC8vIFVzZSBjYXNlIDM6IEZvcm1zICsgRGF0ZSBwaWNrZXIgKH4yNTAgS0IsIDYwJSBzbWFsbGVyKVxyXG4gKiBpbXBvcnQgeyBCQlNGRm9ybXNCYXNpY01vZHVsZSwgQkJTRkRhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG4gKiBcclxuICogLy8gVXNlIGNhc2UgNDogRnVsbCBzZXQgKH41NjUgS0IgLSBzdGlsbCBleGNsdWRlcyB1bnVzZWQgbW9kdWxlcylcclxuICogaW1wb3J0IHsgXHJcbiAqICAgQkJTRkZvcm1zQmFzaWNNb2R1bGUsXHJcbiAqICAgQkJTRkRyb3Bkb3duTW9kdWxlLFxyXG4gKiAgIEJCU0ZEYXRlVGltZU1vZHVsZSxcclxuICogICBCQlNGUGhvbmVNb2R1bGUsXHJcbiAqICAgQkJTRlV0aWxpdHlNb2R1bGUsXHJcbiAqICAgQkJTRk11bHRpbGluZ3VhbE1vZHVsZVxyXG4gKiB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuICogYGBgXHJcbiAqIFxyXG4gKiBUaGlzIG1vZHVsZSB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMFxyXG4gKiBcclxuICogQGRlcHJlY2F0ZWQgVXNlIGdyYW51bGFyIG1vZHVsZXMgKEJCU0ZGb3Jtc0Jhc2ljTW9kdWxlLCBCQlNGRHJvcGRvd25Nb2R1bGUsIGV0Yy4pIGZvciBiZXR0ZXIgdHJlZS1zaGFraW5nXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICAvLyBDb21tb24gQW5ndWxhciBtb2R1bGVzXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLFxyXG5cclxuICAgICAgICAvLyBHcmFudWxhciBjb250cm9sIG1vZHVsZXNcclxuICAgICAgICBCQlNGRm9ybXNCYXNpY01vZHVsZSxcclxuICAgICAgICBCQlNGRHJvcGRvd25Nb2R1bGUsXHJcbiAgICAgICAgQkJTRkRhdGVUaW1lTW9kdWxlLFxyXG4gICAgICAgIEJCU0ZQaG9uZU1vZHVsZSxcclxuICAgICAgICBCQlNGVXRpbGl0eU1vZHVsZSxcclxuICAgICAgICBCQlNGTXVsdGlsaW5ndWFsTW9kdWxlLFxyXG5cclxuICAgICAgICAvLyBEZXZUb29scyAoc3RpbGwgaGVyZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgYnV0IHNob3VsZCBiZSBpbiBhcHAgbW9kdWxlKVxyXG4gICAgICAgIFN0b3JlRGV2dG9vbHNNb2R1bGUuaW5zdHJ1bWVudCh7IGNvbm5lY3RJblpvbmU6IHRydWUgfSlcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAvLyBTZXJ2aWNlc1xyXG4gICAgICAgIEVycm9yTWFzc2FnZVZhbGlkYXRpb24sXHJcbiAgICAgICAgQ29udHJvbFV0aWxpdHksXHJcbiAgICAgICAgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSxcclxuICAgICAgICBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgICAgICBOZ2JNb2RhbCxcclxuICAgICAgICBOZ2JBY3RpdmVNb2RhbCxcclxuICAgICAgICBEYXRlUGlwZSxcclxuICAgICAgICBLZXlWYWx1ZVBpcGUsXHJcbiAgICAgICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgICAgICBCQlNGRGF0ZVBpcGUsXHJcbiAgICAgICAgUmVuZGVyQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICB7IHByb3ZpZGU6IE9XTF9EQVRFX1RJTUVfTE9DQUxFLCB1c2VWYWx1ZTogQ29udHJvbFV0aWxpdHkuZ2V0TG9jYWwoKSB9LFxyXG4gICAgICAgIHByb3ZpZGVOZ3hNYXNrKClcclxuICAgIF0sXHJcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgLy8gUmUtZXhwb3J0IGdyYW51bGFyIG1vZHVsZXMgc28gYWxsIHRoZWlyIGNvbXBvbmVudHMgYXJlIGF2YWlsYWJsZVxyXG4gICAgICAgIEJCU0ZGb3Jtc0Jhc2ljTW9kdWxlLFxyXG4gICAgICAgIEJCU0ZEcm9wZG93bk1vZHVsZSxcclxuICAgICAgICBCQlNGRGF0ZVRpbWVNb2R1bGUsXHJcbiAgICAgICAgQkJTRlBob25lTW9kdWxlLFxyXG4gICAgICAgIEJCU0ZVdGlsaXR5TW9kdWxlLFxyXG4gICAgICAgIEJCU0ZNdWx0aWxpbmd1YWxNb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJCU0ZDb3JlTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,90 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { CommonModule, DatePipe } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
5
+ import { DateInputComponent } from '../controls/DateTimePicker/DateTimePicker.component';
6
+ import { BBSFDateTimePipe } from '../Shared/Pipes/bbsf-date-time.pipe';
7
+ import { BBSFDatePipe } from '../Shared/Pipes/bbsf-date.pipe';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * BBSF DateTime Module
11
+ *
12
+ * Contains date/time picker control (~200 KB gzipped):
13
+ * - DateTimePicker (powered by Owl DateTime)
14
+ * - BBSFDateTimePipe
15
+ * - BBSFDatePipe
16
+ *
17
+ * Dependencies:
18
+ * - @danielmoncada/angular-datetime-picker (~200 KB)
19
+ *
20
+ * Features:
21
+ * - Date picker
22
+ * - Time picker
23
+ * - DateTime picker
24
+ * - Range selection
25
+ * - Custom formats
26
+ * - Localization support
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { BBSFDateTimeModule } from '@bnsights/bbsf-controls';
31
+ *
32
+ * @NgModule({
33
+ * imports: [BBSFDateTimeModule]
34
+ * })
35
+ * export class MyModule { }
36
+ * ```
37
+ */
38
+ export class BBSFDateTimeModule {
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
40
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: BBSFDateTimeModule, imports: [CommonModule,
41
+ FormsModule,
42
+ ReactiveFormsModule,
43
+ OwlDateTimeModule,
44
+ OwlNativeDateTimeModule,
45
+ // Import standalone component
46
+ DateInputComponent,
47
+ // Import standalone pipes
48
+ BBSFDateTimePipe,
49
+ BBSFDatePipe], exports: [
50
+ // Re-export standalone component
51
+ DateInputComponent,
52
+ // Re-export standalone pipes
53
+ BBSFDateTimePipe,
54
+ BBSFDatePipe] }); }
55
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFDateTimeModule, providers: [DatePipe], imports: [CommonModule,
56
+ FormsModule,
57
+ ReactiveFormsModule,
58
+ OwlDateTimeModule,
59
+ OwlNativeDateTimeModule,
60
+ // Import standalone component
61
+ DateInputComponent] }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFDateTimeModule, decorators: [{
64
+ type: NgModule,
65
+ args: [{
66
+ declarations: [],
67
+ imports: [
68
+ CommonModule,
69
+ FormsModule,
70
+ ReactiveFormsModule,
71
+ OwlDateTimeModule,
72
+ OwlNativeDateTimeModule,
73
+ // Import standalone component
74
+ DateInputComponent,
75
+ // Import standalone pipes
76
+ BBSFDateTimePipe,
77
+ BBSFDatePipe
78
+ ],
79
+ providers: [DatePipe],
80
+ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
81
+ exports: [
82
+ // Re-export standalone component
83
+ DateInputComponent,
84
+ // Re-export standalone pipes
85
+ BBSFDateTimePipe,
86
+ BBSFDatePipe
87
+ ]
88
+ }]
89
+ }] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1kYXRldGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvbW9kdWxlcy9iYnNmLWRhdGV0aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXBHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUF5QkgsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsWUFyQnZCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsOEJBQThCO1lBQzlCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFLWixpQ0FBaUM7WUFDakMsa0JBQWtCO1lBQ2xCLDZCQUE2QjtZQUM3QixnQkFBZ0I7WUFDaEIsWUFBWTtnSEFHUCxrQkFBa0IsYUFWaEIsQ0FBQyxRQUFRLENBQUMsWUFYakIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2Qiw4QkFBOEI7WUFDOUIsa0JBQWtCOzs0RkFlYixrQkFBa0I7a0JBeEI5QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLGdCQUFnQjt3QkFDaEIsWUFBWTtxQkFDZjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO29CQUNuRCxPQUFPLEVBQUU7d0JBQ0wsaUNBQWlDO3dCQUNqQyxrQkFBa0I7d0JBQ2xCLDZCQUE2Qjt3QkFDN0IsZ0JBQWdCO3dCQUNoQixZQUFZO3FCQUNmO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUsIE5PX0VSUk9SU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPd2xEYXRlVGltZU1vZHVsZSwgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICdAZGFuaWVsbW9uY2FkYS9hbmd1bGFyLWRhdGV0aW1lLXBpY2tlcic7XHJcblxyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9jb250cm9scy9EYXRlVGltZVBpY2tlci9EYXRlVGltZVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCQlNGRGF0ZVRpbWVQaXBlIH0gZnJvbSAnLi4vU2hhcmVkL1BpcGVzL2Jic2YtZGF0ZS10aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBCQlNGRGF0ZVBpcGUgfSBmcm9tICcuLi9TaGFyZWQvUGlwZXMvYmJzZi1kYXRlLnBpcGUnO1xyXG5cclxuLyoqXHJcbiAqIEJCU0YgRGF0ZVRpbWUgTW9kdWxlXHJcbiAqIFxyXG4gKiBDb250YWlucyBkYXRlL3RpbWUgcGlja2VyIGNvbnRyb2wgKH4yMDAgS0IgZ3ppcHBlZCk6XHJcbiAqIC0gRGF0ZVRpbWVQaWNrZXIgKHBvd2VyZWQgYnkgT3dsIERhdGVUaW1lKVxyXG4gKiAtIEJCU0ZEYXRlVGltZVBpcGVcclxuICogLSBCQlNGRGF0ZVBpcGVcclxuICogXHJcbiAqIERlcGVuZGVuY2llczpcclxuICogLSBAZGFuaWVsbW9uY2FkYS9hbmd1bGFyLWRhdGV0aW1lLXBpY2tlciAofjIwMCBLQilcclxuICogXHJcbiAqIEZlYXR1cmVzOlxyXG4gKiAtIERhdGUgcGlja2VyXHJcbiAqIC0gVGltZSBwaWNrZXJcclxuICogLSBEYXRlVGltZSBwaWNrZXJcclxuICogLSBSYW5nZSBzZWxlY3Rpb25cclxuICogLSBDdXN0b20gZm9ybWF0c1xyXG4gKiAtIExvY2FsaXphdGlvbiBzdXBwb3J0XHJcbiAqIFxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IEJCU0ZEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuICogXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW0JCU0ZEYXRlVGltZU1vZHVsZV1cclxuICogfSlcclxuICogZXhwb3J0IGNsYXNzIE15TW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtdLCAvLyBObyBkZWNsYXJhdGlvbnMgLSBjb21wb25lbnQgYW5kIHBpcGVzIGFyZSBzdGFuZGFsb25lXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgT3dsRGF0ZVRpbWVNb2R1bGUsXHJcbiAgICAgICAgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsXHJcbiAgICAgICAgLy8gSW1wb3J0IHN0YW5kYWxvbmUgY29tcG9uZW50XHJcbiAgICAgICAgRGF0ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgIC8vIEltcG9ydCBzdGFuZGFsb25lIHBpcGVzXHJcbiAgICAgICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgICAgICBCQlNGRGF0ZVBpcGVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtEYXRlUGlwZV0sXHJcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgLy8gUmUtZXhwb3J0IHN0YW5kYWxvbmUgY29tcG9uZW50XHJcbiAgICAgICAgRGF0ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgIC8vIFJlLWV4cG9ydCBzdGFuZGFsb25lIHBpcGVzXHJcbiAgICAgICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgICAgICBCQlNGRGF0ZVBpcGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJCU0ZEYXRlVGltZU1vZHVsZSB7IH1cclxuXHJcbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { DropdownListComponent } from '../controls/DropdownList/DropdownList.component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * BBSF Dropdown Module
6
+ *
7
+ * Contains dropdown control (~130 KB gzipped):
8
+ * - DropdownList (powered by ng-select)
9
+ *
10
+ * Dependencies:
11
+ * - @ng-select/ng-select (~100 KB)
12
+ *
13
+ * Features:
14
+ * - Single/Multiple selection
15
+ * - Search/Filter
16
+ * - Custom templates
17
+ * - Lazy loading
18
+ * - Virtual scrolling
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import { BBSFDropdownModule } from '@bnsights/bbsf-controls';
23
+ *
24
+ * @NgModule({
25
+ * imports: [BBSFDropdownModule]
26
+ * })
27
+ * export class MyModule { }
28
+ * ```
29
+ */
30
+ export class BBSFDropdownModule {
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: BBSFDropdownModule, imports: [
33
+ // Import standalone component
34
+ DropdownListComponent], exports: [
35
+ // Re-export standalone component
36
+ DropdownListComponent] }); }
37
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFDropdownModule, imports: [
38
+ // Import standalone component
39
+ DropdownListComponent] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BBSFDropdownModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [],
45
+ imports: [
46
+ // Import standalone component
47
+ DropdownListComponent
48
+ ],
49
+ providers: [],
50
+ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
51
+ exports: [
52
+ // Re-export standalone component
53
+ DropdownListComponent
54
+ ]
55
+ }]
56
+ }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1kcm9wZG93bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvbW9kdWxlcy9iYnNmLWRyb3Bkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQUV4Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQWNILE1BQU0sT0FBTyxrQkFBa0I7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCO1lBVnZCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFLckIsaUNBQWlDO1lBQ2pDLHFCQUFxQjtnSEFHaEIsa0JBQWtCO1lBVnZCLDhCQUE4QjtZQUM5QixxQkFBcUI7OzRGQVNoQixrQkFBa0I7a0JBYjlCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCw4QkFBOEI7d0JBQzlCLHFCQUFxQjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxpQ0FBaUM7d0JBQ2pDLHFCQUFxQjtxQkFDeEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBEcm9wZG93bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jb250cm9scy9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQkJTRiBEcm9wZG93biBNb2R1bGVcclxuICogXHJcbiAqIENvbnRhaW5zIGRyb3Bkb3duIGNvbnRyb2wgKH4xMzAgS0IgZ3ppcHBlZCk6XHJcbiAqIC0gRHJvcGRvd25MaXN0IChwb3dlcmVkIGJ5IG5nLXNlbGVjdClcclxuICogXHJcbiAqIERlcGVuZGVuY2llczpcclxuICogLSBAbmctc2VsZWN0L25nLXNlbGVjdCAofjEwMCBLQilcclxuICogXHJcbiAqIEZlYXR1cmVzOlxyXG4gKiAtIFNpbmdsZS9NdWx0aXBsZSBzZWxlY3Rpb25cclxuICogLSBTZWFyY2gvRmlsdGVyXHJcbiAqIC0gQ3VzdG9tIHRlbXBsYXRlc1xyXG4gKiAtIExhenkgbG9hZGluZ1xyXG4gKiAtIFZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAqIFxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IEJCU0ZEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuICogXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW0JCU0ZEcm9wZG93bk1vZHVsZV1cclxuICogfSlcclxuICogZXhwb3J0IGNsYXNzIE15TW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIC8vIEltcG9ydCBzdGFuZGFsb25lIGNvbXBvbmVudFxyXG4gICAgICAgIERyb3Bkb3duTGlzdENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgLy8gUmUtZXhwb3J0IHN0YW5kYWxvbmUgY29tcG9uZW50XHJcbiAgICAgICAgRHJvcGRvd25MaXN0Q29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCQlNGRHJvcGRvd25Nb2R1bGUgeyB9XHJcblxyXG4iXX0=