@sftech/ng-shared 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # ng-shared
2
+
3
+ This library was generated with [Nx](https://nx.dev).
@@ -0,0 +1,91 @@
1
+ import { definePreset } from '@primeng/themes';
2
+ import Aura from '@primeng/themes/aura';
3
+ import * as i0 from '@angular/core';
4
+ import { ViewChild, ContentChild, Input, Component } from '@angular/core';
5
+ import { NgTemplateOutlet } from '@angular/common';
6
+ import { Button } from 'primeng/button';
7
+ import { Drawer } from 'primeng/drawer';
8
+ import { FaIconComponent } from '@fortawesome/angular-fontawesome';
9
+ import { faBars } from '@fortawesome/free-solid-svg-icons';
10
+
11
+ const SfTechPreset = definePreset(Aura, {
12
+ semantic: {
13
+ primary: {
14
+ 50: '#9ddcf5',
15
+ 100: '#8bd5f2',
16
+ 200: '#6bc8ef',
17
+ 300: '#4abbe8',
18
+ 400: '#2aa8e0',
19
+ 500: '#0093d8',
20
+ 600: '#0081c3',
21
+ 700: '#0071a8',
22
+ 800: '#00618c',
23
+ 900: '#005272',
24
+ },
25
+ }
26
+ });
27
+
28
+ class IconProvider {
29
+ static menu = faBars;
30
+ }
31
+
32
+ class HeadMainFooterWithCanvasComponent {
33
+ title = 'demo';
34
+ maxWidth = '100%';
35
+ header = null;
36
+ main = null;
37
+ footer = null;
38
+ drawers = null;
39
+ drawerRef;
40
+ drawerVisible = false;
41
+ iconProvider = IconProvider;
42
+ closeCallback(e) {
43
+ this.drawerRef.close(e);
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: HeadMainFooterWithCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: HeadMainFooterWithCanvasComponent, isStandalone: true, selector: "sftech-head-main-footer-with-canvas", inputs: { title: "title", maxWidth: "maxWidth" }, queries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "main", first: true, predicate: ["main"], descendants: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true }, { propertyName: "drawers", first: true, predicate: ["drawers"], descendants: true }], viewQueries: [{ propertyName: "drawerRef", first: true, predicate: ["drawerRef"], descendants: true }], ngImport: i0, template: "<div class=\"min-h-screen flex flex-col justify-between\">\r\n <header class=\"p-2 bg-primary-600\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n @if (drawers) {\r\n <div class=\"flex items-center\">\r\n <div class=\"flex-shrink\">\r\n <p-button (click)=\"drawerVisible = !drawerVisible\"><fa-icon [icon]=\"iconProvider.menu\"></fa-icon></p-button>\r\n </div>\r\n <div class=\"ms-2\">\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n }\r\n </div>\r\n </header>\r\n\r\n <main class=\"p-2 h-full flex-grow\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n <ng-container [ngTemplateOutlet]=\"main\"></ng-container>\r\n </div>\r\n </main>\r\n\r\n <footer class=\"p-2 bg-primary-600\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n </footer>\r\n</div>\r\n\r\n@if (drawers) {\r\n <p-drawer #drawerRef [(visible)]=\"drawerVisible\">\r\n <ng-template #headless>\r\n <ng-container *ngTemplateOutlet=\"drawers\"></ng-container>\r\n </ng-template>\r\n </p-drawer>\r\n}", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: HeadMainFooterWithCanvasComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'sftech-head-main-footer-with-canvas', imports: [
51
+ NgTemplateOutlet,
52
+ Button,
53
+ Drawer,
54
+ FaIconComponent
55
+ ], template: "<div class=\"min-h-screen flex flex-col justify-between\">\r\n <header class=\"p-2 bg-primary-600\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n @if (drawers) {\r\n <div class=\"flex items-center\">\r\n <div class=\"flex-shrink\">\r\n <p-button (click)=\"drawerVisible = !drawerVisible\"><fa-icon [icon]=\"iconProvider.menu\"></fa-icon></p-button>\r\n </div>\r\n <div class=\"ms-2\">\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n }\r\n </div>\r\n </header>\r\n\r\n <main class=\"p-2 h-full flex-grow\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n <ng-container [ngTemplateOutlet]=\"main\"></ng-container>\r\n </div>\r\n </main>\r\n\r\n <footer class=\"p-2 bg-primary-600\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n </footer>\r\n</div>\r\n\r\n@if (drawers) {\r\n <p-drawer #drawerRef [(visible)]=\"drawerVisible\">\r\n <ng-template #headless>\r\n <ng-container *ngTemplateOutlet=\"drawers\"></ng-container>\r\n </ng-template>\r\n </p-drawer>\r\n}" }]
56
+ }], propDecorators: { title: [{
57
+ type: Input
58
+ }], maxWidth: [{
59
+ type: Input
60
+ }], header: [{
61
+ type: ContentChild,
62
+ args: ['header']
63
+ }], main: [{
64
+ type: ContentChild,
65
+ args: ['main']
66
+ }], footer: [{
67
+ type: ContentChild,
68
+ args: ['footer']
69
+ }], drawers: [{
70
+ type: ContentChild,
71
+ args: ['drawers']
72
+ }], drawerRef: [{
73
+ type: ViewChild,
74
+ args: ['drawerRef']
75
+ }] } });
76
+
77
+ async function loadConfig(configPath) {
78
+ return fetch(configPath)
79
+ .then((res) => {
80
+ if (!res.ok)
81
+ throw new Error('Config load failed');
82
+ return res.json();
83
+ });
84
+ }
85
+
86
+ /**
87
+ * Generated bundle index. Do not edit.
88
+ */
89
+
90
+ export { HeadMainFooterWithCanvasComponent, SfTechPreset, loadConfig };
91
+ //# sourceMappingURL=sftech-ng-shared.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftech-ng-shared.mjs","sources":["../../../../libs/ng-shared/src/lib/styles/themes/sftech.preset.ts","../../../../libs/ng-shared/src/lib/providers/icon.provider.ts","../../../../libs/ng-shared/src/lib/layouts/head-main-footer-with-canvas/head-main-footer-with-canvas.component.ts","../../../../libs/ng-shared/src/lib/layouts/head-main-footer-with-canvas/head-main-footer-with-canvas.component.html","../../../../libs/ng-shared/src/lib/configuration/app-config.loader.ts","../../../../libs/ng-shared/src/sftech-ng-shared.ts"],"sourcesContent":["import { definePreset } from '@primeng/themes';\r\nimport Aura from '@primeng/themes/aura';\r\n\r\nexport const SfTechPreset = definePreset(Aura, {\r\n semantic: {\r\n primary: {\r\n 50: '#9ddcf5',\r\n 100: '#8bd5f2',\r\n 200: '#6bc8ef',\r\n 300: '#4abbe8',\r\n 400: '#2aa8e0',\r\n 500: '#0093d8',\r\n 600: '#0081c3',\r\n 700: '#0071a8',\r\n 800: '#00618c',\r\n 900: '#005272',\r\n },\r\n }\r\n});\r\n","import { faBars, faBurger } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport class IconProvider {\r\n public static readonly menu = faBars\r\n}","import { Component, ContentChild, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { Button } from 'primeng/button';\r\nimport { Drawer } from 'primeng/drawer';\r\nimport { Ripple } from 'primeng/ripple';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { IconProvider } from '../../providers/icon.provider';\r\n\r\n@Component({\r\n selector: 'sftech-head-main-footer-with-canvas',\r\n imports: [\r\n NgTemplateOutlet,\r\n Button,\r\n Drawer,\r\n FaIconComponent\r\n ],\r\n templateUrl: './head-main-footer-with-canvas.component.html',\r\n styleUrl: './head-main-footer-with-canvas.component.css'\r\n})\r\nexport class HeadMainFooterWithCanvasComponent {\r\n @Input() title = 'demo';\r\n @Input() maxWidth = '100%';\r\n @ContentChild('header') public header: TemplateRef<unknown> | null = null;\r\n @ContentChild('main') public main: TemplateRef<unknown> | null = null;\r\n @ContentChild('footer') public footer: TemplateRef<unknown> | null = null;\r\n @ContentChild('drawers') public drawers: TemplateRef<unknown> | null = null;\r\n\r\n @ViewChild('drawerRef') drawerRef!: Drawer;\r\n\r\n protected drawerVisible = false;\r\n protected iconProvider = IconProvider;\r\n\r\n closeCallback(e: Event): void {\r\n this.drawerRef.close(e);\r\n }\r\n}\r\n","<div class=\"min-h-screen flex flex-col justify-between\">\r\n <header class=\"p-2 bg-primary-600\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n @if (drawers) {\r\n <div class=\"flex items-center\">\r\n <div class=\"flex-shrink\">\r\n <p-button (click)=\"drawerVisible = !drawerVisible\"><fa-icon [icon]=\"iconProvider.menu\"></fa-icon></p-button>\r\n </div>\r\n <div class=\"ms-2\">\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n }\r\n </div>\r\n </header>\r\n\r\n <main class=\"p-2 h-full flex-grow\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n <ng-container [ngTemplateOutlet]=\"main\"></ng-container>\r\n </div>\r\n </main>\r\n\r\n <footer class=\"p-2 bg-primary-600\">\r\n <div [style.max-width]=\"maxWidth\" class=\"mx-auto\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n </footer>\r\n</div>\r\n\r\n@if (drawers) {\r\n <p-drawer #drawerRef [(visible)]=\"drawerVisible\">\r\n <ng-template #headless>\r\n <ng-container *ngTemplateOutlet=\"drawers\"></ng-container>\r\n </ng-template>\r\n </p-drawer>\r\n}","import {IAppConfig} from \"./app-config.interface\";\r\n\r\nexport async function loadConfig<TConfig extends IAppConfig>(configPath: string): Promise<TConfig> {\r\n return fetch(configPath)\r\n .then((res) => {\r\n if (!res.ok) throw new Error('Config load failed');\r\n return res.json();\r\n });\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './lib/styles/themes/sftech.preset';
2
+ export * from './lib/layouts/head-main-footer-with-canvas/head-main-footer-with-canvas.component';
3
+ export * from './lib/configuration/app-config.interface';
4
+ export * from './lib/configuration/app-config.loader';
@@ -0,0 +1,3 @@
1
+ export interface IAppConfig {
2
+ [key: string]: string | boolean | number;
3
+ }
@@ -0,0 +1,2 @@
1
+ import { IAppConfig } from "./app-config.interface";
2
+ export declare function loadConfig<TConfig extends IAppConfig>(configPath: string): Promise<TConfig>;
@@ -0,0 +1,18 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { Drawer } from 'primeng/drawer';
3
+ import { IconProvider } from '../../providers/icon.provider';
4
+ import * as i0 from "@angular/core";
5
+ export declare class HeadMainFooterWithCanvasComponent {
6
+ title: string;
7
+ maxWidth: string;
8
+ header: TemplateRef<unknown> | null;
9
+ main: TemplateRef<unknown> | null;
10
+ footer: TemplateRef<unknown> | null;
11
+ drawers: TemplateRef<unknown> | null;
12
+ drawerRef: Drawer;
13
+ protected drawerVisible: boolean;
14
+ protected iconProvider: typeof IconProvider;
15
+ closeCallback(e: Event): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeadMainFooterWithCanvasComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeadMainFooterWithCanvasComponent, "sftech-head-main-footer-with-canvas", never, { "title": { "alias": "title"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; }, {}, ["header", "main", "footer", "drawers"], never, true, never>;
18
+ }
@@ -0,0 +1,3 @@
1
+ export declare class IconProvider {
2
+ static readonly menu: import("@fortawesome/fontawesome-common-types").IconDefinition;
3
+ }
@@ -0,0 +1 @@
1
+ export declare const SfTechPreset: any;
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@sftech/ng-shared",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "@fortawesome/angular-fontawesome": "^1.0.0",
6
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
7
+ "tslib": "^2.3.0"
8
+ },
9
+ "peerDependencies": {
10
+ "@angular/common": "^19.2.0",
11
+ "@angular/core": "^19.2.0"
12
+ },
13
+ "sideEffects": false,
14
+ "module": "fesm2022/sftech-ng-shared.mjs",
15
+ "typings": "index.d.ts",
16
+ "exports": {
17
+ "./package.json": {
18
+ "default": "./package.json"
19
+ },
20
+ ".": {
21
+ "types": "./index.d.ts",
22
+ "default": "./fesm2022/sftech-ng-shared.mjs"
23
+ }
24
+ }
25
+ }