oasys-lib 0.0.1 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/esm2020/lib/components/button/button.component.mjs +77 -0
  2. package/esm2020/lib/components/button/button.mjs +2 -0
  3. package/esm2020/lib/components/icon/icon.component.mjs +53 -0
  4. package/esm2020/lib/components/icon/icon.mjs +2 -0
  5. package/esm2020/lib/components/layout/box/box.component.mjs +25 -0
  6. package/esm2020/lib/components/layout/inline/inline.component.mjs +14 -0
  7. package/esm2020/lib/components/text/text.mjs +2 -0
  8. package/esm2020/lib/oasys-lib.module.mjs +35 -7
  9. package/esm2020/lib/services/token.service.mjs +37 -0
  10. package/esm2020/lib/services/window.service.mjs +19 -0
  11. package/esm2020/public-api.mjs +4 -3
  12. package/fesm2015/oasys-lib.mjs +220 -30
  13. package/fesm2015/oasys-lib.mjs.map +1 -1
  14. package/fesm2020/oasys-lib.mjs +220 -30
  15. package/fesm2020/oasys-lib.mjs.map +1 -1
  16. package/lib/components/button/button.component.d.ts +29 -0
  17. package/lib/components/button/button.component.d.ts.map +1 -0
  18. package/lib/components/button/button.d.ts +19 -0
  19. package/lib/components/button/button.d.ts.map +1 -0
  20. package/lib/components/icon/icon.component.d.ts +26 -0
  21. package/lib/components/icon/icon.component.d.ts.map +1 -0
  22. package/lib/components/icon/icon.d.ts +3 -0
  23. package/lib/components/icon/icon.d.ts.map +1 -0
  24. package/lib/components/layout/box/box.component.d.ts +12 -0
  25. package/lib/components/layout/box/box.component.d.ts.map +1 -0
  26. package/lib/components/layout/inline/inline.component.d.ts +9 -0
  27. package/lib/components/layout/inline/inline.component.d.ts.map +1 -0
  28. package/lib/components/text/text.d.ts +2 -0
  29. package/lib/components/text/text.d.ts.map +1 -0
  30. package/lib/oasys-lib.module.d.ts +8 -2
  31. package/lib/oasys-lib.module.d.ts.map +1 -0
  32. package/lib/services/token.service.d.ts +11 -0
  33. package/lib/services/token.service.d.ts.map +1 -0
  34. package/lib/services/window.service.d.ts +7 -0
  35. package/lib/services/window.service.d.ts.map +1 -0
  36. package/oasys-lib.d.ts +1 -0
  37. package/oasys-lib.d.ts.map +1 -0
  38. package/package.json +1 -1
  39. package/public-api.d.ts +4 -2
  40. package/public-api.d.ts.map +1 -0
  41. package/src/assets/bloomandwild/fonts/NeueHaasUnicaW05-Medium.woff +0 -0
  42. package/src/assets/bloomandwild/fonts/NeueHaasUnicaW05-Medium.woff2 +0 -0
  43. package/src/assets/bloomandwild/fonts/NeueHaasUnicaW05-Regular.woff +0 -0
  44. package/src/assets/bloomandwild/fonts/NeueHaasUnicaW05-Regular.woff2 +0 -0
  45. package/src/assets/bloomandwild/fonts/TiemposHeadlineWeb-Bold.woff +0 -0
  46. package/src/assets/bloomandwild/fonts/TiemposHeadlineWeb-Bold.woff2 +0 -0
  47. package/src/assets/bloomandwild/icons/icons.svg +1 -0
  48. package/src/assets/bloomandwild/styles.scss +34 -0
  49. package/src/assets/bloomandwild/variables.css +94 -0
  50. package/src/assets/bloomon/fonts/Patron-Regular.woff +0 -0
  51. package/src/assets/bloomon/fonts/Patron-Regular.woff2 +0 -0
  52. package/src/assets/bloomon/fonts/Patron-Thin.woff +0 -0
  53. package/src/assets/bloomon/fonts/Patron-Thin.woff2 +0 -0
  54. package/src/assets/bloomon/icons/icons.svg +1 -0
  55. package/src/assets/bloomon/styles.scss +24 -0
  56. package/src/assets/bloomon/variables.css +94 -0
  57. package/src/assets/global/variables.css +77 -0
  58. package/src/assets/layout.scss +0 -0
  59. package/src/assets/style.css +5 -0
  60. package/esm2020/lib/oasys-lib.component.mjs +0 -26
  61. package/esm2020/lib/oasys-lib.service.mjs +0 -14
  62. package/lib/oasys-lib.component.d.ts +0 -8
  63. package/lib/oasys-lib.service.d.ts +0 -6
@@ -1,56 +1,246 @@
1
+ import * as i3 from '@angular/common';
2
+ import { CommonModule, APP_BASE_HREF } from '@angular/common';
1
3
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, NgModule } from '@angular/core';
4
+ import { Injectable, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, EventEmitter, Output, NgModule } from '@angular/core';
5
+ import * as i2 from '@angular/router';
6
+ import { RouterModule } from '@angular/router';
3
7
 
4
- class OasysLibService {
5
- constructor() { }
8
+ function _window() {
9
+ return window;
10
+ }
11
+ class WindowService {
12
+ get nativeWindow() {
13
+ return _window();
14
+ }
6
15
  }
7
- OasysLibService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8
- OasysLibService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibService, providedIn: 'root' });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibService, decorators: [{
16
+ WindowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: WindowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ WindowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: WindowService, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: WindowService, decorators: [{
10
19
  type: Injectable,
11
20
  args: [{
12
21
  providedIn: 'root'
13
22
  }]
14
- }], ctorParameters: function () { return []; } });
23
+ }] });
15
24
 
16
- class OasysLibComponent {
25
+ class TokenService {
26
+ constructor(windowRef) {
27
+ this.windowRef = windowRef;
28
+ }
29
+ /*
30
+ Get the brand name for the currently enable custom property set (ie. /bloomon/variables.css)
31
+ Because variables are scoped via a selector (ie: ':root .bloomon {}')
32
+ we cannot get brand-specific custom properties programatically
33
+
34
+ Important: Ensure that the component requiring the brand name has locally scoped the custom property:
35
+ | ui-icon {
36
+ | --icon-component-brand: var(--utility-brand-name);
37
+ | }
38
+ */
39
+ getBrandName(tokenName, element) {
40
+ return this.getTokenValue(tokenName, element);
41
+ }
42
+ getTokenValue(tokenName, element) {
43
+ const rootElement = element || this.windowRef.nativeWindow.document.documentElement;
44
+ return this.windowRef.nativeWindow.getComputedStyle(rootElement)
45
+ .getPropertyValue(tokenName)
46
+ .trim() || '';
47
+ }
48
+ }
49
+ TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TokenService, deps: [{ token: WindowService }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TokenService, providedIn: 'root' });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TokenService, decorators: [{
52
+ type: Injectable,
53
+ args: [{
54
+ providedIn: 'root'
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: WindowService }]; } });
57
+
58
+ class IconComponent {
59
+ constructor(tokenService, windowRef, elementRef) {
60
+ this.tokenService = tokenService;
61
+ this.windowRef = windowRef;
62
+ this.elementRef = elementRef;
63
+ this.iconSize = 'large';
64
+ this.iconContext = 'none';
65
+ }
66
+ convertRemToPixels(remString) {
67
+ const remNumber = parseFloat(remString.replace('rem', ''));
68
+ return remNumber * parseFloat(getComputedStyle(this.windowRef.nativeWindow.document.documentElement).fontSize);
69
+ }
70
+ ngOnChanges() {
71
+ this.ngOnInit();
72
+ }
73
+ ngOnInit() {
74
+ this.iconBrandPath = `${this.tokenService.getBrandName(`--icon-component-brand`, this.elementRef.nativeElement)}`;
75
+ this.size = this.tokenService.getTokenValue(`--global-size-icon-${this.iconSize}`);
76
+ this.iconDisplayClasses = [
77
+ `icon-context-${this.iconContext}`,
78
+ `icon-size-${this.iconSize}`
79
+ ];
80
+ const sizeInPixels = this.convertRemToPixels(this.size);
81
+ this.iconWidth = sizeInPixels;
82
+ this.iconHeight = sizeInPixels;
83
+ }
84
+ }
85
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: IconComponent, deps: [{ token: TokenService }, { token: WindowService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
86
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: IconComponent, selector: "ui-icon", inputs: { iconSize: "iconSize", iconName: "iconName", iconContext: "iconContext", iconWidth: "iconWidth", iconHeight: "iconHeight", iconClass: "iconClass" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" attr.width=\"{{iconWidth}}px\" attr.height=\"{{iconHeight}}px\" attr.class=\"{{iconClass}}\">\n <use attr.xlink:href=\"./{{iconBrandPath}}/assets/icons/icons.svg#icon-{{iconName}}-24\"></use>\n </svg>\n</div>\n", styles: ["ui-icon{--icon-component-brand: var(--utility-brand-name)}.ui-icon{display:inline-flex}.ui-icon.icon-size-large.icon-context-leading{margin-left:calc(var(--component-size-button-large-icon-offset-leading) * -1)}.ui-icon.icon-size-large.icon-context-trailing{margin-right:calc(var(--component-size-button-large-icon-offset-trailing) * -1)}.ui-icon.icon-size-large.icon-context-iconOnly{margin-left:calc(var(--component-size-button-large-icon-offset-icon-only) * -1);margin-right:calc(var(--component-size-button-large-icon-offset-icon-only) * -1)}.ui-icon.icon-size-small.icon-context-leading{margin-left:calc(var(--component-size-button-small-icon-offset-leading) * -1)}.ui-icon.icon-size-small.icon-context-trailing{margin-right:calc(var(--component-size-button-small-icon-offset-trailing) * -1)}.ui-icon.icon-size-small.icon-context-iconOnly{margin-left:calc(var(--component-size-button-small-icon-offset-icon-only) * -1);margin-right:calc(var(--component-size-button-small-icon-offset-icon-only) * -1)}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: IconComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'ui-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" attr.width=\"{{iconWidth}}px\" attr.height=\"{{iconHeight}}px\" attr.class=\"{{iconClass}}\">\n <use attr.xlink:href=\"./{{iconBrandPath}}/assets/icons/icons.svg#icon-{{iconName}}-24\"></use>\n </svg>\n</div>\n", styles: ["ui-icon{--icon-component-brand: var(--utility-brand-name)}.ui-icon{display:inline-flex}.ui-icon.icon-size-large.icon-context-leading{margin-left:calc(var(--component-size-button-large-icon-offset-leading) * -1)}.ui-icon.icon-size-large.icon-context-trailing{margin-right:calc(var(--component-size-button-large-icon-offset-trailing) * -1)}.ui-icon.icon-size-large.icon-context-iconOnly{margin-left:calc(var(--component-size-button-large-icon-offset-icon-only) * -1);margin-right:calc(var(--component-size-button-large-icon-offset-icon-only) * -1)}.ui-icon.icon-size-small.icon-context-leading{margin-left:calc(var(--component-size-button-small-icon-offset-leading) * -1)}.ui-icon.icon-size-small.icon-context-trailing{margin-right:calc(var(--component-size-button-small-icon-offset-trailing) * -1)}.ui-icon.icon-size-small.icon-context-iconOnly{margin-left:calc(var(--component-size-button-small-icon-offset-icon-only) * -1);margin-right:calc(var(--component-size-button-small-icon-offset-icon-only) * -1)}\n"] }]
90
+ }], ctorParameters: function () { return [{ type: TokenService }, { type: WindowService }, { type: i0.ElementRef }]; }, propDecorators: { iconSize: [{
91
+ type: Input
92
+ }], iconName: [{
93
+ type: Input
94
+ }], iconContext: [{
95
+ type: Input
96
+ }], iconWidth: [{
97
+ type: Input
98
+ }], iconHeight: [{
99
+ type: Input
100
+ }], iconClass: [{
101
+ type: Input
102
+ }] } });
103
+
104
+ class ButtonComponent {
105
+ constructor(changes) {
106
+ this.changes = changes;
107
+ this.buttonIconPlacement = 'leading';
108
+ // Button Stylings
109
+ this.buttonSize = 'large';
110
+ this.buttonFullWidth = false;
111
+ this.buttonType = 'primary';
112
+ this.buttonDisabled = false;
113
+ // Button Actions
114
+ this.href = '';
115
+ this.click = new EventEmitter();
116
+ this.iconContext = 'none';
117
+ }
118
+ onClick() {
119
+ console.log('button was clicked');
120
+ this.click.emit();
121
+ }
122
+ createButton() {
123
+ return {
124
+ buttonText: this.buttonText,
125
+ buttonIcon: this.buttonIcon,
126
+ buttonIconPlacement: this.buttonIconPlacement,
127
+ buttonType: this.buttonType,
128
+ buttonSize: this.buttonSize,
129
+ buttonDisabled: this.buttonDisabled,
130
+ href: this.href,
131
+ target: '',
132
+ buttonDisplayClasses: [
133
+ `type-${this.buttonType}`,
134
+ `size-${this.buttonSize}`,
135
+ `${this.buttonIcon ? 'button--has-icon' : ''}`,
136
+ `${this.buttonFullWidth ? 'button--full-width' : ''}`,
137
+ `${this.buttonText && this.buttonIcon ? 'button--icon--' + this.buttonIconPlacement : ''}`,
138
+ `${!this.buttonText && this.buttonIcon ? 'button--icon--only' : ''}`
139
+ ].filter((d) => !!d)
140
+ };
141
+ }
142
+ ngOnChanges() {
143
+ this.button = this.createButton();
144
+ console.log(this.button);
145
+ this.changes.markForCheck();
146
+ }
147
+ ngOnInit() {
148
+ this.button = this.createButton();
149
+ }
150
+ }
151
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
152
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ButtonComponent, selector: "ui-button", inputs: { buttonText: "buttonText", buttonIcon: "buttonIcon", buttonIconPlacement: "buttonIconPlacement", buttonSize: "buttonSize", buttonFullWidth: "buttonFullWidth", buttonType: "buttonType", buttonDisabled: "buttonDisabled", href: "href" }, outputs: { click: "click" }, usesOnChanges: true, ngImport: i0, template: "<button (click)=\"onClick()\"\n [routerLink]=\"button.href || null\"\n [ngClass]=\"button.buttonDisplayClasses\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n role=\"button\"\n [attr.aria-label]=\"button.buttonText\">\n <div class=\"button-content\">\n <ui-icon *ngIf=\"button.buttonIcon && button.buttonIconPlacement !== 'none'\" [iconName]=\"button.buttonIcon\" [iconSize]=\"button.buttonSize\" [iconClass]=\"'buttonIcon'\" [iconContext]=\"button.buttonIconPlacement\"></ui-icon>\n <span\n class=\"ui-text\"\n *ngIf=\"button.buttonText && button.buttonIconPlacement !== 'iconOnly'\">\n {{button.buttonText}}\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n</button>\n", styles: ["ui-button button{border:0;padding:0;position:relative;display:inline-flex;text-align:center;justify-content:center;align-items:center;border-style:solid;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-appearance:none;-webkit-font-smoothing:antialiased;border-width:var(--component-border-width-button);font-family:var(--semantic-font-family-body);border-radius:var(--component-border-radius-button)}@supports selector(:focus-visible){ui-button button:focus-visible{outline:none;box-shadow:0 0 0 var(--semantic-border-width-focus) var(--component-color-button-expressive-background)}}@supports not selector(:focus-visible){ui-button button:focus{outline:none;box-shadow:0 0 0 var(--semantic-border-width-focus) var(--component-color-button-expressive-background)}}ui-button button.type-primary{background-color:var(--component-color-button-primary-background);border-color:var(--component-color-button-primary-border);color:var(--component-color-button-primary-text)}ui-button button.type-primary .button-overlay{background-color:var(--component-color-button-primary-text)}ui-button button.type-secondary{background-color:var(--component-color-button-secondary-background);border-color:var(--component-color-button-secondary-border);color:var(--component-color-button-secondary-text)}ui-button button.type-secondary .button-overlay{background-color:var(--component-color-button-secondary-text)}ui-button button.type-tertiary{background-color:var(--component-color-button-tertiary-background);border-color:var(--component-color-button-tertiary-border);color:var(--component-color-button-tertiary-text)}ui-button button.type-tertiary .button-overlay{background-color:var(--component-color-button-tertiary-text)}ui-button button.type-primary-inverse{background-color:var(--component-color-button-primary-inverse-background);border-color:var(--component-color-button-primary-inverse-border);color:var(--component-color-button-primary-inverse-text)}ui-button button.type-primary-inverse .button-overlay{background-color:var(--component-color-button-primary-inverse-text)}ui-button button.type-secondary-inverse{background-color:var(--component-color-button-secondary-inverse-background);border-color:var(--component-color-button-secondary-inverse-border);color:var(--component-color-button-secondary-inverse-text)}ui-button button.type-secondary-inverse .button-overlay{background-color:var(--component-color-button-secondary-inverse-text)}ui-button button.type-tertiary-inverse{background-color:var(--component-color-button-tertiary-inverse-background);border-color:var(--component-color-button-tertiary-inverse-border);color:var(--component-color-button-tertiary-inverse-text)}ui-button button.type-tertiary-inverse .button-overlay{background-color:var(--component-color-button-tertiary-inverse-text)}ui-button button.type-expressive{background-color:var(--component-color-button-expressive-background);border-color:var(--component-color-button-expressive-border);color:var(--component-color-button-expressive-text)}ui-button button.type-expressive .button-overlay{background-color:var(--component-color-button-expressive-text)}ui-button button.type-danger{background-color:var(--component-color-button-danger-background);border-color:var(--component-color-button-danger-border);color:var(--component-color-button-danger-text)}ui-button button.type-danger .button-overlay{background-color:var(--component-color-button-danger-text)}ui-button button.type-facebook{background-color:var(--component-color-button-facebook-background);border-color:var(--component-color-button-facebook-border);color:var(--component-color-button-facebook-text)}ui-button button.type-facebook .button-overlay{background-color:var(--component-color-button-facebook-text)}ui-button button.type-paypal{background-color:var(--component-color-button-paypal-background);border-color:var(--component-color-button-paypal-border);color:var(--component-color-button-paypal-text)}ui-button button.type-paypal .button-overlay{background-color:var(--component-color-button-paypal-text)}ui-button button.type-trustpilot{background-color:var(--component-color-button-trustpilot-background);border-color:var(--component-color-button-trustpilot-border);color:var(--component-color-button-trustpilot-text)}ui-button button.type-trustpilot .button-overlay{background-color:var(--component-color-button-trustpilot-text)}ui-button button.size-large{padding:var(--component-size-button-large-padding-y) var(--component-size-button-large-padding-x);font-size:var(--component-size-button-large-font-size)}ui-button button.size-large .button-content{gap:var(--component-size-button-large-inline-spacing)}ui-button button.size-large .ui-icon{max-height:var(--component-size-button-large-line-height)}ui-button button.size-large .ui-text{line-height:var(--component-size-button-large-line-height)}ui-button button.size-small{padding:var(--component-size-button-small-padding-y) var(--component-size-button-small-padding-x);font-size:var(--component-size-button-small-font-size)}ui-button button.size-small .button-content{gap:var(--component-size-button-small-inline-spacing)}ui-button button.size-small .ui-icon{max-height:var(--component-size-button-small-line-height)}ui-button button.size-small .ui-text{line-height:var(--component-size-button-small-line-height)}ui-button button[disabled]{background-color:var(--component-color-button-disabled-background);border-color:var(--component-color-button-disabled-border);color:var(--component-color-button-disabled-text);cursor:default}ui-button button .buttonIcon{fill:currentColor}ui-button button .button-overlay{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;pointer-events:none;opacity:0;border-radius:var(--component-border-radius-button)}ui-button button:hover .button-overlay{opacity:var(--component-opacity-overlay-hover)}ui-button button:focus .button-overlay{opacity:var(--component-opacity-overlay-focus)}ui-button button.button--has-icon.button--icon--trailing .button-content{flex-direction:row-reverse}ui-button button .button-content{display:flex;align-items:center}ui-button button .button-content .ui-icon{display:flex;align-items:center}ui-button button .button-content .ui-text{text-transform:var(--component-text-transform-button);letter-spacing:var(--component-letter-spacing-button);font-weight:var(--component-font-weight-button)}ui-button button.button--full-width{display:flex;width:100%}\n"], components: [{ type: IconComponent, selector: "ui-icon", inputs: ["iconSize", "iconName", "iconContext", "iconWidth", "iconHeight", "iconClass"] }], directives: [{ type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ButtonComponent, decorators: [{
154
+ type: Component,
155
+ args: [{ selector: 'ui-button', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button (click)=\"onClick()\"\n [routerLink]=\"button.href || null\"\n [ngClass]=\"button.buttonDisplayClasses\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n role=\"button\"\n [attr.aria-label]=\"button.buttonText\">\n <div class=\"button-content\">\n <ui-icon *ngIf=\"button.buttonIcon && button.buttonIconPlacement !== 'none'\" [iconName]=\"button.buttonIcon\" [iconSize]=\"button.buttonSize\" [iconClass]=\"'buttonIcon'\" [iconContext]=\"button.buttonIconPlacement\"></ui-icon>\n <span\n class=\"ui-text\"\n *ngIf=\"button.buttonText && button.buttonIconPlacement !== 'iconOnly'\">\n {{button.buttonText}}\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n</button>\n", styles: ["ui-button button{border:0;padding:0;position:relative;display:inline-flex;text-align:center;justify-content:center;align-items:center;border-style:solid;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-appearance:none;-webkit-font-smoothing:antialiased;border-width:var(--component-border-width-button);font-family:var(--semantic-font-family-body);border-radius:var(--component-border-radius-button)}@supports selector(:focus-visible){ui-button button:focus-visible{outline:none;box-shadow:0 0 0 var(--semantic-border-width-focus) var(--component-color-button-expressive-background)}}@supports not selector(:focus-visible){ui-button button:focus{outline:none;box-shadow:0 0 0 var(--semantic-border-width-focus) var(--component-color-button-expressive-background)}}ui-button button.type-primary{background-color:var(--component-color-button-primary-background);border-color:var(--component-color-button-primary-border);color:var(--component-color-button-primary-text)}ui-button button.type-primary .button-overlay{background-color:var(--component-color-button-primary-text)}ui-button button.type-secondary{background-color:var(--component-color-button-secondary-background);border-color:var(--component-color-button-secondary-border);color:var(--component-color-button-secondary-text)}ui-button button.type-secondary .button-overlay{background-color:var(--component-color-button-secondary-text)}ui-button button.type-tertiary{background-color:var(--component-color-button-tertiary-background);border-color:var(--component-color-button-tertiary-border);color:var(--component-color-button-tertiary-text)}ui-button button.type-tertiary .button-overlay{background-color:var(--component-color-button-tertiary-text)}ui-button button.type-primary-inverse{background-color:var(--component-color-button-primary-inverse-background);border-color:var(--component-color-button-primary-inverse-border);color:var(--component-color-button-primary-inverse-text)}ui-button button.type-primary-inverse .button-overlay{background-color:var(--component-color-button-primary-inverse-text)}ui-button button.type-secondary-inverse{background-color:var(--component-color-button-secondary-inverse-background);border-color:var(--component-color-button-secondary-inverse-border);color:var(--component-color-button-secondary-inverse-text)}ui-button button.type-secondary-inverse .button-overlay{background-color:var(--component-color-button-secondary-inverse-text)}ui-button button.type-tertiary-inverse{background-color:var(--component-color-button-tertiary-inverse-background);border-color:var(--component-color-button-tertiary-inverse-border);color:var(--component-color-button-tertiary-inverse-text)}ui-button button.type-tertiary-inverse .button-overlay{background-color:var(--component-color-button-tertiary-inverse-text)}ui-button button.type-expressive{background-color:var(--component-color-button-expressive-background);border-color:var(--component-color-button-expressive-border);color:var(--component-color-button-expressive-text)}ui-button button.type-expressive .button-overlay{background-color:var(--component-color-button-expressive-text)}ui-button button.type-danger{background-color:var(--component-color-button-danger-background);border-color:var(--component-color-button-danger-border);color:var(--component-color-button-danger-text)}ui-button button.type-danger .button-overlay{background-color:var(--component-color-button-danger-text)}ui-button button.type-facebook{background-color:var(--component-color-button-facebook-background);border-color:var(--component-color-button-facebook-border);color:var(--component-color-button-facebook-text)}ui-button button.type-facebook .button-overlay{background-color:var(--component-color-button-facebook-text)}ui-button button.type-paypal{background-color:var(--component-color-button-paypal-background);border-color:var(--component-color-button-paypal-border);color:var(--component-color-button-paypal-text)}ui-button button.type-paypal .button-overlay{background-color:var(--component-color-button-paypal-text)}ui-button button.type-trustpilot{background-color:var(--component-color-button-trustpilot-background);border-color:var(--component-color-button-trustpilot-border);color:var(--component-color-button-trustpilot-text)}ui-button button.type-trustpilot .button-overlay{background-color:var(--component-color-button-trustpilot-text)}ui-button button.size-large{padding:var(--component-size-button-large-padding-y) var(--component-size-button-large-padding-x);font-size:var(--component-size-button-large-font-size)}ui-button button.size-large .button-content{gap:var(--component-size-button-large-inline-spacing)}ui-button button.size-large .ui-icon{max-height:var(--component-size-button-large-line-height)}ui-button button.size-large .ui-text{line-height:var(--component-size-button-large-line-height)}ui-button button.size-small{padding:var(--component-size-button-small-padding-y) var(--component-size-button-small-padding-x);font-size:var(--component-size-button-small-font-size)}ui-button button.size-small .button-content{gap:var(--component-size-button-small-inline-spacing)}ui-button button.size-small .ui-icon{max-height:var(--component-size-button-small-line-height)}ui-button button.size-small .ui-text{line-height:var(--component-size-button-small-line-height)}ui-button button[disabled]{background-color:var(--component-color-button-disabled-background);border-color:var(--component-color-button-disabled-border);color:var(--component-color-button-disabled-text);cursor:default}ui-button button .buttonIcon{fill:currentColor}ui-button button .button-overlay{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;pointer-events:none;opacity:0;border-radius:var(--component-border-radius-button)}ui-button button:hover .button-overlay{opacity:var(--component-opacity-overlay-hover)}ui-button button:focus .button-overlay{opacity:var(--component-opacity-overlay-focus)}ui-button button.button--has-icon.button--icon--trailing .button-content{flex-direction:row-reverse}ui-button button .button-content{display:flex;align-items:center}ui-button button .button-content .ui-icon{display:flex;align-items:center}ui-button button .button-content .ui-text{text-transform:var(--component-text-transform-button);letter-spacing:var(--component-letter-spacing-button);font-weight:var(--component-font-weight-button)}ui-button button.button--full-width{display:flex;width:100%}\n"] }]
156
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { buttonText: [{
157
+ type: Input
158
+ }], buttonIcon: [{
159
+ type: Input
160
+ }], buttonIconPlacement: [{
161
+ type: Input
162
+ }], buttonSize: [{
163
+ type: Input
164
+ }], buttonFullWidth: [{
165
+ type: Input
166
+ }], buttonType: [{
167
+ type: Input
168
+ }], buttonDisabled: [{
169
+ type: Input
170
+ }], href: [{
171
+ type: Input
172
+ }], click: [{
173
+ type: Output
174
+ }] } });
175
+
176
+ class LayoutInlineComponent {
17
177
  constructor() { }
18
178
  ngOnInit() {
19
179
  }
20
180
  }
21
- OasysLibComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- OasysLibComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: OasysLibComponent, selector: "lib-oasys-lib", ngImport: i0, template: `
23
- <p>
24
- oasys-lib works!!!!
25
- </p>
26
- `, isInline: true });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibComponent, decorators: [{
181
+ LayoutInlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LayoutInlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
182
+ LayoutInlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: LayoutInlineComponent, selector: "ui-inline", ngImport: i0, template: "<div class=\"ui-layout-inline\"><ng-content></ng-content></div>", styles: [".ui-layout-inline{display:inline-flex;position:relative}.ui-layout-inline>*{margin-left:var(--layout-inline-spacing-default);margin-right:var(--layout-inline-spacing-default)}.ui-layout-inline:first-child{margin-left:0}.ui-layout-inline:last-child{margin-right:0}.ui-layout-inline:only-child{margin-left:0;margin-right:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LayoutInlineComponent, decorators: [{
28
184
  type: Component,
29
- args: [{
30
- selector: 'lib-oasys-lib',
31
- template: `
32
- <p>
33
- oasys-lib works!!!!
34
- </p>
35
- `,
36
- styles: []
37
- }]
185
+ args: [{ selector: 'ui-inline', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ui-layout-inline\"><ng-content></ng-content></div>", styles: [".ui-layout-inline{display:inline-flex;position:relative}.ui-layout-inline>*{margin-left:var(--layout-inline-spacing-default);margin-right:var(--layout-inline-spacing-default)}.ui-layout-inline:first-child{margin-left:0}.ui-layout-inline:last-child{margin-right:0}.ui-layout-inline:only-child{margin-left:0;margin-right:0}\n"] }]
38
186
  }], ctorParameters: function () { return []; } });
39
187
 
188
+ class LayoutBoxComponent {
189
+ constructor() {
190
+ this.padding = 'default';
191
+ }
192
+ ngOnInit() {
193
+ this.boxLayoutClasses = [
194
+ `ui-layout-box-${this.padding}`
195
+ ].join(' ');
196
+ }
197
+ }
198
+ LayoutBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LayoutBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
+ LayoutBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: LayoutBoxComponent, selector: "ui-box", inputs: { padding: "padding" }, host: { properties: { "class": "boxLayoutClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".ui-layout-box-xsmall{padding:var(--size-unit-xsmall)}.ui-layout-box-small{padding:var(--size-unit-small)}.ui-layout-box-default{padding:var(--size-unit-default)}.ui-layout-box-large{padding:var(--size-unit-large)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LayoutBoxComponent, decorators: [{
201
+ type: Component,
202
+ args: [{ selector: 'ui-box', template: '<ng-content></ng-content>', host: {
203
+ '[class]': 'boxLayoutClasses'
204
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".ui-layout-box-xsmall{padding:var(--size-unit-xsmall)}.ui-layout-box-small{padding:var(--size-unit-small)}.ui-layout-box-default{padding:var(--size-unit-default)}.ui-layout-box-large{padding:var(--size-unit-large)}\n"] }]
205
+ }], ctorParameters: function () { return []; }, propDecorators: { padding: [{
206
+ type: Input
207
+ }] } });
208
+
40
209
  class OasysLibModule {
41
210
  }
42
211
  OasysLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
43
- OasysLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, declarations: [OasysLibComponent], exports: [OasysLibComponent] });
44
- OasysLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, imports: [[]] });
212
+ OasysLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, declarations: [ButtonComponent,
213
+ LayoutInlineComponent,
214
+ IconComponent,
215
+ LayoutBoxComponent], imports: [CommonModule, i2.RouterModule], exports: [ButtonComponent,
216
+ LayoutBoxComponent] });
217
+ OasysLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, providers: [
218
+ WindowService,
219
+ { provide: APP_BASE_HREF, useValue: '/' }
220
+ ], imports: [[
221
+ CommonModule,
222
+ RouterModule.forRoot([])
223
+ ]] });
45
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, decorators: [{
46
225
  type: NgModule,
47
226
  args: [{
48
227
  declarations: [
49
- OasysLibComponent
228
+ ButtonComponent,
229
+ LayoutInlineComponent,
230
+ IconComponent,
231
+ LayoutBoxComponent
232
+ ],
233
+ imports: [
234
+ CommonModule,
235
+ RouterModule.forRoot([])
50
236
  ],
51
- imports: [],
52
237
  exports: [
53
- OasysLibComponent
238
+ ButtonComponent,
239
+ LayoutBoxComponent
240
+ ],
241
+ providers: [
242
+ WindowService,
243
+ { provide: APP_BASE_HREF, useValue: '/' }
54
244
  ]
55
245
  }]
56
246
  }] });
@@ -63,5 +253,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
63
253
  * Generated bundle index. Do not edit.
64
254
  */
65
255
 
66
- export { OasysLibComponent, OasysLibModule, OasysLibService };
256
+ export { ButtonComponent, IconComponent, LayoutBoxComponent, OasysLibModule };
67
257
  //# sourceMappingURL=oasys-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"oasys-lib.mjs","sources":["../../../projects/oasys-lib/src/lib/oasys-lib.service.ts","../../../projects/oasys-lib/src/lib/oasys-lib.component.ts","../../../projects/oasys-lib/src/lib/oasys-lib.module.ts","../../../projects/oasys-lib/src/public-api.ts","../../../projects/oasys-lib/src/oasys-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OasysLibService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-oasys-lib',\n template: `\n <p>\n oasys-lib works!!!!\n </p>\n `,\n styles: [\n ]\n})\nexport class OasysLibComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { OasysLibComponent } from './oasys-lib.component';\n\n\n\n@NgModule({\n declarations: [\n OasysLibComponent\n ],\n imports: [\n ],\n exports: [\n OasysLibComponent\n ]\n})\nexport class OasysLibModule { }\n","/*\n * Public API Surface of oasys-lib\n */\n\nexport * from './lib/oasys-lib.service';\nexport * from './lib/oasys-lib.component';\nexport * from './lib/oasys-lib.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,eAAe,CAAA;AAE1B,IAAA,WAAA,GAAA,GAAiB;;4GAFN,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCQY,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;8GALU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EARlB,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;AACD,oBAAA,MAAM,EAAE,EACP;iBACF,CAAA;;;MCIY,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,CARvB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAKjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGR,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YANhB,EACR,CAAA,EAAA,CAAA,CAAA;2FAKU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;iBACF,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"oasys-lib.mjs","sources":["../../../projects/oasys-lib/src/lib/services/window.service.ts","../../../projects/oasys-lib/src/lib/services/token.service.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.component.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.component.html","../../../projects/oasys-lib/src/lib/components/button/button.component.ts","../../../projects/oasys-lib/src/lib/components/button/button.component.html","../../../projects/oasys-lib/src/lib/components/layout/inline/inline.component.ts","../../../projects/oasys-lib/src/lib/components/layout/inline/inline.component.html","../../../projects/oasys-lib/src/lib/components/layout/box/box.component.ts","../../../projects/oasys-lib/src/lib/oasys-lib.module.ts","../../../projects/oasys-lib/src/public-api.ts","../../../projects/oasys-lib/src/oasys-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nfunction _window(): any {\n return window;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowService {\n \n get nativeWindow(): any {\n return _window();\n }\n \n}","import { Injectable } from '@angular/core';\nimport { WindowService } from './window.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n\n constructor(private windowRef: WindowService){}\n\n /*\n Get the brand name for the currently enable custom property set (ie. /bloomon/variables.css)\n Because variables are scoped via a selector (ie: ':root .bloomon {}')\n we cannot get brand-specific custom properties programatically\n\n Important: Ensure that the component requiring the brand name has locally scoped the custom property:\n | ui-icon {\n | --icon-component-brand: var(--utility-brand-name);\n | }\n */\n getBrandName(tokenName: string, element: Element): string {\n return this.getTokenValue(tokenName, element);\n }\n\n getTokenValue(tokenName: string, element?: Element): string {\n const rootElement = element || this.windowRef.nativeWindow.document.documentElement;\n return this.windowRef.nativeWindow.getComputedStyle(rootElement)\n .getPropertyValue(tokenName)\n .trim() || '';\n }\n\n}","import { Component, Input, OnInit, ViewEncapsulation, ChangeDetectionStrategy, OnChanges, ElementRef } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { WindowService } from '../../services/window.service';\nimport { IconNames, IconContext } from './icon';\n\n@Component({\n selector:'ui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent implements OnInit, OnChanges {\n @Input() iconSize: 'small'|'large' = 'large';\n @Input() iconName!: IconNames;\n @Input() iconContext: IconContext = 'none';\n\n @Input() iconWidth?: number;\n @Input() iconHeight?: number;\n @Input() iconClass?: string;\n\n size?: string;\n iconBrandPath?: string;\n iconDisplayClasses: string[];\n\n constructor(private tokenService: TokenService, private windowRef: WindowService, private elementRef: ElementRef) { }\n\n convertRemToPixels(remString: string): number {\n const remNumber = parseFloat(remString.replace('rem', ''));\n return remNumber * parseFloat(getComputedStyle(this.windowRef.nativeWindow.document.documentElement).fontSize);\n }\n\n ngOnChanges(): void {\n this.ngOnInit();\n }\n\n ngOnInit(): void {\n this.iconBrandPath = `${this.tokenService.getBrandName(`--icon-component-brand`, this.elementRef.nativeElement)}`\n this.size = this.tokenService.getTokenValue(`--global-size-icon-${this.iconSize}`);\n\n this.iconDisplayClasses = [\n `icon-context-${this.iconContext}`,\n `icon-size-${this.iconSize}`\n ];\n\n const sizeInPixels = this.convertRemToPixels(this.size);\n this.iconWidth = sizeInPixels;\n this.iconHeight = sizeInPixels;\n }\n\n}\n","<div class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" attr.width=\"{{iconWidth}}px\" attr.height=\"{{iconHeight}}px\" attr.class=\"{{iconClass}}\">\n <use attr.xlink:href=\"./{{iconBrandPath}}/assets/icons/icons.svg#icon-{{iconName}}-24\"></use>\n </svg>\n</div>\n","import { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, AfterViewInit, SimpleChanges } from '@angular/core';\nimport { IconNames, IconContext } from '../icon/icon';\nimport { TextTransform } from '../text/text';\nimport {\n UIButton,\n UIButtonBoolean,\n UIButtonSize,\n UIButtonType\n} from './button';\n\n@Component({\n selector:'ui-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n\n button: UIButton;\n\n // // Button Content\n @Input() buttonText: string;\n @Input() buttonIcon?: IconNames;\n @Input() buttonIconPlacement: IconContext = 'leading';\n\n // Button Stylings\n @Input() buttonSize: UIButtonSize = 'large';\n @Input() buttonFullWidth: UIButtonBoolean = false;\n @Input() buttonType: UIButtonType = 'primary';\n @Input() buttonDisabled: boolean = false;\n\n\n // Button Actions\n @Input() href: string = '';\n @Output() click: EventEmitter<void> = new EventEmitter();\n\n buttonDisplayClasses: string[];\n iconContext: IconContext = 'none';\n textTransform!: TextTransform;\n\n constructor(private changes: ChangeDetectorRef) { }\n\n onClick(): void {\n console.log('button was clicked');\n this.click.emit();\n }\n\n createButton(): UIButton {\n return <UIButton>{\n buttonText: this.buttonText,\n buttonIcon: this.buttonIcon,\n buttonIconPlacement: this.buttonIconPlacement,\n buttonType: this.buttonType,\n buttonSize: this.buttonSize,\n buttonDisabled: this.buttonDisabled,\n href: this.href,\n target: '',\n buttonDisplayClasses: [\n `type-${this.buttonType}`,\n `size-${this.buttonSize}`,\n `${this.buttonIcon ? 'button--has-icon': ''}`,\n `${this.buttonFullWidth ? 'button--full-width': ''}`,\n `${this.buttonText && this.buttonIcon ? 'button--icon--'+this.buttonIconPlacement : ''}`,\n `${!this.buttonText && this.buttonIcon ? 'button--icon--only' : ''}`\n ].filter((d) => !!d)\n };\n }\n\n ngOnChanges(): void {\n this.button = this.createButton();\n console.log(this.button);\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.button = this.createButton();\n }\n}\n","<button (click)=\"onClick()\"\n [routerLink]=\"button.href || null\"\n [ngClass]=\"button.buttonDisplayClasses\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n role=\"button\"\n [attr.aria-label]=\"button.buttonText\">\n <div class=\"button-content\">\n <ui-icon *ngIf=\"button.buttonIcon && button.buttonIconPlacement !== 'none'\" [iconName]=\"button.buttonIcon\" [iconSize]=\"button.buttonSize\" [iconClass]=\"'buttonIcon'\" [iconContext]=\"button.buttonIconPlacement\"></ui-icon>\n <span\n class=\"ui-text\"\n *ngIf=\"button.buttonText && button.buttonIconPlacement !== 'iconOnly'\">\n {{button.buttonText}}\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n</button>\n","import { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector:'ui-inline',\n templateUrl: './inline.component.html',\n styleUrls: ['./inline.component.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutInlineComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"ui-layout-inline\"><ng-content></ng-content></div>","import { ChangeDetectionStrategy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Component} from '@angular/core';\n\n@Component({\n selector:'ui-box',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'boxLayoutClasses'\n },\n styleUrls: ['./box.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutBoxComponent implements OnInit {\n boxLayoutClasses?: string;\n\n @Input() padding?: BoxPaddings = 'default';\n\n constructor() { }\n\n ngOnInit(): void {\n this.boxLayoutClasses = [\n `ui-layout-box-${this.padding}`\n ].join(' ');\n }\n\n}\n\nexport type BoxPaddings = 'xsmall'|'small'|'medium'|'large'|'default';","import { APP_BASE_HREF, CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ButtonComponent } from './components/button/button.component';\nimport { LayoutInlineComponent } from './components/layout/inline/inline.component';\nimport { IconComponent } from './components/icon/icon.component';\nimport { LayoutBoxComponent } from './components/layout/box/box.component';\nimport { WindowService } from './services/window.service';\n\n\n\n@NgModule({\n declarations: [\n ButtonComponent,\n LayoutInlineComponent,\n IconComponent,\n LayoutBoxComponent\n ],\n imports: [\n CommonModule,\n RouterModule.forRoot([])\n ],\n exports: [\n ButtonComponent,\n LayoutBoxComponent\n ],\n providers: [\n WindowService,\n {provide: APP_BASE_HREF, useValue: '/'}\n ]\n})\nexport class OasysLibModule { }\n","/*\n * Public API Surface of oasys-lib\n */\n\n\nexport * from './lib/oasys-lib.module';\n\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/icon/icon.component';\nexport * from './lib/components/layout/box/box.component';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.WindowService","i1.TokenService","i2.WindowService","i1.IconComponent","i1"],"mappings":"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"}