vault-lib 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, input, computed, output, ChangeDetectionStrategy, inject, ElementRef, Directive } from '@angular/core';
2
+ import { Component, input, computed, output, ChangeDetectionStrategy, signal, inject, ElementRef, Directive } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
4
+ import { CommonModule, DatePipe } from '@angular/common';
5
+ import { moveItemInArray, CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';
5
6
 
6
7
  class VaultLib {
7
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: VaultLib, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -90,6 +91,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
90
91
  />`, styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.spinner{animation-iteration-count:infinite;animation-name:spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
91
92
  }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], timingFunction: [{ type: i0.Input, args: [{ isSignal: true, alias: "timingFunction", required: false }] }], duration: [{ type: i0.Input, args: [{ isSignal: true, alias: "duration", required: false }] }] } });
92
93
 
94
+ class ProgressBar {
95
+ min = input(0, ...(ngDevMode ? [{ debugName: "min" }] : []));
96
+ max = input(100, ...(ngDevMode ? [{ debugName: "max" }] : []));
97
+ type = input('fill', ...(ngDevMode ? [{ debugName: "type" }] : []));
98
+ progress = input.required(...(ngDevMode ? [{ debugName: "progress" }] : []));
99
+ blocksCount = 40;
100
+ blocks = computed(() => {
101
+ const filledBlocksCount = this.progress() > this.max()
102
+ ? this.blocksCount
103
+ : Math.floor((this.progressValue() / 100) * this.blocksCount);
104
+ return Array.from({ length: this.blocksCount }, (_, i) => ({
105
+ filled: i < filledBlocksCount,
106
+ }));
107
+ }, ...(ngDevMode ? [{ debugName: "blocks" }] : []));
108
+ progressValue = computed(() => {
109
+ const range = this.max() - this.min();
110
+ if (this.progress() > this.max())
111
+ return 100;
112
+ return range === 0 ? 0 : ((this.progress() - this.min()) / range) * 100;
113
+ }, ...(ngDevMode ? [{ debugName: "progressValue" }] : []));
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: ProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: ProgressBar, isStandalone: true, selector: "vault-progress-bar", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
116
+ <div class="progress-bar">
117
+ @if (type() === 'fill') {
118
+ <span class="progress" [ngStyle]="{ width: progressValue() + '%' }"></span>
119
+ } @else {
120
+ @for (block of blocks(); track $index) {
121
+ <span class="block" [class.filled]="block.filled"></span>
122
+ }
123
+ }
124
+ </div>
125
+ `, isInline: true, styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.progress-bar{height:24px;width:240px;box-sizing:border-box;border:2px solid #44FF57;padding:4px;display:flex;gap:2px}.progress-bar .progress,.progress-bar .block{display:block;height:100%}.progress-bar .progress{background-color:#44ff57}.progress-bar .block{flex:1;background:transparent}.progress-bar .block.filled{background-color:#44ff57}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: ProgressBar, decorators: [{
128
+ type: Component,
129
+ args: [{ selector: 'vault-progress-bar', imports: [CommonModule], template: `
130
+ <div class="progress-bar">
131
+ @if (type() === 'fill') {
132
+ <span class="progress" [ngStyle]="{ width: progressValue() + '%' }"></span>
133
+ } @else {
134
+ @for (block of blocks(); track $index) {
135
+ <span class="block" [class.filled]="block.filled"></span>
136
+ }
137
+ }
138
+ </div>
139
+ `, styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.progress-bar{height:24px;width:240px;box-sizing:border-box;border:2px solid #44FF57;padding:4px;display:flex;gap:2px}.progress-bar .progress,.progress-bar .block{display:block;height:100%}.progress-bar .progress{background-color:#44ff57}.progress-bar .block{flex:1;background:transparent}.progress-bar .block.filled{background-color:#44ff57}\n"] }]
140
+ }], propDecorators: { min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: true }] }] } });
141
+
142
+ class Taskbar {
143
+ interval;
144
+ timestamp = signal(Date.now(), ...(ngDevMode ? [{ debugName: "timestamp" }] : []));
145
+ datePipe = inject(DatePipe);
146
+ time = computed(() => this.datePipe.transform(this.timestamp(), 'h:mm:ss'), ...(ngDevMode ? [{ debugName: "time" }] : []));
147
+ date = computed(() => this.datePipe.transform(this.timestamp(), 'M/d/y'), ...(ngDevMode ? [{ debugName: "date" }] : []));
148
+ items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
149
+ localItems = signal([], ...(ngDevMode ? [{ debugName: "localItems" }] : []));
150
+ ngOnInit() {
151
+ this.interval = setInterval(() => this.timestamp.update(() => Date.now()), 1000);
152
+ this.localItems.set(this.items());
153
+ }
154
+ drop(event) {
155
+ const items = [...this.localItems()];
156
+ moveItemInArray(items, event.previousIndex, event.currentIndex);
157
+ this.localItems.set(items);
158
+ }
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: Taskbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: Taskbar, isStandalone: true, selector: "vault-taskbar", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DatePipe], ngImport: i0, template: "<div class=\"taskbar\">\n <vault-button type=\"secondary\">menu</vault-button>\n <div class=\"content\" cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\">\n @for(item of localItems(); track item){\n <div class=\"item\" cdkDrag [cdkDragData]=\"item\" cdkDragBoundary=\".content\">\n <p>{{item.name}}</p>\n </div>\n }\n </div>\n <div class=\"time\" cdkDrag>\n <div class=\"hours\">{{time()}}</div>\n <div class=\"hours\">{{date()}}</div>\n </div>\n</div>", styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.taskbar{display:flex;gap:1rem;padding:4px;width:100vw;align-items:center;background-color:#44ff57;justify-content:space-between}.taskbar .content{display:flex;gap:1rem;flex:1;height:36px}.taskbar .content .item{border:2px solid transparent;display:flex;align-items:center;min-width:20px;padding-inline:12px;box-sizing:border-box;cursor:move}.taskbar .content .item p{-webkit-user-select:none;user-select:none}.taskbar .content .item:hover{border:2px solid #060606}.taskbar .time{font-size:10pt;gap:2px;display:flex;flex-direction:column;align-items:flex-end}.cdk-drag-placeholder{opacity:0}.content.cdk-drop-list-dragging .item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#44ff57;border:2px dashed #060606}\n"], dependencies: [{ kind: "component", type: Button, selector: "vault-button", inputs: ["type"], outputs: ["onClick"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: Taskbar, decorators: [{
163
+ type: Component,
164
+ args: [{ selector: 'vault-taskbar', imports: [Button, CdkDropList, CdkDrag], providers: [DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"taskbar\">\n <vault-button type=\"secondary\">menu</vault-button>\n <div class=\"content\" cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\">\n @for(item of localItems(); track item){\n <div class=\"item\" cdkDrag [cdkDragData]=\"item\" cdkDragBoundary=\".content\">\n <p>{{item.name}}</p>\n </div>\n }\n </div>\n <div class=\"time\" cdkDrag>\n <div class=\"hours\">{{time()}}</div>\n <div class=\"hours\">{{date()}}</div>\n </div>\n</div>", styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.taskbar{display:flex;gap:1rem;padding:4px;width:100vw;align-items:center;background-color:#44ff57;justify-content:space-between}.taskbar .content{display:flex;gap:1rem;flex:1;height:36px}.taskbar .content .item{border:2px solid transparent;display:flex;align-items:center;min-width:20px;padding-inline:12px;box-sizing:border-box;cursor:move}.taskbar .content .item p{-webkit-user-select:none;user-select:none}.taskbar .content .item:hover{border:2px solid #060606}.taskbar .time{font-size:10pt;gap:2px;display:flex;flex-direction:column;align-items:flex-end}.cdk-drag-placeholder{opacity:0}.content.cdk-drop-list-dragging .item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#44ff57;border:2px dashed #060606}\n"] }]
165
+ }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }] } });
166
+
167
+ class SystemIcon {
168
+ application = input.required(...(ngDevMode ? [{ debugName: "application" }] : []));
169
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: SystemIcon, deps: [], target: i0.ɵɵFactoryTarget.Component });
170
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: SystemIcon, isStandalone: true, selector: "vault-system-icon", inputs: { application: { classPropertyName: "application", publicName: "application", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
171
+ <div class="system-icon" cdkDrag>
172
+ <div class="icon-wrapper">
173
+ @if (application().icon) {
174
+ <img [src]="application().icon" [alt]="application().name + ' application icon.'" />
175
+ }
176
+ </div>
177
+ <label>{{ application().name }}</label>
178
+ </div>
179
+ `, isInline: true, styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.system-icon{box-sizing:border-box;width:80px;min-height:80px;border:1px solid transparent;color:#44ff57;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;gap:4px;cursor:pointer}.system-icon:hover{border:1px solid #44FF57}.system-icon .icon-wrapper{height:60px;width:60px;background:#44ff57}.system-icon label{font-size:12px}.cdk-drag-placeholder{opacity:.5}.cdk-drag-preview{border:2px dashed #060606!important}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
+ }
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: SystemIcon, decorators: [{
182
+ type: Component,
183
+ args: [{ selector: 'vault-system-icon', imports: [CdkDrag], template: `
184
+ <div class="system-icon" cdkDrag>
185
+ <div class="icon-wrapper">
186
+ @if (application().icon) {
187
+ <img [src]="application().icon" [alt]="application().name + ' application icon.'" />
188
+ }
189
+ </div>
190
+ <label>{{ application().name }}</label>
191
+ </div>
192
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}@font-face{font-family:Space Mono,monospace;src:url(https://fonts.googleapis.com/css2?family=Noto+Sans+Display:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Share+Tech&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap)}*{padding:0;margin:0;font-family:Space Mono,monospace}:host{position:relative;display:block;width:fit-content}.hover-border-directive:after{position:absolute;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-6px;left:-6px;border:2px solid #44FF57}.system-icon{box-sizing:border-box;width:80px;min-height:80px;border:1px solid transparent;color:#44ff57;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;gap:4px;cursor:pointer}.system-icon:hover{border:1px solid #44FF57}.system-icon .icon-wrapper{height:60px;width:60px;background:#44ff57}.system-icon label{font-size:12px}.cdk-drag-placeholder{opacity:.5}.cdk-drag-preview{border:2px dashed #060606!important}\n"] }]
193
+ }], propDecorators: { application: [{ type: i0.Input, args: [{ isSignal: true, alias: "application", required: true }] }] } });
194
+
93
195
  class HoverBorder {
94
196
  element = inject(ElementRef);
95
197
  borderDirectiveClassName = 'hover-border-directive';
@@ -116,6 +218,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
116
218
  }]
117
219
  }] });
118
220
 
221
+ class HoverInvert {
222
+ onMouseLeave() {
223
+ this.invertColors(this.element.nativeElement);
224
+ }
225
+ onMouseEnter() {
226
+ this.invertColors(this.element.nativeElement);
227
+ }
228
+ element = inject(ElementRef);
229
+ backgroundColor = '#060606';
230
+ primaryColor = '#44FF57';
231
+ invertColors(HTMLElement) {
232
+ console.log(HTMLElement.children);
233
+ if (HTMLElement.style.background === this.primaryColor) {
234
+ HTMLElement.style.background = this.backgroundColor;
235
+ }
236
+ else if (HTMLElement.style.background === this.backgroundColor) {
237
+ HTMLElement.style.background = this.primaryColor;
238
+ }
239
+ if (HTMLElement.style.color === this.primaryColor) {
240
+ HTMLElement.style.color = this.backgroundColor;
241
+ }
242
+ else if (HTMLElement.style.color === this.backgroundColor) {
243
+ HTMLElement.style.color = this.primaryColor;
244
+ }
245
+ for (let i = 0; i < HTMLElement.children.length; i++) {
246
+ const element = HTMLElement.children[i];
247
+ this.invertColors(element);
248
+ }
249
+ }
250
+ ngOnInit() {
251
+ if (!this.element)
252
+ throw new Error('Hover Invert element missing');
253
+ }
254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HoverInvert, deps: [], target: i0.ɵɵFactoryTarget.Directive });
255
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", type: HoverInvert, isStandalone: true, selector: "[vaultHoverInvert]", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: HoverInvert, decorators: [{
258
+ type: Directive,
259
+ args: [{
260
+ selector: '[vaultHoverInvert]',
261
+ host: {
262
+ '(mouseenter)': 'onMouseEnter()',
263
+ '(mouseleave)': 'onMouseLeave()',
264
+ },
265
+ }]
266
+ }] });
267
+
119
268
  /*
120
269
  * Public API of vault-lib
121
270
  */
@@ -124,5 +273,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
124
273
  * Generated bundle index. Do not edit.
125
274
  */
126
275
 
127
- export { Button, Fieldset, HoverBorder, Spinner, VaultLib };
276
+ export { Button, Fieldset, HoverBorder, HoverInvert, ProgressBar, Spinner, SystemIcon, Taskbar, VaultLib };
128
277
  //# sourceMappingURL=vault-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault-lib.mjs","sources":["../../../projects/vault-lib/src/lib/vault-lib.ts","../../../projects/vault-lib/src/lib/components/button/button.ts","../../../projects/vault-lib/src/lib/components/fieldset/fieldset.ts","../../../projects/vault-lib/src/lib/components/spinner/spinner.ts","../../../projects/vault-lib/src/lib/directives/hover-border.ts","../../../projects/vault-lib/src/public-api.ts","../../../projects/vault-lib/src/vault-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'vault-vault-lib',\n imports: [],\n template: `\n <p>\n vault-lib works!\n </p>\n `,\n styles: ``,\n})\nexport class VaultLib {\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n} from '@angular/core';\n\ntype ButtonType = 'primary' | 'secondary';\n\n@Component({\n selector: 'vault-button',\n standalone: true,\n imports: [],\n styleUrl: './button.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ` <button type=\"button\" (click)=\"onClick.emit($event)\" class=\"vault-button\">\n <ng-content>Button</ng-content>\n </button>`,\n host: {\n '[class.vault-button--primary]': 'isPrimary()',\n '[class.vault-button--secondary]': 'isSecondary()',\n },\n})\nexport class Button {\n type: InputSignal<ButtonType> = input<ButtonType>('primary');\n\n isPrimary = computed(() => {\n return this.type() === 'primary';\n });\n\n isSecondary = computed(() => {\n return this.type() === 'secondary';\n });\n\n onClick: OutputEmitterRef<MouseEvent> = output();\n}\n","import { Component, input, InputSignal } from '@angular/core';\n\n@Component({\n selector: 'vault-fieldset',\n imports: [],\n template: `<fieldset>\n @if (legend()) {\n <legend>{{ legend() }}</legend>\n }\n <ng-content></ng-content>\n </fieldset>`,\n styleUrl: './fieldset.scss',\n})\nexport class Fieldset {\n legend: InputSignal<string | undefined> = input<string | undefined>();\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, input, InputSignal } from '@angular/core';\n\nexport type SpinnerType = 'gear';\n\n@Component({\n selector: 'vault-spinner',\n imports: [CommonModule],\n template: `<img\n class=\"spinner\"\n [ngStyle]=\"{\n 'animation-duration': duration() + 'ms',\n 'animation-timing-function': timingFunction(),\n }\"\n [src]=\"type() + '.svg'\"\n />`,\n styleUrl: './spinner.scss',\n})\nexport class Spinner {\n type: InputSignal<SpinnerType> = input<SpinnerType>('gear');\n timingFunction: InputSignal<'linear' | 'ease-in-out'> = input<'linear' | 'ease-in-out'>('linear');\n duration: InputSignal<number> = input<number>(5000);\n}\n","import { Directive, ElementRef, inject, signal, WritableSignal } from '@angular/core';\n\n@Directive({\n selector: '[vaultHoverBorder]',\n standalone: true,\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n },\n})\nexport class HoverBorder {\n private element: ElementRef<HTMLElement> = inject(ElementRef);\n private readonly borderDirectiveClassName: string = 'hover-border-directive';\n\n onMouseEnter(): void {\n if (!this.element.nativeElement.classList.contains(this.borderDirectiveClassName))\n this.element.nativeElement.classList.add(this.borderDirectiveClassName);\n }\n\n onMouseLeave(): void {\n if (this.element.nativeElement.classList.contains(this.borderDirectiveClassName))\n this.element.nativeElement.classList.remove(this.borderDirectiveClassName);\n }\n}\n","/*\n * Public API of vault-lib\n */\n\nexport * from './lib/vault-lib';\n\nexport * from './lib/components/button/button';\nexport * from './lib/components/fieldset/fieldset';\nexport * from './lib/components/spinner/spinner';\n\nexport * from './lib/directives/hover-border';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault-lib.mjs","sources":["../../../projects/vault-lib/src/lib/vault-lib.ts","../../../projects/vault-lib/src/lib/components/button/button.ts","../../../projects/vault-lib/src/lib/components/fieldset/fieldset.ts","../../../projects/vault-lib/src/lib/components/spinner/spinner.ts","../../../projects/vault-lib/src/lib/components/progress-bar/progress-bar.ts","../../../projects/vault-lib/src/lib/components/taskbar/taskbar.ts","../../../projects/vault-lib/src/lib/components/taskbar/taskbar.html","../../../projects/vault-lib/src/lib/components/system-icon/system-icon.ts","../../../projects/vault-lib/src/lib/directives/hover-border.ts","../../../projects/vault-lib/src/lib/directives/hover-invert.ts","../../../projects/vault-lib/src/public-api.ts","../../../projects/vault-lib/src/vault-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'vault-vault-lib',\n imports: [],\n template: `\n <p>\n vault-lib works!\n </p>\n `,\n styles: ``,\n})\nexport class VaultLib {\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n} from '@angular/core';\n\ntype ButtonType = 'primary' | 'secondary';\n\n@Component({\n selector: 'vault-button',\n standalone: true,\n imports: [],\n styleUrl: './button.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ` <button type=\"button\" (click)=\"onClick.emit($event)\" class=\"vault-button\">\n <ng-content>Button</ng-content>\n </button>`,\n host: {\n '[class.vault-button--primary]': 'isPrimary()',\n '[class.vault-button--secondary]': 'isSecondary()',\n },\n})\nexport class Button {\n type: InputSignal<ButtonType> = input<ButtonType>('primary');\n\n isPrimary = computed(() => {\n return this.type() === 'primary';\n });\n\n isSecondary = computed(() => {\n return this.type() === 'secondary';\n });\n\n onClick: OutputEmitterRef<MouseEvent> = output();\n}\n","import { Component, input, InputSignal } from '@angular/core';\n\n@Component({\n selector: 'vault-fieldset',\n imports: [],\n template: `<fieldset>\n @if (legend()) {\n <legend>{{ legend() }}</legend>\n }\n <ng-content></ng-content>\n </fieldset>`,\n styleUrl: './fieldset.scss',\n})\nexport class Fieldset {\n legend: InputSignal<string | undefined> = input<string | undefined>();\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, input, InputSignal } from '@angular/core';\n\nexport type SpinnerType = 'gear';\n\n@Component({\n selector: 'vault-spinner',\n imports: [CommonModule],\n template: `<img\n class=\"spinner\"\n [ngStyle]=\"{\n 'animation-duration': duration() + 'ms',\n 'animation-timing-function': timingFunction(),\n }\"\n [src]=\"type() + '.svg'\"\n />`,\n styleUrl: './spinner.scss',\n})\nexport class Spinner {\n type: InputSignal<SpinnerType> = input<SpinnerType>('gear');\n timingFunction: InputSignal<'linear' | 'ease-in-out'> = input<'linear' | 'ease-in-out'>('linear');\n duration: InputSignal<number> = input<number>(5000);\n}\n","import { Component, computed, input, InputSignal, signal, Signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'vault-progress-bar',\n imports: [CommonModule],\n template: `\n <div class=\"progress-bar\">\n @if (type() === 'fill') {\n <span class=\"progress\" [ngStyle]=\"{ width: progressValue() + '%' }\"></span>\n } @else {\n @for (block of blocks(); track $index) {\n <span class=\"block\" [class.filled]=\"block.filled\"></span>\n }\n }\n </div>\n `,\n styleUrl: './progress-bar.scss',\n})\nexport class ProgressBar {\n min: InputSignal<number> = input<number>(0);\n max: InputSignal<number> = input<number>(100);\n type: InputSignal<'fill' | 'block'> = input<'fill' | 'block'>('fill');\n progress: InputSignal<number> = input.required<number>();\n\n private readonly blocksCount: number = 40;\n\n readonly blocks = computed(() => {\n const filledBlocksCount: number =\n this.progress() > this.max()\n ? this.blocksCount\n : Math.floor((this.progressValue() / 100) * this.blocksCount);\n return Array.from({ length: this.blocksCount }, (_, i: number) => ({\n filled: i < filledBlocksCount,\n }));\n });\n\n readonly progressValue: Signal<number> = computed(() => {\n const range: number = this.max() - this.min();\n if (this.progress() > this.max()) return 100;\n return range === 0 ? 0 : ((this.progress() - this.min()) / range) * 100;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n InputSignal,\n signal,\n WritableSignal,\n effect,\n} from '@angular/core';\nimport { Button } from '../button/button';\nimport { DatePipe } from '@angular/common';\nimport { CdkDropList, CdkDrag, CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\n\nexport type TaskbarItem = {\n name: string;\n};\n\n@Component({\n selector: 'vault-taskbar',\n imports: [Button, CdkDropList, CdkDrag],\n templateUrl: './taskbar.html',\n styleUrl: './taskbar.scss',\n providers: [DatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Taskbar {\n interval?: any;\n timestamp = signal(Date.now());\n datePipe: DatePipe = inject(DatePipe);\n time = computed(() => this.datePipe.transform(this.timestamp(), 'h:mm:ss'));\n date = computed(() => this.datePipe.transform(this.timestamp(), 'M/d/y'));\n\n items: InputSignal<TaskbarItem[]> = input<TaskbarItem[]>([]);\n localItems: WritableSignal<TaskbarItem[]> = signal([]);\n\n ngOnInit(): void {\n this.interval = setInterval(() => this.timestamp.update(() => Date.now()), 1000);\n this.localItems.set(this.items());\n }\n\n drop(event: CdkDragDrop<TaskbarItem[]>) {\n const items = [...this.localItems()];\n moveItemInArray(items, event.previousIndex, event.currentIndex);\n this.localItems.set(items);\n }\n}\n","<div class=\"taskbar\">\n <vault-button type=\"secondary\">menu</vault-button>\n <div class=\"content\" cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\">\n @for(item of localItems(); track item){\n <div class=\"item\" cdkDrag [cdkDragData]=\"item\" cdkDragBoundary=\".content\">\n <p>{{item.name}}</p>\n </div>\n }\n </div>\n <div class=\"time\" cdkDrag>\n <div class=\"hours\">{{time()}}</div>\n <div class=\"hours\">{{date()}}</div>\n </div>\n</div>","import { ChangeDetectionStrategy, Component, input, InputSignal } from '@angular/core';\nimport { VaultApplication } from '../../models/application.type';\nimport { CdkDrag } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'vault-system-icon',\n imports: [CdkDrag],\n template: `\n <div class=\"system-icon\" cdkDrag>\n <div class=\"icon-wrapper\">\n @if (application().icon) {\n <img [src]=\"application().icon\" [alt]=\"application().name + ' application icon.'\" />\n }\n </div>\n <label>{{ application().name }}</label>\n </div>\n `,\n styleUrl: './system-icon.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SystemIcon {\n application: InputSignal<VaultApplication> = input.required<VaultApplication>();\n}\n","import { Directive, ElementRef, inject, signal, WritableSignal } from '@angular/core';\n\n@Directive({\n selector: '[vaultHoverBorder]',\n standalone: true,\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n },\n})\nexport class HoverBorder {\n private element: ElementRef<HTMLElement> = inject(ElementRef);\n private readonly borderDirectiveClassName: string = 'hover-border-directive';\n\n onMouseEnter(): void {\n if (!this.element.nativeElement.classList.contains(this.borderDirectiveClassName))\n this.element.nativeElement.classList.add(this.borderDirectiveClassName);\n }\n\n onMouseLeave(): void {\n if (this.element.nativeElement.classList.contains(this.borderDirectiveClassName))\n this.element.nativeElement.classList.remove(this.borderDirectiveClassName);\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[vaultHoverInvert]',\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n },\n})\nexport class HoverInvert {\n onMouseLeave() {\n this.invertColors(this.element.nativeElement);\n }\n onMouseEnter() {\n this.invertColors(this.element.nativeElement);\n }\n\n private element: ElementRef<HTMLElement> = inject(ElementRef);\n private backgroundColor: string = '#060606';\n private primaryColor: string = '#44FF57';\n\n private invertColors(HTMLElement: HTMLElement): void {\n console.log(HTMLElement.children);\n if (HTMLElement.style.background === this.primaryColor) {\n HTMLElement.style.background = this.backgroundColor;\n } else if (HTMLElement.style.background === this.backgroundColor) {\n HTMLElement.style.background = this.primaryColor;\n }\n if (HTMLElement.style.color === this.primaryColor) {\n HTMLElement.style.color = this.backgroundColor;\n } else if (HTMLElement.style.color === this.backgroundColor) {\n HTMLElement.style.color = this.primaryColor;\n }\n\n for (let i = 0; i < HTMLElement.children.length; i++) {\n const element: HTMLElement = HTMLElement.children[i] as HTMLElement;\n this.invertColors(element);\n }\n }\n\n ngOnInit(): void {\n if (!this.element) throw new Error('Hover Invert element missing');\n }\n}\n","/*\n * Public API of vault-lib\n */\n\nexport * from './lib/vault-lib';\n\nexport * from './lib/components/button/button';\nexport * from './lib/components/fieldset/fieldset';\nexport * from './lib/components/spinner/spinner';\nexport * from './lib/components/progress-bar/progress-bar';\nexport * from './lib/components/taskbar/taskbar';\nexport * from './lib/components/system-icon/system-icon';\n\nexport * from './lib/directives/directive.index';\n\nexport * from './lib/models/model.index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vault-lib",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "Angular UI component library",
5
5
  "author": "PGaillot",
6
6
  "license": "MIT",
@@ -1,5 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InputSignal, OutputEmitterRef } from '@angular/core';
2
+ import { InputSignal, OutputEmitterRef, Signal, WritableSignal } from '@angular/core';
3
+ import { DatePipe } from '@angular/common';
4
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
3
5
 
4
6
  declare class VaultLib {
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<VaultLib, never>;
@@ -31,6 +33,48 @@ declare class Spinner {
31
33
  static ɵcmp: i0.ɵɵComponentDeclaration<Spinner, "vault-spinner", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "timingFunction": { "alias": "timingFunction"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
32
34
  }
33
35
 
36
+ declare class ProgressBar {
37
+ min: InputSignal<number>;
38
+ max: InputSignal<number>;
39
+ type: InputSignal<'fill' | 'block'>;
40
+ progress: InputSignal<number>;
41
+ private readonly blocksCount;
42
+ readonly blocks: Signal<{
43
+ filled: boolean;
44
+ }[]>;
45
+ readonly progressValue: Signal<number>;
46
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBar, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBar, "vault-progress-bar", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
48
+ }
49
+
50
+ type TaskbarItem = {
51
+ name: string;
52
+ };
53
+ declare class Taskbar {
54
+ interval?: any;
55
+ timestamp: WritableSignal<number>;
56
+ datePipe: DatePipe;
57
+ time: i0.Signal<string | null>;
58
+ date: i0.Signal<string | null>;
59
+ items: InputSignal<TaskbarItem[]>;
60
+ localItems: WritableSignal<TaskbarItem[]>;
61
+ ngOnInit(): void;
62
+ drop(event: CdkDragDrop<TaskbarItem[]>): void;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<Taskbar, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<Taskbar, "vault-taskbar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
65
+ }
66
+
67
+ type VaultApplication = {
68
+ name: string;
69
+ icon?: string;
70
+ };
71
+
72
+ declare class SystemIcon {
73
+ application: InputSignal<VaultApplication>;
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<SystemIcon, never>;
75
+ static ɵcmp: i0.ɵɵComponentDeclaration<SystemIcon, "vault-system-icon", never, { "application": { "alias": "application"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
76
+ }
77
+
34
78
  declare class HoverBorder {
35
79
  private element;
36
80
  private readonly borderDirectiveClassName;
@@ -40,5 +84,17 @@ declare class HoverBorder {
40
84
  static ɵdir: i0.ɵɵDirectiveDeclaration<HoverBorder, "[vaultHoverBorder]", never, {}, {}, never, never, true, never>;
41
85
  }
42
86
 
43
- export { Button, Fieldset, HoverBorder, Spinner, VaultLib };
44
- export type { SpinnerType };
87
+ declare class HoverInvert {
88
+ onMouseLeave(): void;
89
+ onMouseEnter(): void;
90
+ private element;
91
+ private backgroundColor;
92
+ private primaryColor;
93
+ private invertColors;
94
+ ngOnInit(): void;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<HoverInvert, never>;
96
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HoverInvert, "[vaultHoverInvert]", never, {}, {}, never, never, true, never>;
97
+ }
98
+
99
+ export { Button, Fieldset, HoverBorder, HoverInvert, ProgressBar, Spinner, SystemIcon, Taskbar, VaultLib };
100
+ export type { SpinnerType, TaskbarItem, VaultApplication };