oasys-lib 0.0.4 → 0.0.48

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 (36) hide show
  1. package/bundles/oasys-lib.umd.js +336 -0
  2. package/bundles/oasys-lib.umd.js.map +1 -0
  3. package/esm2015/lib/components/button/button.component.js +91 -0
  4. package/esm2015/lib/components/button/button.js +2 -0
  5. package/esm2015/lib/components/icon/icon.component.js +59 -0
  6. package/{esm2020/lib/components/icon/icon.mjs → esm2015/lib/components/icon/icon.js} +0 -0
  7. package/esm2015/lib/components/layout/box/box.component.js +32 -0
  8. package/esm2015/lib/components/layout/inline/inline.component.js +20 -0
  9. package/{esm2020/lib/components/text/text.mjs → esm2015/lib/components/text/text.js} +0 -0
  10. package/esm2015/lib/oasys-lib.module.js +52 -0
  11. package/{esm2020/lib/services/token.service.mjs → esm2015/lib/services/token.service.js} +4 -4
  12. package/{esm2020/lib/services/window.service.mjs → esm2015/lib/services/window.service.js} +4 -4
  13. package/{esm2020/oasys-lib.mjs → esm2015/oasys-lib.js} +0 -0
  14. package/{esm2020/public-api.mjs → esm2015/public-api.js} +2 -1
  15. package/fesm2015/oasys-lib.js +292 -0
  16. package/fesm2015/oasys-lib.js.map +1 -0
  17. package/lib/components/button/button.component.d.ts +7 -5
  18. package/lib/components/button/button.component.d.ts.map +1 -1
  19. package/lib/components/button/button.d.ts +1 -2
  20. package/lib/components/button/button.d.ts.map +1 -1
  21. package/lib/components/icon/icon.component.d.ts.map +1 -1
  22. package/lib/oasys-lib.module.d.ts +1 -1
  23. package/lib/oasys-lib.module.d.ts.map +1 -1
  24. package/package.json +8 -21
  25. package/public-api.d.ts +1 -0
  26. package/public-api.d.ts.map +1 -1
  27. package/esm2020/lib/components/button/button.component.mjs +0 -77
  28. package/esm2020/lib/components/button/button.mjs +0 -2
  29. package/esm2020/lib/components/icon/icon.component.mjs +0 -53
  30. package/esm2020/lib/components/layout/box/box.component.mjs +0 -25
  31. package/esm2020/lib/components/layout/inline/inline.component.mjs +0 -14
  32. package/esm2020/lib/oasys-lib.module.mjs +0 -49
  33. package/fesm2015/oasys-lib.mjs +0 -257
  34. package/fesm2015/oasys-lib.mjs.map +0 -1
  35. package/fesm2020/oasys-lib.mjs +0 -257
  36. package/fesm2020/oasys-lib.mjs.map +0 -1
@@ -1,257 +0,0 @@
1
- import * as i3 from '@angular/common';
2
- import { CommonModule, APP_BASE_HREF } from '@angular/common';
3
- import * as i0 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';
7
-
8
- function _window() {
9
- return window;
10
- }
11
- class WindowService {
12
- get nativeWindow() {
13
- return _window();
14
- }
15
- }
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: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root'
22
- }]
23
- }] });
24
-
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 {
177
- constructor() { }
178
- ngOnInit() {
179
- }
180
- }
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: [{
184
- type: Component,
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"] }]
186
- }], ctorParameters: function () { return []; } });
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
-
209
- class OasysLibModule {
210
- }
211
- OasysLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
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
- ]] });
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: OasysLibModule, decorators: [{
225
- type: NgModule,
226
- args: [{
227
- declarations: [
228
- ButtonComponent,
229
- LayoutInlineComponent,
230
- IconComponent,
231
- LayoutBoxComponent
232
- ],
233
- imports: [
234
- CommonModule,
235
- RouterModule.forRoot([])
236
- ],
237
- exports: [
238
- ButtonComponent,
239
- LayoutBoxComponent
240
- ],
241
- providers: [
242
- WindowService,
243
- { provide: APP_BASE_HREF, useValue: '/' }
244
- ]
245
- }]
246
- }] });
247
-
248
- /*
249
- * Public API Surface of oasys-lib
250
- */
251
-
252
- /**
253
- * Generated bundle index. Do not edit.
254
- */
255
-
256
- export { ButtonComponent, IconComponent, LayoutBoxComponent, OasysLibModule };
257
- //# sourceMappingURL=oasys-lib.mjs.map
@@ -1 +0,0 @@
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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"}