@bravobit/bb-foundation 0.23.5 → 0.23.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/controls/lib/control-error/control-error.utils.d.ts +3 -0
- package/controls/lib/controls.module.d.ts +4 -2
- package/controls/lib/form-control/form-control/form-control.component.d.ts +0 -2
- package/controls/lib/radio/radio-button/radio-button.component.d.ts +24 -0
- package/controls/lib/radio/radio-group/radio-group.component.d.ts +53 -0
- package/controls/lib/radio/radio.module.d.ts +11 -0
- package/controls/lib/toggle/toggle/toggle.component.d.ts +45 -0
- package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +23 -0
- package/controls/lib/toggle/toggle.module.d.ts +10 -0
- package/controls/public_api.d.ts +7 -0
- package/elements/lib/avatar/avatar.component.d.ts +1 -1
- package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
- package/esm2020/auth/lib/auth.module.mjs +4 -4
- package/esm2020/auth/lib/auth.service.mjs +3 -3
- package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
- package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/permission.guard.mjs +3 -3
- package/esm2020/auth/lib/permissions/permissions.service.mjs +3 -3
- package/esm2020/collections/lib/collections.module.mjs +4 -4
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +22 -10
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +13 -7
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
- package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
- package/esm2020/controls/lib/control-error/control-error.module.mjs +4 -4
- package/esm2020/controls/lib/control-error/control-error.utils.mjs +20 -0
- package/esm2020/controls/lib/controls.module.mjs +19 -10
- package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +14 -30
- package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control.module.mjs +4 -4
- package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +75 -0
- package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +168 -0
- package/esm2020/controls/lib/radio/radio.module.mjs +21 -0
- package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +153 -0
- package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +62 -0
- package/esm2020/controls/lib/toggle/toggle.module.mjs +20 -0
- package/esm2020/controls/public_api.mjs +8 -1
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
- package/esm2020/dialog/lib/dialog.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog.service.mjs +3 -3
- package/esm2020/elements/lib/avatar/avatar.component.mjs +15 -13
- package/esm2020/elements/lib/button/button.component.mjs +6 -6
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
- package/esm2020/elements/lib/elements.module.mjs +4 -4
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
- package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
- package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
- package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
- package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
- package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
- package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
- package/esm2020/http/lib/http.module.mjs +4 -4
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
- package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
- package/esm2020/lib/core/services/exif.service.mjs +3 -3
- package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
- package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
- package/esm2020/lib/core/services/languages.service.mjs +3 -3
- package/esm2020/lib/core/services/network.service.mjs +3 -3
- package/esm2020/lib/core/services/patch.service.mjs +3 -3
- package/esm2020/localize/lib/localize.module.mjs +4 -4
- package/esm2020/localize/lib/localize.pipe.mjs +3 -3
- package/esm2020/localize/lib/localize.service.mjs +3 -3
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
- package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/masking.module.mjs +4 -4
- package/esm2020/masking/lib/masking.service.mjs +3 -3
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications.module.mjs +4 -4
- package/esm2020/notifications/lib/notifications.service.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2020/storage/lib/storage.service.mjs +3 -3
- package/esm2020/table/lib/components/table/table.component.mjs +9 -9
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
- package/esm2020/table/lib/table.module.mjs +4 -4
- package/esm2020/theming/lib/themes/radio-button.theme.mjs +29 -0
- package/esm2020/theming/lib/themes/radio-group.theme.mjs +20 -0
- package/esm2020/theming/lib/themes/toggle-group.theme.mjs +17 -0
- package/esm2020/theming/lib/themes/toggle.theme.mjs +28 -0
- package/esm2020/theming/lib/theming.data.mjs +9 -1
- package/esm2020/theming/lib/theming.directive.mjs +3 -3
- package/esm2020/theming/lib/theming.interface.mjs +1 -1
- package/esm2020/theming/lib/theming.module.mjs +4 -4
- package/esm2020/utils/lib/directives/autosize.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/focus-trap.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/focus.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/template.directive.mjs +3 -3
- package/esm2020/utils/lib/utils.module.mjs +4 -4
- package/fesm2015/bravobit-bb-foundation-auth.mjs +28 -28
- package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-controls.mjs +677 -179
- package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2015/bravobit-bb-foundation-elements.mjs +87 -85
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-localize.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-theming.mjs +102 -7
- package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation.mjs +21 -21
- package/fesm2020/bravobit-bb-foundation-auth.mjs +28 -28
- package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-controls.mjs +663 -173
- package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2020/bravobit-bb-foundation-elements.mjs +87 -85
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-localize.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-theming.mjs +102 -7
- package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation.mjs +21 -21
- package/package.json +1 -1
- package/theming/lib/themes/radio-button.theme.d.ts +26 -0
- package/theming/lib/themes/radio-group.theme.d.ts +17 -0
- package/theming/lib/themes/toggle-group.theme.d.ts +16 -0
- package/theming/lib/themes/toggle.theme.d.ts +25 -0
- package/theming/lib/theming.interface.d.ts +8 -0
|
@@ -218,11 +218,11 @@ class BbTablePager extends BbTablePagerMixinBase {
|
|
|
218
218
|
.map(page => ({ page, active: pageNumber === page }));
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
|
-
BbTablePager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
222
|
-
BbTablePager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
221
|
+
BbTablePager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTablePager, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
BbTablePager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTablePager, selector: "bb-table-pager", inputs: { disabled: "disabled", amountOfButtons: "amountOfButtons", showArrowButtons: "showArrowButtons", pageNumber: "pageNumber", totalPages: "totalPages" }, host: { properties: { "class.disabled": "disabled" }, classAttribute: "bb-table-pager" }, providers: [
|
|
223
223
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbTablePager), multi: true }
|
|
224
224
|
], usesInheritance: true, ngImport: i0, template: "<ul class=\"bb-pager-list\">\n <!-- The previous page arrow button. -->\n <li *ngIf=\"showArrowButtons\"\n class=\"bb-pager-list-item\"\n title=\"Previous page\">\n <button [disabled]=\"isPreviousDisabled$ | async\"\n (click)=\"goToPrevious()\"\n class=\"bb-pager-list-button\"\n type=\"button\">\n <bb-icon src=\"material:keyboard_arrow_left\"></bb-icon>\n </button>\n </li>\n\n <!-- The list of number buttons to navigate through the list. -->\n <ng-container *ngIf=\"list$ | async as list\">\n <li *ngFor=\"let item of list; trackBy: trackByIndex\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-pager-list-item\">\n <button (click)=\"goToIndex(item?.page)\"\n [class.active]=\"item?.active\"\n class=\"bb-pager-list-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n </ng-container>\n\n <!-- The next page arrow button. -->\n <li *ngIf=\"showArrowButtons\"\n class=\"bb-pager-list-item\"\n title=\"Next page\">\n <button [disabled]=\"isNextDisabled$ | async\"\n (click)=\"goToNext()\"\n class=\"bb-pager-list-button\"\n type=\"button\">\n <bb-icon src=\"material:keyboard_arrow_right\"></bb-icon>\n </button>\n </li>\n</ul>\n", styles: [".bb-table-pager{flex:1;display:flex;align-items:center;justify-content:flex-end}.bb-table-pager.disabled{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none}.bb-pager-list{display:flex}.bb-pager-list-item{margin-left:8px}.bb-pager-list-button{padding:0;color:#3d464d;line-height:1;min-width:32px;font-size:16px;-webkit-appearance:none;appearance:none;font-weight:500;min-height:32px;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #b6bbc1;transition-duration:.2s;background-color:transparent;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:color,border-color,opacity,background-color;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-pager-list-button:hover,.bb-pager-list-button:focus{background-color:#0000000a}.bb-pager-list-button.active,.bb-pager-list-button.active:hover{color:#2196f3;cursor:default;border-color:#2196f3;background-color:transparent}.bb-pager-list-button:disabled{opacity:.35;cursor:default;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTablePager, decorators: [{
|
|
226
226
|
type: Component,
|
|
227
227
|
args: [{ selector: 'bb-table-pager', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
228
228
|
'class': 'bb-table-pager',
|
|
@@ -242,9 +242,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
242
242
|
|
|
243
243
|
class BbTableColumnDef {
|
|
244
244
|
}
|
|
245
|
-
BbTableColumnDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
246
|
-
BbTableColumnDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
245
|
+
BbTableColumnDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableColumnDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
246
|
+
BbTableColumnDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbTableColumnDef, selector: "[bbTableColumnDef]", ngImport: i0 });
|
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableColumnDef, decorators: [{
|
|
248
248
|
type: Directive,
|
|
249
249
|
args: [{
|
|
250
250
|
selector: '[bbTableColumnDef]'
|
|
@@ -252,9 +252,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
252
252
|
}] });
|
|
253
253
|
class BbTableRowDef {
|
|
254
254
|
}
|
|
255
|
-
BbTableRowDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
256
|
-
BbTableRowDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
257
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
255
|
+
BbTableRowDef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableRowDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
256
|
+
BbTableRowDef.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbTableRowDef, selector: "[bbTableRowDef]", ngImport: i0 });
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableRowDef, decorators: [{
|
|
258
258
|
type: Directive,
|
|
259
259
|
args: [{
|
|
260
260
|
selector: '[bbTableRowDef]'
|
|
@@ -398,9 +398,9 @@ class BbTable {
|
|
|
398
398
|
return this.form.valueChanges.pipe(startWith(this.form.value));
|
|
399
399
|
}
|
|
400
400
|
}
|
|
401
|
-
BbTable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
402
|
-
BbTable.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbTable, selector: "bb-table", inputs: { identifier: "identifier", dataSource: "dataSource", queryFields: "queryFields", sortingStrategy: "sortingStrategy", header: "header", footer: "footer", sizes: "sizes" }, host: { classAttribute: "bb-table" }, queries: [{ propertyName: "tableRowTemplate", first: true, predicate: BbTableRowDef, descendants: true, read: TemplateRef }, { propertyName: "tableColumnTemplates", predicate: BbTableColumnDef, read: TemplateRef }], ngImport: i0, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i3.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "directive", type: i3.BbSuffix, selector: "[bbSuffix]" }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "component", type: i3.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "component", type: BbTablePager, selector: "bb-table-pager", inputs: ["disabled", "amountOfButtons", "showArrowButtons", "pageNumber", "totalPages"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
403
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
401
|
+
BbTable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
402
|
+
BbTable.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTable, selector: "bb-table", inputs: { identifier: "identifier", dataSource: "dataSource", queryFields: "queryFields", sortingStrategy: "sortingStrategy", header: "header", footer: "footer", sizes: "sizes" }, host: { classAttribute: "bb-table" }, queries: [{ propertyName: "tableRowTemplate", first: true, predicate: BbTableRowDef, descendants: true, read: TemplateRef }, { propertyName: "tableColumnTemplates", predicate: BbTableColumnDef, read: TemplateRef }], ngImport: i0, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i3.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "directive", type: i3.BbSuffix, selector: "[bbSuffix]" }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "component", type: i3.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "component", type: BbTablePager, selector: "bb-table-pager", inputs: ["disabled", "amountOfButtons", "showArrowButtons", "pageNumber", "totalPages"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTable, decorators: [{
|
|
404
404
|
type: Component,
|
|
405
405
|
args: [{ selector: 'bb-table', host: { 'class': 'bb-table' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\n"] }]
|
|
406
406
|
}], propDecorators: { tableColumnTemplates: [{
|
|
@@ -427,9 +427,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
427
427
|
|
|
428
428
|
class BbTableCell {
|
|
429
429
|
}
|
|
430
|
-
BbTableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
431
|
-
BbTableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
430
|
+
BbTableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableCell, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
431
|
+
BbTableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTableCell, selector: "bb-table-cell", host: { classAttribute: "bb-table-cell" }, ngImport: i0, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;font-size:14px;text-align:left;line-height:1.2;font-weight:400;padding:12px 20px;display:table-cell;word-wrap:break-word;vertical-align:middle;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableCell, decorators: [{
|
|
433
433
|
type: Component,
|
|
434
434
|
args: [{ selector: 'bb-table-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'bb-table-cell' }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;font-size:14px;text-align:left;line-height:1.2;font-weight:400;padding:12px 20px;display:table-cell;word-wrap:break-word;vertical-align:middle;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"] }]
|
|
435
435
|
}] });
|
|
@@ -537,9 +537,9 @@ class BbTableHeaderCell extends BbTableHeaderCellMixinBase {
|
|
|
537
537
|
(_b = (_a = this._table) === null || _a === void 0 ? void 0 : _a.sortControl) === null || _b === void 0 ? void 0 : _b.patchValue(newValue);
|
|
538
538
|
}
|
|
539
539
|
}
|
|
540
|
-
BbTableHeaderCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
541
|
-
BbTableHeaderCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
542
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
540
|
+
BbTableHeaderCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableHeaderCell, deps: [{ token: BbTable, host: true, optional: true }, { token: 'name', attribute: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
541
|
+
BbTableHeaderCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BbTableHeaderCell, selector: "bb-table-header-cell", inputs: { disabled: "disabled", sort: "sort" }, host: { listeners: { "click": "onClick()" }, properties: { "class.disabled": "isDisabled" }, classAttribute: "bb-table-header-cell" }, usesInheritance: true, ngImport: i0, template: "<!-- The content. -->\n<ng-content></ng-content>\n\n<!-- The indicator for the sort direction. -->\n<ng-container *ngIf=\"valueChanges$ | async as value\">\n <button *ngIf=\"!isDisabled\"\n [class.asc]=\"value === 'asc'\"\n [class.desc]=\"value === 'desc'\"\n class=\"bb-table-header-cell-toggle\"\n type=\"button\"></button>\n</ng-container>\n", styles: [".bb-table-header-cell{height:50px;color:#212529;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;padding:10px 20px;position:relative;display:table-cell;vertical-align:middle;border-bottom:1px solid #d8d8d8}.bb-table-header-cell:active>.bb-table-header-cell-toggle{background-color:#00000014}.bb-table-header-cell:not(.disabled){padding-right:52px}.bb-table-header-cell.fit{width:1%;white-space:nowrap}.bb-table-header-cell.left{text-align:left}.bb-table-header-cell.center{text-align:center}.bb-table-header-cell.right{text-align:right}.bb-table-header-cell.disabled{cursor:default;pointer-events:none}.bb-table-header-cell-toggle{top:50%;right:14px;width:22px;border:none;height:22px;margin-left:auto;position:absolute;border-radius:4px;transform:translateY(-50%);background-position:center;background-repeat:no-repeat;background-color:transparent;transition:background-color .2s cubic-bezier(0,0,.2,1);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
542
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTableHeaderCell, decorators: [{
|
|
543
543
|
type: Component,
|
|
544
544
|
args: [{ selector: 'bb-table-header-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
545
545
|
'class': 'bb-table-header-cell',
|
|
@@ -573,8 +573,8 @@ const DECLARATIONS_EXPORTS = [
|
|
|
573
573
|
];
|
|
574
574
|
class TableModule {
|
|
575
575
|
}
|
|
576
|
-
TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
577
|
-
TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
576
|
+
TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
577
|
+
TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: TableModule, declarations: [BbTable,
|
|
578
578
|
BbTableColumnDef,
|
|
579
579
|
BbTableRowDef,
|
|
580
580
|
BbTableHeaderCell,
|
|
@@ -585,8 +585,8 @@ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
585
585
|
BbTableHeaderCell,
|
|
586
586
|
BbTableCell,
|
|
587
587
|
BbTablePager] });
|
|
588
|
-
TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
589
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
588
|
+
TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableModule, imports: [CommonModule, ReactiveFormsModule, ElementsModule, LocalizeModule] });
|
|
589
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableModule, decorators: [{
|
|
590
590
|
type: NgModule,
|
|
591
591
|
args: [{
|
|
592
592
|
imports: [CommonModule, ReactiveFormsModule, ElementsModule, LocalizeModule],
|
|
@@ -25,9 +25,9 @@ class BbiTheming {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
BbiTheming.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
29
|
-
BbiTheming.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
28
|
+
BbiTheming.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiTheming, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
BbiTheming.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbiTheming, selector: "[bbiTheming]", inputs: { theme: ["bbiTheming", "theme"] }, ngImport: i0 });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbiTheming, decorators: [{
|
|
31
31
|
type: Directive,
|
|
32
32
|
args: [{
|
|
33
33
|
selector: '[bbiTheming]'
|
|
@@ -156,6 +156,70 @@ function formControlThemeFactory() {
|
|
|
156
156
|
};
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
function toggleGroupThemeFactory() {
|
|
160
|
+
return {
|
|
161
|
+
grouping: '20px',
|
|
162
|
+
label: {
|
|
163
|
+
color: '#525252',
|
|
164
|
+
offset: '4px',
|
|
165
|
+
fontSize: '14px',
|
|
166
|
+
fontWeight: '400',
|
|
167
|
+
lineHeight: '1.33'
|
|
168
|
+
},
|
|
169
|
+
spacing: {
|
|
170
|
+
horizontal: '10px',
|
|
171
|
+
vertical: '4px'
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function radioButtonThemeFactory() {
|
|
177
|
+
const accentColor = new ThemeColorVariable('accentColor');
|
|
178
|
+
return {
|
|
179
|
+
size: '20px',
|
|
180
|
+
colors: {
|
|
181
|
+
accent: accentColor,
|
|
182
|
+
disabled: '#c6c6c6'
|
|
183
|
+
},
|
|
184
|
+
border: {
|
|
185
|
+
color: '#111111',
|
|
186
|
+
thickness: '1px',
|
|
187
|
+
radius: '50%'
|
|
188
|
+
},
|
|
189
|
+
outline: {
|
|
190
|
+
color: accentColor,
|
|
191
|
+
offset: '1px',
|
|
192
|
+
thickness: '2px'
|
|
193
|
+
},
|
|
194
|
+
label: {
|
|
195
|
+
color: '#111111',
|
|
196
|
+
offset: '6px',
|
|
197
|
+
fontSize: '16px',
|
|
198
|
+
fontWeight: '400',
|
|
199
|
+
lineHeight: '1.28'
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function radioGroupThemeFactory() {
|
|
205
|
+
const errorColor = new ThemeColorVariable('errorColor');
|
|
206
|
+
return {
|
|
207
|
+
grouping: '20px',
|
|
208
|
+
error: errorColor,
|
|
209
|
+
label: {
|
|
210
|
+
color: '#525252',
|
|
211
|
+
offset: '4px',
|
|
212
|
+
fontSize: '14px',
|
|
213
|
+
fontWeight: '400',
|
|
214
|
+
lineHeight: '1.33'
|
|
215
|
+
},
|
|
216
|
+
spacing: {
|
|
217
|
+
horizontal: '10px',
|
|
218
|
+
vertical: '4px'
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
|
|
159
223
|
function checkboxThemeFactory() {
|
|
160
224
|
const accentColor = new ThemeColorVariable('accentColor');
|
|
161
225
|
return {
|
|
@@ -190,6 +254,33 @@ function checkboxThemeFactory() {
|
|
|
190
254
|
};
|
|
191
255
|
}
|
|
192
256
|
|
|
257
|
+
function toggleThemeFactory() {
|
|
258
|
+
const accentColor = new ThemeColorVariable('accentColor');
|
|
259
|
+
return {
|
|
260
|
+
grouping: '20px',
|
|
261
|
+
width: '40px',
|
|
262
|
+
height: '20px',
|
|
263
|
+
colors: {
|
|
264
|
+
accent: accentColor,
|
|
265
|
+
disabled: '#c6c6c6',
|
|
266
|
+
indicator: '#ffffff',
|
|
267
|
+
background: '#aeaeae'
|
|
268
|
+
},
|
|
269
|
+
outline: {
|
|
270
|
+
color: accentColor,
|
|
271
|
+
offset: '1px',
|
|
272
|
+
thickness: '2px'
|
|
273
|
+
},
|
|
274
|
+
label: {
|
|
275
|
+
color: '#111111',
|
|
276
|
+
offset: '6px',
|
|
277
|
+
fontSize: '16px',
|
|
278
|
+
fontWeight: '400',
|
|
279
|
+
lineHeight: '1.28'
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
|
|
193
284
|
class Theme {
|
|
194
285
|
constructor(theme) {
|
|
195
286
|
this.isObject = (item) => {
|
|
@@ -210,6 +301,10 @@ class Theme {
|
|
|
210
301
|
formControlAddon: formControlAddonThemeFactory(),
|
|
211
302
|
checkbox: checkboxThemeFactory(),
|
|
212
303
|
checkboxGroup: checkboxGroupThemeFactory(),
|
|
304
|
+
radioButton: radioButtonThemeFactory(),
|
|
305
|
+
radioGroup: radioGroupThemeFactory(),
|
|
306
|
+
toggle: toggleThemeFactory(),
|
|
307
|
+
toggleGroup: toggleGroupThemeFactory(),
|
|
213
308
|
controlError: controlErrorThemeFactory()
|
|
214
309
|
};
|
|
215
310
|
}
|
|
@@ -268,10 +363,10 @@ class Theme {
|
|
|
268
363
|
|
|
269
364
|
class ThemingModule {
|
|
270
365
|
}
|
|
271
|
-
ThemingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
272
|
-
ThemingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
273
|
-
ThemingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
366
|
+
ThemingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
367
|
+
ThemingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule, declarations: [BbiTheming], exports: [BbiTheming] });
|
|
368
|
+
ThemingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule });
|
|
369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ThemingModule, decorators: [{
|
|
275
370
|
type: NgModule,
|
|
276
371
|
args: [{
|
|
277
372
|
declarations: [BbiTheming],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-theming.mjs","sources":["../../../projects/bb-foundation/theming/src/lib/theming.directive.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control-addon.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/utils/theming.variable.ts","../../../projects/bb-foundation/theming/src/lib/themes/control-error.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox.theme.ts","../../../projects/bb-foundation/theming/src/lib/theming.data.ts","../../../projects/bb-foundation/theming/src/lib/theming.module.ts","../../../projects/bb-foundation/theming/src/bravobit-bb-foundation-theming.ts"],"sourcesContent":["import {Directive, ElementRef, Input, Renderer2, RendererStyleFlags2} from '@angular/core';\nimport {Theme} from './theming.data';\n\n@Directive({\n selector: '[bbiTheming]'\n})\nexport class BbiTheming {\n\n // Inputs.\n @Input('bbiTheming') set theme(theme: Theme | null) {\n this._theme = theme;\n this.setTheme();\n }\n\n // Cache.\n private _theme: Theme | null = null;\n\n constructor(private _renderer: Renderer2,\n private _elementRef: ElementRef) {\n }\n\n private setTheme() {\n if (!this._theme) {\n return;\n }\n const variables = this._theme.variables();\n const element = this._elementRef.nativeElement;\n\n for (const key in variables) {\n const value = variables?.[key];\n this._renderer.setStyle(element, key, value, RendererStyleFlags2.DashCase);\n }\n }\n\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface FormControlAddonTheme {\n spacing: ThemeVariable;\n}\n\nexport function formControlAddonThemeFactory(): FormControlAddonTheme {\n return {\n spacing: '10px'\n };\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxGroupTheme {\n grouping: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function checkboxGroupThemeFactory(): CheckboxGroupTheme {\n return {\n grouping: '20px',\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {GlobalVariables, GlobalVariablesKey} from '../theming.interface';\n\nexport type ThemeVariable = ThemeVariableFunction | string;\n\nexport abstract class ThemeVariableFunction {\n\n protected constructor(private _key: GlobalVariablesKey) {\n }\n\n abstract format(value: string): string;\n\n toString(variables: GlobalVariables) {\n const value = variables?.[this._key] ?? null;\n if (!value) {\n throw new Error(`Invalid variable key \"${this._key}\"`);\n }\n return !!value ? this.format(value) : null;\n }\n\n}\n\nexport class ThemeColorVariable extends ThemeVariableFunction {\n\n // State.\n private _opacity: number = 1;\n\n constructor(key: GlobalVariablesKey) {\n super(key);\n }\n\n format(value: string) {\n const rgb = this.hexToRgb(value);\n return this.toRgba(rgb);\n }\n\n opacity(value: number) {\n this._opacity = value;\n return this;\n }\n\n private toRgba(data: { red: number, green: number, blue: number }) {\n return `rgba(${data?.red},${data?.green},${data?.blue},${this._opacity})`;\n }\n\n private hexToRgb(value: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(value);\n if (!result) {\n throw new Error(`Invalid color format for \"${value}\". Only hex is currently supported.`);\n }\n\n const red = parseInt(result?.[1], 16);\n const green = parseInt(result?.[2], 16);\n const blue = parseInt(result?.[3], 16);\n return {red, green, blue};\n }\n\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface ControlErrorTheme {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n lineHeight: ThemeVariable;\n fontWeight: ThemeVariable;\n spacing: ThemeVariable;\n}\n\nexport function controlErrorThemeFactory(): ControlErrorTheme {\n return {\n color: new ThemeColorVariable('errorColor'),\n fontSize: '13px',\n lineHeight: '1.5',\n fontWeight: '400',\n spacing: '4px'\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\ninterface BorderTheme {\n radius: ThemeVariable;\n width: ThemeVariable;\n style: ThemeVariable;\n color: ThemeVariable;\n}\n\nexport interface FormControlTheme {\n grouping: ThemeVariable;\n color: ThemeVariable;\n background: ThemeVariable;\n error: {\n color: ThemeVariable;\n background: ThemeVariable;\n placeholderColor: ThemeVariable;\n };\n border: BorderTheme;\n focused: {\n color: ThemeVariable;\n background: ThemeVariable;\n shadow: ThemeVariable;\n border: BorderTheme;\n };\n disabled: {\n color: ThemeVariable;\n background: ThemeVariable;\n opacity: ThemeVariable;\n border: BorderTheme;\n };\n}\n\nexport function formControlThemeFactory(): FormControlTheme {\n const errorColorKey = 'errorColor';\n const inputColor = '#111111';\n const backgroundColor = '#ffffff';\n return {\n grouping: '20px',\n color: inputColor,\n background: backgroundColor,\n error: {\n color: new ThemeColorVariable(errorColorKey),\n background: new ThemeColorVariable(errorColorKey).opacity(0.1),\n placeholderColor: new ThemeColorVariable(errorColorKey).opacity(0.4)\n },\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: 'rgba(67, 90, 111, 0.3)'\n },\n focused: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n shadow: '0 0 0 3px rgba(0, 123, 255, 0.2)'\n },\n disabled: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n opacity: '0.25'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxTheme {\n size: ThemeVariable;\n grouping: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n };\n\n border: {\n color: ThemeVariable;\n thickness: ThemeVariable;\n radius: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n check: {\n size: ThemeVariable;\n color: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function checkboxThemeFactory(): CheckboxTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n size: '20px',\n grouping: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6'\n },\n border: {\n color: '#111111',\n thickness: '1px',\n radius: '4px'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n check: {\n size: '12px',\n color: 'white',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {GlobalTheme, GlobalVariables, PartialGlobalTheme} from './theming.interface';\nimport {formControlAddonThemeFactory} from './themes/form-control-addon.theme';\nimport {checkboxGroupThemeFactory} from './themes/checkbox-group.theme';\nimport {controlErrorThemeFactory} from './themes/control-error.theme';\nimport {formControlThemeFactory} from './themes/form-control.theme';\nimport {ThemeVariableFunction} from './utils/theming.variable';\nimport {checkboxThemeFactory} from './themes/checkbox.theme';\n\nexport class Theme {\n\n protected readonly data: GlobalTheme;\n protected readonly globals: GlobalVariables;\n\n constructor(theme?: PartialGlobalTheme) {\n const defaultFactories = this.defaultFactories();\n this.data = this.mergeThemeData(defaultFactories, theme);\n this.globals = this.getGlobals();\n }\n\n variables() {\n return this.getContents(this.data);\n }\n\n protected defaultFactories(): GlobalTheme {\n return {\n accentColor: '#1565c0',\n errorColor: '#bd322a',\n formControl: formControlThemeFactory(),\n formControlAddon: formControlAddonThemeFactory(),\n checkbox: checkboxThemeFactory(),\n checkboxGroup: checkboxGroupThemeFactory(),\n controlError: controlErrorThemeFactory()\n };\n }\n\n protected getContents(data: object, scope: string | null = null) {\n return Object.keys(data).reduce((previous, current) => {\n const value = data?.[current];\n const token = this.getToken(current, scope);\n\n if (typeof value === 'object' && value !== null && !(value instanceof ThemeVariableFunction)) {\n const formatted = this.getContents(value, token);\n return {...previous, ...formatted};\n }\n\n const formattedValue = (value instanceof ThemeVariableFunction)\n ? value.toString(this.globals)\n : value;\n\n if (!formattedValue) {\n return previous;\n }\n\n return {...previous, [`--${token}`]: formattedValue};\n }, {}) as { [key: string]: string };\n }\n\n protected getToken(key: string, scope: string) {\n const token = this.tokenize(key);\n return [scope, token].filter(item => !!item).join('-');\n }\n\n protected tokenize(value: string) {\n const result = value.replace(/([A-Z])/g, ' $1');\n return result.split(' ').join('-').toLowerCase();\n }\n\n protected mergeThemeData(target: GlobalTheme, ...sources: PartialGlobalTheme[]) {\n if (!sources?.length) {\n return target;\n }\n\n const source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, {[key]: {}});\n }\n this.mergeThemeData(target[key], source[key]);\n } else {\n Object.assign(target, {[key]: source[key]});\n }\n }\n }\n\n return this.mergeThemeData(target, ...sources);\n }\n\n protected getGlobals() {\n return {\n accentColor: this.data.accentColor,\n errorColor: this.data.errorColor\n };\n }\n\n private isObject = (item: unknown) => {\n return (item && typeof item === 'object' && !Array.isArray(item));\n };\n\n}\n","import {BbiTheming} from './theming.directive';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [BbiTheming],\n exports: [BbiTheming]\n})\nexport class ThemingModule {\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-theming.mjs","sources":["../../../projects/bb-foundation/theming/src/lib/theming.directive.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control-addon.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/utils/theming.variable.ts","../../../projects/bb-foundation/theming/src/lib/themes/control-error.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/form-control.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/toggle-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/radio-button.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/radio-group.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/checkbox.theme.ts","../../../projects/bb-foundation/theming/src/lib/themes/toggle.theme.ts","../../../projects/bb-foundation/theming/src/lib/theming.data.ts","../../../projects/bb-foundation/theming/src/lib/theming.module.ts","../../../projects/bb-foundation/theming/src/bravobit-bb-foundation-theming.ts"],"sourcesContent":["import {Directive, ElementRef, Input, Renderer2, RendererStyleFlags2} from '@angular/core';\nimport {Theme} from './theming.data';\n\n@Directive({\n selector: '[bbiTheming]'\n})\nexport class BbiTheming {\n\n // Inputs.\n @Input('bbiTheming') set theme(theme: Theme | null) {\n this._theme = theme;\n this.setTheme();\n }\n\n // Cache.\n private _theme: Theme | null = null;\n\n constructor(private _renderer: Renderer2,\n private _elementRef: ElementRef) {\n }\n\n private setTheme() {\n if (!this._theme) {\n return;\n }\n const variables = this._theme.variables();\n const element = this._elementRef.nativeElement;\n\n for (const key in variables) {\n const value = variables?.[key];\n this._renderer.setStyle(element, key, value, RendererStyleFlags2.DashCase);\n }\n }\n\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface FormControlAddonTheme {\n spacing: ThemeVariable;\n}\n\nexport function formControlAddonThemeFactory(): FormControlAddonTheme {\n return {\n spacing: '10px'\n };\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxGroupTheme {\n grouping: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function checkboxGroupThemeFactory(): CheckboxGroupTheme {\n return {\n grouping: '20px',\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {GlobalVariables, GlobalVariablesKey} from '../theming.interface';\n\nexport type ThemeVariable = ThemeVariableFunction | string;\n\nexport abstract class ThemeVariableFunction {\n\n protected constructor(private _key: GlobalVariablesKey) {\n }\n\n abstract format(value: string): string;\n\n toString(variables: GlobalVariables) {\n const value = variables?.[this._key] ?? null;\n if (!value) {\n throw new Error(`Invalid variable key \"${this._key}\"`);\n }\n return !!value ? this.format(value) : null;\n }\n\n}\n\nexport class ThemeColorVariable extends ThemeVariableFunction {\n\n // State.\n private _opacity: number = 1;\n\n constructor(key: GlobalVariablesKey) {\n super(key);\n }\n\n format(value: string) {\n const rgb = this.hexToRgb(value);\n return this.toRgba(rgb);\n }\n\n opacity(value: number) {\n this._opacity = value;\n return this;\n }\n\n private toRgba(data: { red: number, green: number, blue: number }) {\n return `rgba(${data?.red},${data?.green},${data?.blue},${this._opacity})`;\n }\n\n private hexToRgb(value: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(value);\n if (!result) {\n throw new Error(`Invalid color format for \"${value}\". Only hex is currently supported.`);\n }\n\n const red = parseInt(result?.[1], 16);\n const green = parseInt(result?.[2], 16);\n const blue = parseInt(result?.[3], 16);\n return {red, green, blue};\n }\n\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface ControlErrorTheme {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n lineHeight: ThemeVariable;\n fontWeight: ThemeVariable;\n spacing: ThemeVariable;\n}\n\nexport function controlErrorThemeFactory(): ControlErrorTheme {\n return {\n color: new ThemeColorVariable('errorColor'),\n fontSize: '13px',\n lineHeight: '1.5',\n fontWeight: '400',\n spacing: '4px'\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\ninterface BorderTheme {\n radius: ThemeVariable;\n width: ThemeVariable;\n style: ThemeVariable;\n color: ThemeVariable;\n}\n\nexport interface FormControlTheme {\n grouping: ThemeVariable;\n color: ThemeVariable;\n background: ThemeVariable;\n error: {\n color: ThemeVariable;\n background: ThemeVariable;\n placeholderColor: ThemeVariable;\n };\n border: BorderTheme;\n focused: {\n color: ThemeVariable;\n background: ThemeVariable;\n shadow: ThemeVariable;\n border: BorderTheme;\n };\n disabled: {\n color: ThemeVariable;\n background: ThemeVariable;\n opacity: ThemeVariable;\n border: BorderTheme;\n };\n}\n\nexport function formControlThemeFactory(): FormControlTheme {\n const errorColorKey = 'errorColor';\n const inputColor = '#111111';\n const backgroundColor = '#ffffff';\n return {\n grouping: '20px',\n color: inputColor,\n background: backgroundColor,\n error: {\n color: new ThemeColorVariable(errorColorKey),\n background: new ThemeColorVariable(errorColorKey).opacity(0.1),\n placeholderColor: new ThemeColorVariable(errorColorKey).opacity(0.4)\n },\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: 'rgba(67, 90, 111, 0.3)'\n },\n focused: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n shadow: '0 0 0 3px rgba(0, 123, 255, 0.2)'\n },\n disabled: {\n color: inputColor,\n background: backgroundColor,\n border: {\n radius: '6px',\n width: '1px',\n style: 'solid',\n color: '#212121'\n },\n opacity: '0.25'\n }\n };\n}\n","import {ThemeVariable} from '../utils/theming.variable';\n\nexport interface ToggleGroupTheme {\n grouping: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function toggleGroupThemeFactory(): ToggleGroupTheme {\n return {\n grouping: '20px',\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface RadioButtonTheme {\n size: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n };\n\n border: {\n color: ThemeVariable;\n thickness: ThemeVariable;\n radius: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function radioButtonThemeFactory(): RadioButtonTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n size: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6'\n },\n border: {\n color: '#111111',\n thickness: '1px',\n radius: '50%'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface RadioGroupTheme {\n grouping: ThemeVariable;\n error: ThemeVariable;\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n\n spacing: {\n horizontal: ThemeVariable;\n vertical: ThemeVariable;\n };\n}\n\nexport function radioGroupThemeFactory(): RadioGroupTheme {\n const errorColor = new ThemeColorVariable('errorColor');\n return {\n grouping: '20px',\n error: errorColor,\n label: {\n color: '#525252',\n offset: '4px',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '1.33'\n },\n spacing: {\n horizontal: '10px',\n vertical: '4px'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface CheckboxTheme {\n size: ThemeVariable;\n grouping: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n };\n\n border: {\n color: ThemeVariable;\n thickness: ThemeVariable;\n radius: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n check: {\n size: ThemeVariable;\n color: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function checkboxThemeFactory(): CheckboxTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n size: '20px',\n grouping: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6'\n },\n border: {\n color: '#111111',\n thickness: '1px',\n radius: '4px'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n check: {\n size: '12px',\n color: 'white',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {ThemeColorVariable, ThemeVariable} from '../utils/theming.variable';\n\nexport interface ToggleTheme {\n grouping: ThemeVariable;\n width: ThemeVariable;\n height: ThemeVariable;\n\n colors: {\n accent: ThemeVariable;\n disabled: ThemeVariable;\n indicator: ThemeVariable;\n background: ThemeVariable;\n };\n\n outline: {\n color: ThemeVariable;\n offset: ThemeVariable;\n thickness: ThemeVariable;\n };\n\n label: {\n color: ThemeVariable;\n fontSize: ThemeVariable;\n fontWeight: ThemeVariable;\n lineHeight: ThemeVariable;\n offset: ThemeVariable;\n };\n}\n\nexport function toggleThemeFactory(): ToggleTheme {\n const accentColor = new ThemeColorVariable('accentColor');\n return {\n grouping: '20px',\n width: '40px',\n height: '20px',\n colors: {\n accent: accentColor,\n disabled: '#c6c6c6',\n indicator: '#ffffff',\n background: '#aeaeae'\n },\n outline: {\n color: accentColor,\n offset: '1px',\n thickness: '2px'\n },\n label: {\n color: '#111111',\n offset: '6px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.28'\n }\n };\n}\n","import {GlobalTheme, GlobalVariables, PartialGlobalTheme} from './theming.interface';\nimport {formControlAddonThemeFactory} from './themes/form-control-addon.theme';\nimport {checkboxGroupThemeFactory} from './themes/checkbox-group.theme';\nimport {controlErrorThemeFactory} from './themes/control-error.theme';\nimport {formControlThemeFactory} from './themes/form-control.theme';\nimport {toggleGroupThemeFactory} from './themes/toggle-group.theme';\nimport {radioButtonThemeFactory} from './themes/radio-button.theme';\nimport {radioGroupThemeFactory} from './themes/radio-group.theme';\nimport {ThemeVariableFunction} from './utils/theming.variable';\nimport {checkboxThemeFactory} from './themes/checkbox.theme';\nimport {toggleThemeFactory} from './themes/toggle.theme';\n\nexport class Theme {\n\n protected readonly data: GlobalTheme;\n protected readonly globals: GlobalVariables;\n\n constructor(theme?: PartialGlobalTheme) {\n const defaultFactories = this.defaultFactories();\n this.data = this.mergeThemeData(defaultFactories, theme);\n this.globals = this.getGlobals();\n }\n\n variables() {\n return this.getContents(this.data);\n }\n\n protected defaultFactories(): GlobalTheme {\n return {\n accentColor: '#1565c0',\n errorColor: '#bd322a',\n formControl: formControlThemeFactory(),\n formControlAddon: formControlAddonThemeFactory(),\n checkbox: checkboxThemeFactory(),\n checkboxGroup: checkboxGroupThemeFactory(),\n radioButton: radioButtonThemeFactory(),\n radioGroup: radioGroupThemeFactory(),\n toggle: toggleThemeFactory(),\n toggleGroup: toggleGroupThemeFactory(),\n controlError: controlErrorThemeFactory()\n };\n }\n\n protected getContents(data: object, scope: string | null = null) {\n return Object.keys(data).reduce((previous, current) => {\n const value = data?.[current];\n const token = this.getToken(current, scope);\n\n if (typeof value === 'object' && value !== null && !(value instanceof ThemeVariableFunction)) {\n const formatted = this.getContents(value, token);\n return {...previous, ...formatted};\n }\n\n const formattedValue = (value instanceof ThemeVariableFunction)\n ? value.toString(this.globals)\n : value;\n\n if (!formattedValue) {\n return previous;\n }\n\n return {...previous, [`--${token}`]: formattedValue};\n }, {}) as { [key: string]: string };\n }\n\n protected getToken(key: string, scope: string) {\n const token = this.tokenize(key);\n return [scope, token].filter(item => !!item).join('-');\n }\n\n protected tokenize(value: string) {\n const result = value.replace(/([A-Z])/g, ' $1');\n return result.split(' ').join('-').toLowerCase();\n }\n\n protected mergeThemeData(target: GlobalTheme, ...sources: PartialGlobalTheme[]) {\n if (!sources?.length) {\n return target;\n }\n\n const source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, {[key]: {}});\n }\n this.mergeThemeData(target[key], source[key]);\n } else {\n Object.assign(target, {[key]: source[key]});\n }\n }\n }\n\n return this.mergeThemeData(target, ...sources);\n }\n\n protected getGlobals() {\n return {\n accentColor: this.data.accentColor,\n errorColor: this.data.errorColor\n };\n }\n\n private isObject = (item: unknown) => {\n return (item && typeof item === 'object' && !Array.isArray(item));\n };\n\n}\n","import {BbiTheming} from './theming.directive';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [BbiTheming],\n exports: [BbiTheming]\n})\nexport class ThemingModule {\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,9 @@ class BbTemplate {
|
|
|
17
17
|
this._viewContainerRef.createEmbeddedView(template);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
BbTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
21
|
-
BbTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
20
|
+
BbTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTemplate, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21
|
+
BbTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbTemplate, selector: "[bbTemplate]", inputs: { bbTemplate: "bbTemplate" }, ngImport: i0 });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbTemplate, decorators: [{
|
|
23
23
|
type: Directive,
|
|
24
24
|
args: [{
|
|
25
25
|
selector: '[bbTemplate]'
|
|
@@ -70,9 +70,9 @@ class BbAutosize {
|
|
|
70
70
|
this._renderer.setStyle(this.element, 'height', value);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
74
|
-
BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
73
|
+
BbAutosize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAutosize, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
74
|
+
BbAutosize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbAutosize, selector: "textarea[bbAutosize]", inputs: { minHeight: "minHeight", maxHeight: "maxHeight", rows: "rows" }, host: { listeners: { "window:resize": "onWindowResize()", "input": "onInputReceived()" }, properties: { "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "rows": "this.rows" } }, ngImport: i0 });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAutosize, decorators: [{
|
|
76
76
|
type: Directive,
|
|
77
77
|
args: [{
|
|
78
78
|
selector: 'textarea[bbAutosize]'
|
|
@@ -126,9 +126,9 @@ class BbFocus {
|
|
|
126
126
|
setTimeout(() => this.nativeElement.focus(), 0);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
130
|
-
BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
129
|
+
BbFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocus, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
130
|
+
BbFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbFocus, selector: "[bbFocus]", ngImport: i0 });
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocus, decorators: [{
|
|
132
132
|
type: Directive,
|
|
133
133
|
args: [{
|
|
134
134
|
selector: '[bbFocus]'
|
|
@@ -197,9 +197,9 @@ class BbFocusTrap {
|
|
|
197
197
|
return Array(...nodes);
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
-
BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
201
|
-
BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
200
|
+
BbFocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocusTrap, deps: [{ token: i1.Platform }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
201
|
+
BbFocusTrap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbFocusTrap, selector: "[bbFocusTrap]", host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 });
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbFocusTrap, decorators: [{
|
|
203
203
|
type: Directive,
|
|
204
204
|
args: [{
|
|
205
205
|
selector: '[bbFocusTrap]'
|
|
@@ -211,16 +211,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
211
211
|
|
|
212
212
|
class UtilsModule {
|
|
213
213
|
}
|
|
214
|
-
UtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
215
|
-
UtilsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
214
|
+
UtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
215
|
+
UtilsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule, declarations: [BbTemplate,
|
|
216
216
|
BbAutosize,
|
|
217
217
|
BbFocus,
|
|
218
218
|
BbFocusTrap], exports: [BbTemplate,
|
|
219
219
|
BbAutosize,
|
|
220
220
|
BbFocus,
|
|
221
221
|
BbFocusTrap] });
|
|
222
|
-
UtilsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
222
|
+
UtilsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule });
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: UtilsModule, decorators: [{
|
|
224
224
|
type: NgModule,
|
|
225
225
|
args: [{
|
|
226
226
|
declarations: [
|