inugami-ng 0.0.18 → 0.0.20
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/fesm2022/inugami-ng-components-inu-aside-menu.mjs +45 -0
- package/fesm2022/inugami-ng-components-inu-aside-menu.mjs.map +1 -0
- package/fesm2022/inugami-ng-components-inu-footer.mjs +2 -2
- package/fesm2022/inugami-ng-components-inu-footer.mjs.map +1 -1
- package/fesm2022/inugami-ng-components-inu-main-header.mjs +35 -0
- package/fesm2022/inugami-ng-components-inu-main-header.mjs.map +1 -0
- package/fesm2022/inugami-ng-components-inu-page-layout.mjs +27 -0
- package/fesm2022/inugami-ng-components-inu-page-layout.mjs.map +1 -0
- package/fesm2022/inugami-ng-models.mjs.map +1 -1
- package/fesm2022/inugami-ng-utils.mjs +32 -2
- package/fesm2022/inugami-ng-utils.mjs.map +1 -1
- package/package.json +13 -1
- package/styles/inu-default-style.css +1 -1
- package/types/inugami-ng-components-inu-aside-menu.d.ts +10 -0
- package/types/inugami-ng-components-inu-main-header.d.ts +14 -0
- package/types/inugami-ng-components-inu-page-layout.d.ts +13 -0
- package/types/inugami-ng-models.d.ts +1 -1
- package/types/inugami-ng-utils.d.ts +20 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, Component } from '@angular/core';
|
|
3
|
+
import { InuIcon } from 'inugami-icons';
|
|
4
|
+
import { NgClass } from '@angular/common';
|
|
5
|
+
import { RouterLinkActive, RouterLink } from '@angular/router';
|
|
6
|
+
|
|
7
|
+
class InuAsideMenuChildren {
|
|
8
|
+
//==================================================================================================================
|
|
9
|
+
// ATTRIBUTES
|
|
10
|
+
//==================================================================================================================
|
|
11
|
+
children = input([], ...(ngDevMode ? [{ debugName: "children" }] : []));
|
|
12
|
+
level = input(0, ...(ngDevMode ? [{ debugName: "level" }] : []));
|
|
13
|
+
currentStyleClass = computed(() => ['inu-aside-menu-children', `level level-${this.level()}`]
|
|
14
|
+
.join(' '), ...(ngDevMode ? [{ debugName: "currentStyleClass" }] : []));
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuAsideMenuChildren, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuAsideMenuChildren, isStandalone: true, selector: "inu-aside-menu-children", inputs: { children: { classPropertyName: "children", publicName: "children", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (children()) {\n <div [class]=\"currentStyleClass()\">\n <ul class=\"inu-aside-menu-children-grp\">\n @for (child of children(); track child) {\n <li class=\"inu-aside-menu-children-item\">\n @if (child.title) {\n <div class=\"inu-aside-menu-children-title\">{{ child.title! }}</div>\n }\n @if (child.links) {\n <ul class=\"inu-aside-menu-children-links\">\n @for (childLink of child.links; track childLink) {\n <li class=\"inu-aside-menu-children-link\">\n <div class=\"inu-aside-menu-link-current-link\">\n <div class=\"inu-aside-menu-link-icon\">\n @if (childLink.icon) {\n <inu-icon [icon]=\"childLink.icon\" [size]=\"1.5\"></inu-icon>\n }\n </div>\n\n @if (childLink.path) {\n @if (childLink.external) {\n @if (childLink.target) {\n <a [target]=\"childLink.target\" [href]=\"childLink.path\">{{ childLink.title! }}</a>\n } @else {\n <a [href]=\"childLink.path\">{{ childLink.title! }}</a>\n }\n }\n @else {\n <a [routerLink]=\"childLink.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ childLink.title! }}</a>\n }\n }\n @else {\n <span>{{childLink.title!}}</span>\n }\n </div>\n\n <div class=\"inu-aside-menu-link-children\">\n @if (childLink.children) {\n <inu-aside-menu-children [children]=\"childLink.children\" [level]=\"level()+1\"></inu-aside-menu-children>\n }\n </div>\n </li>\n }\n </ul>\n }\n </li>\n\n }\n </ul>\n </div>\n}\n", styles: [".inu-aside-menu-children-grp{margin:0;padding:0;padding-left:2rem}.inu-aside-menu-children-grp>li{list-style:none}\n"], dependencies: [{ kind: "component", type: InuAsideMenuChildren, selector: "inu-aside-menu-children", inputs: ["children", "level"] }, { kind: "component", type: InuIcon, selector: "inu-icon", inputs: ["icon", "defaultIcon", "styleclass", "size"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuAsideMenuChildren, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ selector: 'inu-aside-menu-children', standalone: true, imports: [InuIcon, RouterLinkActive, RouterLink], template: "@if (children()) {\n <div [class]=\"currentStyleClass()\">\n <ul class=\"inu-aside-menu-children-grp\">\n @for (child of children(); track child) {\n <li class=\"inu-aside-menu-children-item\">\n @if (child.title) {\n <div class=\"inu-aside-menu-children-title\">{{ child.title! }}</div>\n }\n @if (child.links) {\n <ul class=\"inu-aside-menu-children-links\">\n @for (childLink of child.links; track childLink) {\n <li class=\"inu-aside-menu-children-link\">\n <div class=\"inu-aside-menu-link-current-link\">\n <div class=\"inu-aside-menu-link-icon\">\n @if (childLink.icon) {\n <inu-icon [icon]=\"childLink.icon\" [size]=\"1.5\"></inu-icon>\n }\n </div>\n\n @if (childLink.path) {\n @if (childLink.external) {\n @if (childLink.target) {\n <a [target]=\"childLink.target\" [href]=\"childLink.path\">{{ childLink.title! }}</a>\n } @else {\n <a [href]=\"childLink.path\">{{ childLink.title! }}</a>\n }\n }\n @else {\n <a [routerLink]=\"childLink.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ childLink.title! }}</a>\n }\n }\n @else {\n <span>{{childLink.title!}}</span>\n }\n </div>\n\n <div class=\"inu-aside-menu-link-children\">\n @if (childLink.children) {\n <inu-aside-menu-children [children]=\"childLink.children\" [level]=\"level()+1\"></inu-aside-menu-children>\n }\n </div>\n </li>\n }\n </ul>\n }\n </li>\n\n }\n </ul>\n </div>\n}\n", styles: [".inu-aside-menu-children-grp{margin:0;padding:0;padding-left:2rem}.inu-aside-menu-children-grp>li{list-style:none}\n"] }]
|
|
21
|
+
}], propDecorators: { children: [{ type: i0.Input, args: [{ isSignal: true, alias: "children", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }] } });
|
|
22
|
+
|
|
23
|
+
class InuAsideMenu {
|
|
24
|
+
//==================================================================================================================
|
|
25
|
+
// ATTRIBUTES
|
|
26
|
+
//==================================================================================================================
|
|
27
|
+
links = input([], ...(ngDevMode ? [{ debugName: "links" }] : []));
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuAsideMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuAsideMenu, isStandalone: true, selector: "inu-aside-menu", inputs: { links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<aside class=\"inu-aside-menu\">\n @if (links()) {\n <menu>\n\n <ul class=\"inu-aside-menu-links\">\n @for (link of links(); track link) {\n <li class=\"inu-aside-menu-links-item\"\n [ngClass]=\"{'with-children': link.children!=undefined && link.children.length>0}\">\n <div class=\"inu-aside-menu-links-item-current-link\">\n <div class=\"inu-aside-menu-link-icon\">\n @if (link.icon) {\n <inu-icon [icon]=\"link.icon\" [size]=\"1.3\"></inu-icon>\n }\n </div>\n @if (link.path) {\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title! }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title! }}</a>\n }\n } @else {\n <span>{{ link.title! }}</span>\n }\n </div>\n\n\n <div class=\"inu-aside-menu-link-children\">\n @if (link.children) {\n <inu-aside-menu-children [children]=\"link.children\"></inu-aside-menu-children>\n }\n </div>\n </li>\n }\n </ul>\n\n </menu>\n }\n</aside>\n", styles: [".inu-aside-menu-links{margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.inu-aside-menu-links .inu-aside-menu-links-item{display:flex;flex-direction:column;list-style:none}.inu-aside-menu-links .inu-aside-menu-links-item.with-children{margin-top:1rem}.inu-aside-menu-links .inu-aside-menu-links-item.with-children>.inu-aside-menu-links-item-current-link{background-color:var(--neutral-light);border-bottom:1px solid transparent}.inu-aside-menu-links .inu-aside-menu-links-item.with-children>.inu-aside-menu-links-item-current-link:hover{border-bottom:1px solid var(--neutral)}.inu-aside-menu-links .inu-aside-menu-links-item .inu-aside-menu-links-item-current-link{padding:.25rem;display:flex;align-items:center;flex-direction:row}.inu-aside-menu-links .inu-aside-menu-links-item .inu-aside-menu-links-item-current-link .inu-aside-menu-link-icon{width:2rem;height:1.5rem;margin-left:.5rem}\n"], dependencies: [{ kind: "component", type: InuIcon, selector: "inu-icon", inputs: ["icon", "defaultIcon", "styleclass", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: InuAsideMenuChildren, selector: "inu-aside-menu-children", inputs: ["children", "level"] }] });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuAsideMenu, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'inu-aside-menu', standalone: true, imports: [InuIcon,
|
|
34
|
+
NgClass,
|
|
35
|
+
RouterLinkActive,
|
|
36
|
+
RouterLink,
|
|
37
|
+
InuAsideMenuChildren], template: "<aside class=\"inu-aside-menu\">\n @if (links()) {\n <menu>\n\n <ul class=\"inu-aside-menu-links\">\n @for (link of links(); track link) {\n <li class=\"inu-aside-menu-links-item\"\n [ngClass]=\"{'with-children': link.children!=undefined && link.children.length>0}\">\n <div class=\"inu-aside-menu-links-item-current-link\">\n <div class=\"inu-aside-menu-link-icon\">\n @if (link.icon) {\n <inu-icon [icon]=\"link.icon\" [size]=\"1.3\"></inu-icon>\n }\n </div>\n @if (link.path) {\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title! }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title! }}</a>\n }\n } @else {\n <span>{{ link.title! }}</span>\n }\n </div>\n\n\n <div class=\"inu-aside-menu-link-children\">\n @if (link.children) {\n <inu-aside-menu-children [children]=\"link.children\"></inu-aside-menu-children>\n }\n </div>\n </li>\n }\n </ul>\n\n </menu>\n }\n</aside>\n", styles: [".inu-aside-menu-links{margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.inu-aside-menu-links .inu-aside-menu-links-item{display:flex;flex-direction:column;list-style:none}.inu-aside-menu-links .inu-aside-menu-links-item.with-children{margin-top:1rem}.inu-aside-menu-links .inu-aside-menu-links-item.with-children>.inu-aside-menu-links-item-current-link{background-color:var(--neutral-light);border-bottom:1px solid transparent}.inu-aside-menu-links .inu-aside-menu-links-item.with-children>.inu-aside-menu-links-item-current-link:hover{border-bottom:1px solid var(--neutral)}.inu-aside-menu-links .inu-aside-menu-links-item .inu-aside-menu-links-item-current-link{padding:.25rem;display:flex;align-items:center;flex-direction:row}.inu-aside-menu-links .inu-aside-menu-links-item .inu-aside-menu-links-item-current-link .inu-aside-menu-link-icon{width:2rem;height:1.5rem;margin-left:.5rem}\n"] }]
|
|
38
|
+
}], propDecorators: { links: [{ type: i0.Input, args: [{ isSignal: true, alias: "links", required: false }] }] } });
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Generated bundle index. Do not edit.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
export { InuAsideMenu };
|
|
45
|
+
//# sourceMappingURL=inugami-ng-components-inu-aside-menu.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-aside-menu.mjs","sources":["../../../projects/inugami-ng/components/inu-aside-menu/children/inu-aside-menu-children.component.ts","../../../projects/inugami-ng/components/inu-aside-menu/children/inu-aside-menu-children.component.html","../../../projects/inugami-ng/components/inu-aside-menu/inu-aside-menu.component.ts","../../../projects/inugami-ng/components/inu-aside-menu/inu-aside-menu.component.html","../../../projects/inugami-ng/components/inu-aside-menu/inugami-ng-components-inu-aside-menu.ts"],"sourcesContent":["import {AfterViewInit, Component, computed, effect, input, signal} from '@angular/core';\nimport {InuIcon} from 'inugami-icons';\nimport {NgClass} from '@angular/common';\nimport {InuSiteLink, InuSiteLinkChildren} from 'inugami-ng/models'\nimport {RouterLink, RouterLinkActive} from '@angular/router'\n\n@Component({\n selector : 'inu-aside-menu-children',\n standalone : true,\n imports : [InuIcon, RouterLinkActive, RouterLink],\n templateUrl: './inu-aside-menu-children.component.html',\n styleUrl : './inu-aside-menu-children.component.scss',\n })\nexport class InuAsideMenuChildren {\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n children = input<InuSiteLinkChildren[]>([]);\n level = input<number>(0);\n currentStyleClass = computed(()=> ['inu-aside-menu-children', `level level-${this.level()}`]\n .join(' '));\n}\n","@if (children()) {\n <div [class]=\"currentStyleClass()\">\n <ul class=\"inu-aside-menu-children-grp\">\n @for (child of children(); track child) {\n <li class=\"inu-aside-menu-children-item\">\n @if (child.title) {\n <div class=\"inu-aside-menu-children-title\">{{ child.title! }}</div>\n }\n @if (child.links) {\n <ul class=\"inu-aside-menu-children-links\">\n @for (childLink of child.links; track childLink) {\n <li class=\"inu-aside-menu-children-link\">\n <div class=\"inu-aside-menu-link-current-link\">\n <div class=\"inu-aside-menu-link-icon\">\n @if (childLink.icon) {\n <inu-icon [icon]=\"childLink.icon\" [size]=\"1.5\"></inu-icon>\n }\n </div>\n\n @if (childLink.path) {\n @if (childLink.external) {\n @if (childLink.target) {\n <a [target]=\"childLink.target\" [href]=\"childLink.path\">{{ childLink.title! }}</a>\n } @else {\n <a [href]=\"childLink.path\">{{ childLink.title! }}</a>\n }\n }\n @else {\n <a [routerLink]=\"childLink.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ childLink.title! }}</a>\n }\n }\n @else {\n <span>{{childLink.title!}}</span>\n }\n </div>\n\n <div class=\"inu-aside-menu-link-children\">\n @if (childLink.children) {\n <inu-aside-menu-children [children]=\"childLink.children\" [level]=\"level()+1\"></inu-aside-menu-children>\n }\n </div>\n </li>\n }\n </ul>\n }\n </li>\n\n }\n </ul>\n </div>\n}\n","import {AfterViewInit, Component, computed, effect, input, signal} from '@angular/core';\nimport {InuIcon} from 'inugami-icons';\nimport {NgClass} from '@angular/common';\nimport {InuSiteLink} from 'inugami-ng/models'\nimport {RouterLink, RouterLinkActive} from '@angular/router'\nimport {InuAsideMenuChildren} from './children/inu-aside-menu-children.component'\n\n@Component({\n selector: 'inu-aside-menu',\n standalone: true,\n imports: [InuIcon,\n NgClass,\n RouterLinkActive,\n RouterLink,\n InuAsideMenuChildren],\n templateUrl: './inu-aside-menu.component.html',\n styleUrl: './inu-aside-menu.component.scss',\n})\nexport class InuAsideMenu{\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n links = input<InuSiteLink[]>([]);\n\n}\n","<aside class=\"inu-aside-menu\">\n @if (links()) {\n <menu>\n\n <ul class=\"inu-aside-menu-links\">\n @for (link of links(); track link) {\n <li class=\"inu-aside-menu-links-item\"\n [ngClass]=\"{'with-children': link.children!=undefined && link.children.length>0}\">\n <div class=\"inu-aside-menu-links-item-current-link\">\n <div class=\"inu-aside-menu-link-icon\">\n @if (link.icon) {\n <inu-icon [icon]=\"link.icon\" [size]=\"1.3\"></inu-icon>\n }\n </div>\n @if (link.path) {\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title! }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title! }}</a>\n }\n } @else {\n <span>{{ link.title! }}</span>\n }\n </div>\n\n\n <div class=\"inu-aside-menu-link-children\">\n @if (link.children) {\n <inu-aside-menu-children [children]=\"link.children\"></inu-aside-menu-children>\n }\n </div>\n </li>\n }\n </ul>\n\n </menu>\n }\n</aside>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAaa,oBAAoB,CAAA;;;;AAI/B,IAAA,QAAQ,GAAG,KAAK,CAAwB,EAAE,oDAAC;AAC3C,IAAA,KAAK,GAAM,KAAK,CAAS,CAAC,iDAAC;AAC3B,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK,CAAC,yBAAyB,EAAE,eAAe,IAAI,CAAC,KAAK,EAAE,EAAE;AACxF,SAAA,IAAI,CAAC,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;uGAPF,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbjC,6kEAoDA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvCa,oBAAoB,mGAJN,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAInD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACgB,yBAAyB,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACJ,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,6kEAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA;;;MESpD,YAAY,CAAA;;;;AAIvB,IAAA,KAAK,GAAe,KAAK,CAAgB,EAAE,iDAAC;uGAJjC,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBzB,8/CA2CA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjCuB,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,oBAAoB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI9B,YAAY,EAAA,UAAA,EAAA,CAAA;kBAXxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACI,CAAC,OAAO;wBACP,OAAO;wBACP,gBAAgB;wBAChB,UAAU;AACV,wBAAA,oBAAoB,CAAC,EAAA,QAAA,EAAA,8/CAAA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA;;;AEd5C;;AAEG;;;;"}
|
|
@@ -21,11 +21,11 @@ class InuFooter {
|
|
|
21
21
|
InuStringUtils.normalize(this.tracking().application()).toUpperCase(),
|
|
22
22
|
].join(' '), ...(ngDevMode ? [{ debugName: "styleClass" }] : []));
|
|
23
23
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuFooter, isStandalone: true, selector: "inu-footer", inputs: { displayVersion: { classPropertyName: "displayVersion", publicName: "displayVersion", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<footer [class]=\"styleClass()\">\n <div class=\"inu-footer-border-top\"></div>\n @if(displayVersion()){\n <div class=\"inu-footer-application-detail\">\n <div class=\"inu-footer-application-
|
|
24
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuFooter, isStandalone: true, selector: "inu-footer", inputs: { displayVersion: { classPropertyName: "displayVersion", publicName: "displayVersion", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<footer [class]=\"styleClass()\">\n <div class=\"inu-footer-border-top\"></div>\n @if(displayVersion()){\n <div class=\"inu-footer-application-detail\">\n\n <div class=\"inu-footer-application-name\">\n <div>{{tracking().application()}}</div>\n </div>\n <div class=\"inu-footer-application-version\">\n <div>{{tracking().version()}}</div>\n </div>\n <div class=\"inu-footer-application-env\">\n <div>{{tracking().env()}}</div>\n </div>\n </div>\n }\n\n <div class=\"inu-footer-content\">\n <ng-content />\n </div>\n <div class=\"inu-footer-border-bottom\"></div>\n</footer>\n", styles: ["footer{position:fixed;bottom:0;width:100%;background-color:var(--neutral-light);display:flex;flex-direction:column;gap:.25rem;-webkit-box-shadow:0px 0px 20px 0px var(--neutral-light);box-shadow:0 0 20px 0 var(--neutral-light)}footer .inu-footer-border-top{height:.25rem;background-color:var(--neutral)}footer .inu-footer-application-detail{display:flex;flex-direction:row;gap:.5rem;padding:.25rem;align-items:center;justify-content:center;font-weight:700}footer .inu-footer-application-detail .inu-footer-application-env{background-color:var(--neutral-dark-extra);color:var(--neutral-light);padding:.25rem .5rem}footer.PRD .inu-footer-application-detail .inu-footer-application-env{background-color:var(--primary-dark)}\n"] });
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuFooter, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: 'inu-footer', standalone: true, imports: [], template: "<footer [class]=\"styleClass()\">\n <div class=\"inu-footer-border-top\"></div>\n @if(displayVersion()){\n <div class=\"inu-footer-application-detail\">\n <div class=\"inu-footer-application-
|
|
28
|
+
args: [{ selector: 'inu-footer', standalone: true, imports: [], template: "<footer [class]=\"styleClass()\">\n <div class=\"inu-footer-border-top\"></div>\n @if(displayVersion()){\n <div class=\"inu-footer-application-detail\">\n\n <div class=\"inu-footer-application-name\">\n <div>{{tracking().application()}}</div>\n </div>\n <div class=\"inu-footer-application-version\">\n <div>{{tracking().version()}}</div>\n </div>\n <div class=\"inu-footer-application-env\">\n <div>{{tracking().env()}}</div>\n </div>\n </div>\n }\n\n <div class=\"inu-footer-content\">\n <ng-content />\n </div>\n <div class=\"inu-footer-border-bottom\"></div>\n</footer>\n", styles: ["footer{position:fixed;bottom:0;width:100%;background-color:var(--neutral-light);display:flex;flex-direction:column;gap:.25rem;-webkit-box-shadow:0px 0px 20px 0px var(--neutral-light);box-shadow:0 0 20px 0 var(--neutral-light)}footer .inu-footer-border-top{height:.25rem;background-color:var(--neutral)}footer .inu-footer-application-detail{display:flex;flex-direction:row;gap:.5rem;padding:.25rem;align-items:center;justify-content:center;font-weight:700}footer .inu-footer-application-detail .inu-footer-application-env{background-color:var(--neutral-dark-extra);color:var(--neutral-light);padding:.25rem .5rem}footer.PRD .inu-footer-application-detail .inu-footer-application-env{background-color:var(--primary-dark)}\n"] }]
|
|
29
29
|
}], propDecorators: { displayVersion: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayVersion", required: false }] }] } });
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inugami-ng-components-inu-footer.mjs","sources":["../../../projects/inugami-ng/components/inu-footer/inu-footer.ts","../../../projects/inugami-ng/components/inu-footer/inu-footer.html","../../../projects/inugami-ng/components/inu-footer/inugami-ng-components-inu-footer.ts"],"sourcesContent":["import {Component, computed, inject, input, signal} from '@angular/core';\nimport {CacheServiceTracking} from 'inugami-ng/services'\nimport {InuStringUtils, UuidUtils} from 'inugami-ng/utils'\n\n@Component({\n selector: 'inu-footer',\n standalone: true,\n imports: [],\n templateUrl: './inu-footer.html',\n styleUrl: './inu-footer.scss',\n})\nexport class InuFooter {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n displayVersion = input<boolean>(true);\n private cacheServiceTracking = inject(CacheServiceTracking, {optional: true});\n\n tracking = signal<CacheServiceTracking>(this.cacheServiceTracking ?? new CacheServiceTracking(\n {\n sessionUid : signal<string>(UuidUtils.buildUid()),\n env : signal<string>('PRD'),\n application: signal<string>('inugami'),\n version : signal<string>('0.0.0')\n }\n ));\n\n styleClass = computed<string>(()=> [\n 'inu-footer',\n InuStringUtils.normalize(this.tracking().env()).toUpperCase(),\n InuStringUtils.normalize(this.tracking().application()).toUpperCase(),\n ].join(' '));\n}\n","<footer [class]=\"styleClass()\">\n <div class=\"inu-footer-border-top\"></div>\n @if(displayVersion()){\n <div class=\"inu-footer-application-detail\">\n <div class=\"inu-footer-application-
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-footer.mjs","sources":["../../../projects/inugami-ng/components/inu-footer/inu-footer.ts","../../../projects/inugami-ng/components/inu-footer/inu-footer.html","../../../projects/inugami-ng/components/inu-footer/inugami-ng-components-inu-footer.ts"],"sourcesContent":["import {Component, computed, inject, input, signal} from '@angular/core';\nimport {CacheServiceTracking} from 'inugami-ng/services'\nimport {InuStringUtils, UuidUtils} from 'inugami-ng/utils'\n\n@Component({\n selector: 'inu-footer',\n standalone: true,\n imports: [],\n templateUrl: './inu-footer.html',\n styleUrl: './inu-footer.scss',\n})\nexport class InuFooter {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n displayVersion = input<boolean>(true);\n private cacheServiceTracking = inject(CacheServiceTracking, {optional: true});\n\n tracking = signal<CacheServiceTracking>(this.cacheServiceTracking ?? new CacheServiceTracking(\n {\n sessionUid : signal<string>(UuidUtils.buildUid()),\n env : signal<string>('PRD'),\n application: signal<string>('inugami'),\n version : signal<string>('0.0.0')\n }\n ));\n\n styleClass = computed<string>(()=> [\n 'inu-footer',\n InuStringUtils.normalize(this.tracking().env()).toUpperCase(),\n InuStringUtils.normalize(this.tracking().application()).toUpperCase(),\n ].join(' '));\n}\n","<footer [class]=\"styleClass()\">\n <div class=\"inu-footer-border-top\"></div>\n @if(displayVersion()){\n <div class=\"inu-footer-application-detail\">\n\n <div class=\"inu-footer-application-name\">\n <div>{{tracking().application()}}</div>\n </div>\n <div class=\"inu-footer-application-version\">\n <div>{{tracking().version()}}</div>\n </div>\n <div class=\"inu-footer-application-env\">\n <div>{{tracking().env()}}</div>\n </div>\n </div>\n }\n\n <div class=\"inu-footer-content\">\n <ng-content />\n </div>\n <div class=\"inu-footer-border-bottom\"></div>\n</footer>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAWa,SAAS,CAAA;;;;AAKpB,IAAA,cAAc,GAAG,KAAK,CAAU,IAAI,0DAAC;IAC7B,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IAE7E,QAAQ,GAAe,MAAM,CAAuB,IAAI,CAAC,oBAAoB,IAAI,IAAI,oBAAoB,CACvG;AACE,QAAA,UAAU,EAAG,MAAM,CAAS,SAAS,CAAC,QAAQ,EAAE,CAAC;AACjD,QAAA,GAAG,EAAU,MAAM,CAAS,KAAK,CAAC;AAClC,QAAA,WAAW,EAAE,MAAM,CAAS,SAAS,CAAC;AACtC,QAAA,OAAO,EAAM,MAAM,CAAS,OAAO;AACpC,KAAA,CACF,oDAAC;AAEF,IAAA,UAAU,GAAG,QAAQ,CAAS,MAAK;QACjC,YAAY;AACZ,QAAA,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;AAC7D,QAAA,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AACtE,KAAA,CAAC,IAAI,CAAC,GAAG,CAAC,sDAAC;uGArBD,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,qOCXtB,moBAsBA,EAAA,MAAA,EAAA,CAAA,mtBAAA,CAAA,EAAA,CAAA;;2FDXa,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,moBAAA,EAAA,MAAA,EAAA,CAAA,mtBAAA,CAAA,EAAA;;;AEPb;;AAEG;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, signal, Component } from '@angular/core';
|
|
3
|
+
import { InuIcon } from 'inugami-icons';
|
|
4
|
+
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
5
|
+
|
|
6
|
+
class InuMainHeader {
|
|
7
|
+
//==================================================================================================================
|
|
8
|
+
// ATTRIBUTES
|
|
9
|
+
//==================================================================================================================
|
|
10
|
+
icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
11
|
+
disableIcon = input(false, ...(ngDevMode ? [{ debugName: "disableIcon" }] : []));
|
|
12
|
+
links = input([], ...(ngDevMode ? [{ debugName: "links" }] : []));
|
|
13
|
+
displayMenuBurger = signal(false, ...(ngDevMode ? [{ debugName: "displayMenuBurger" }] : []));
|
|
14
|
+
toggleDisplay() {
|
|
15
|
+
const display = this.displayMenuBurger();
|
|
16
|
+
this.displayMenuBurger.set(!display);
|
|
17
|
+
}
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuMainHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuMainHeader, isStandalone: true, selector: "inu-main-header", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disableIcon: { classPropertyName: "disableIcon", publicName: "disableIcon", isSignal: true, isRequired: false, transformFunction: null }, links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<nav>\n <div class=\"inu-main-header\">\n <div class=\"inu-main-header-nav-bar\">\n <div class=\"inu-main-header-home-icon\">\n <a routerLink=\"\" routerLinkActive=\"active\">\n @if (icon()) {\n <inu-icon [icon]=\"icon()\" [size]=\"2.5\"></inu-icon>\n } @else {\n <div class=\"inu-main-header-home-icon-content\"></div>\n }\n </a>\n </div>\n <div class=\"inu-main-header-links-grp\">\n <div class=\"inu-main-header-links\">\n <ul>\n @for (link of links(); track link.path; ) {\n <li>\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title }}</a>\n }\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n\n\n <div class=\"inu-main-header-actions\">\n <div class=\"inu-main-header-actions-content\">\n <ng-content/>\n </div>\n <div class=\"inu-main-header-burger\">\n <div class=\"inu-main-header-burger-icon\">\n <inu-icon icon=\"menu\" [size]=\"2\" (click)=\"toggleDisplay()\"></inu-icon>\n </div>\n </div>\n </div>\n\n </div>\n</nav>\n@if (displayMenuBurger()) {\n <div class=\"inu-main-header-links-burger\">\n <ul>\n @for (link of links(); track link.path; ) {\n <li>\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title }}</a>\n }\n\n @if (link.children) {\n <ul class=\"child-links\">\n @for (childGrp of link.children; track childGrp) {\n @if (childGrp.links) {\n @for (child of childGrp.links; track child) {\n <li>\n @if (child.external) {\n @if (child.target) {\n <a [target]=\"child.target\" [href]=\"child.path\">{{ child.title }}</a>\n } @else {\n <a [href]=\"child.path\">{{ child.title }}</a>\n }\n } @else {\n <a [routerLink]=\"child.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ child.title }}</a>\n }\n </li>\n }\n }\n }\n </ul>\n\n }\n </li>\n }\n </ul>\n </div>\n}\n", styles: ["nav{top:0rem;position:fixed;width:100vw;-webkit-box-shadow:0px 0px 5px 0px var(--shadow-color);box-shadow:0 0 5px 0 var(--shadow-color);background-color:#fbfbfe;font-size:130%;display:flex;align-items:center}.inu-main-header{width:96%;min-height:3rem;margin:0;padding:0;padding-left:.5rem;padding-right:.5rem;align-items:center;display:flex;flex-direction:row}.inu-main-header .inu-main-header-nav-bar{display:flex;flex:1;flex-direction:row;gap:2rem;align-items:center}.inu-main-header .inu-main-header-links-grp a{text-decoration:none;color:var(--main-header-title-color);height:3rem;display:flex;align-items:center;border-bottom:.15rem solid transparent;transition:border .2s}.inu-main-header .inu-main-header-links-grp a.active{border-bottom:.15rem solid var(--primary-dark)}.inu-main-header .inu-main-header-links-grp a:hover{border-bottom:.15rem solid var(--primary)}.inu-main-header .inu-main-header-links-grp .inu-main-header-links ul{margin:0;padding:0;display:flex;gap:1rem;list-style:none}.inu-main-header-actions{display:flex;flex-direction:row;align-items:center;height:3rem}.inu-main-header-actions .inu-main-header-burger .inu-main-header-burger-icon{fill:var(--neutral)}.inu-main-header-actions .inu-main-header-burger .inu-main-header-burger-icon:hover{fill:var(--neutral-dark-extra)}.inu-main-header-burger,.inu-main-header-links-burger{display:none}@media(max-width:920px){.inu-main-header-links{display:none}.inu-main-header-burger{display:flex;align-items:center}.inu-main-header-links-burger{display:flex;width:100%;border-bottom:1px solid var(--neutral);position:fixed;top:3rem;background-color:var(--background);-webkit-box-shadow:0px 0px 5px 0px var(--shadow-color);box-shadow:0 0 5px 0 var(--shadow-color)}.inu-main-header-links-burger a{color:var(--neutral-dark-extra);text-decoration:none}.inu-main-header-links-burger a.active{border-bottom:.15rem solid var(--primary-dark)}.inu-main-header-links-burger a:hover{border-bottom:.15rem solid var(--primary)}}.child-links{list-style:square!important}\n"], dependencies: [{ kind: "component", type: InuIcon, selector: "inu-icon", inputs: ["icon", "defaultIcon", "styleclass", "size"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuMainHeader, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'inu-main-header', standalone: true, imports: [
|
|
24
|
+
InuIcon,
|
|
25
|
+
RouterLink,
|
|
26
|
+
RouterLinkActive
|
|
27
|
+
], template: "<nav>\n <div class=\"inu-main-header\">\n <div class=\"inu-main-header-nav-bar\">\n <div class=\"inu-main-header-home-icon\">\n <a routerLink=\"\" routerLinkActive=\"active\">\n @if (icon()) {\n <inu-icon [icon]=\"icon()\" [size]=\"2.5\"></inu-icon>\n } @else {\n <div class=\"inu-main-header-home-icon-content\"></div>\n }\n </a>\n </div>\n <div class=\"inu-main-header-links-grp\">\n <div class=\"inu-main-header-links\">\n <ul>\n @for (link of links(); track link.path; ) {\n <li>\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title }}</a>\n }\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n\n\n <div class=\"inu-main-header-actions\">\n <div class=\"inu-main-header-actions-content\">\n <ng-content/>\n </div>\n <div class=\"inu-main-header-burger\">\n <div class=\"inu-main-header-burger-icon\">\n <inu-icon icon=\"menu\" [size]=\"2\" (click)=\"toggleDisplay()\"></inu-icon>\n </div>\n </div>\n </div>\n\n </div>\n</nav>\n@if (displayMenuBurger()) {\n <div class=\"inu-main-header-links-burger\">\n <ul>\n @for (link of links(); track link.path; ) {\n <li>\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title }}</a>\n }\n\n @if (link.children) {\n <ul class=\"child-links\">\n @for (childGrp of link.children; track childGrp) {\n @if (childGrp.links) {\n @for (child of childGrp.links; track child) {\n <li>\n @if (child.external) {\n @if (child.target) {\n <a [target]=\"child.target\" [href]=\"child.path\">{{ child.title }}</a>\n } @else {\n <a [href]=\"child.path\">{{ child.title }}</a>\n }\n } @else {\n <a [routerLink]=\"child.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ child.title }}</a>\n }\n </li>\n }\n }\n }\n </ul>\n\n }\n </li>\n }\n </ul>\n </div>\n}\n", styles: ["nav{top:0rem;position:fixed;width:100vw;-webkit-box-shadow:0px 0px 5px 0px var(--shadow-color);box-shadow:0 0 5px 0 var(--shadow-color);background-color:#fbfbfe;font-size:130%;display:flex;align-items:center}.inu-main-header{width:96%;min-height:3rem;margin:0;padding:0;padding-left:.5rem;padding-right:.5rem;align-items:center;display:flex;flex-direction:row}.inu-main-header .inu-main-header-nav-bar{display:flex;flex:1;flex-direction:row;gap:2rem;align-items:center}.inu-main-header .inu-main-header-links-grp a{text-decoration:none;color:var(--main-header-title-color);height:3rem;display:flex;align-items:center;border-bottom:.15rem solid transparent;transition:border .2s}.inu-main-header .inu-main-header-links-grp a.active{border-bottom:.15rem solid var(--primary-dark)}.inu-main-header .inu-main-header-links-grp a:hover{border-bottom:.15rem solid var(--primary)}.inu-main-header .inu-main-header-links-grp .inu-main-header-links ul{margin:0;padding:0;display:flex;gap:1rem;list-style:none}.inu-main-header-actions{display:flex;flex-direction:row;align-items:center;height:3rem}.inu-main-header-actions .inu-main-header-burger .inu-main-header-burger-icon{fill:var(--neutral)}.inu-main-header-actions .inu-main-header-burger .inu-main-header-burger-icon:hover{fill:var(--neutral-dark-extra)}.inu-main-header-burger,.inu-main-header-links-burger{display:none}@media(max-width:920px){.inu-main-header-links{display:none}.inu-main-header-burger{display:flex;align-items:center}.inu-main-header-links-burger{display:flex;width:100%;border-bottom:1px solid var(--neutral);position:fixed;top:3rem;background-color:var(--background);-webkit-box-shadow:0px 0px 5px 0px var(--shadow-color);box-shadow:0 0 5px 0 var(--shadow-color)}.inu-main-header-links-burger a{color:var(--neutral-dark-extra);text-decoration:none}.inu-main-header-links-burger a.active{border-bottom:.15rem solid var(--primary-dark)}.inu-main-header-links-burger a:hover{border-bottom:.15rem solid var(--primary)}}.child-links{list-style:square!important}\n"] }]
|
|
28
|
+
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], disableIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableIcon", required: false }] }], links: [{ type: i0.Input, args: [{ isSignal: true, alias: "links", required: false }] }] } });
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Generated bundle index. Do not edit.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
export { InuMainHeader };
|
|
35
|
+
//# sourceMappingURL=inugami-ng-components-inu-main-header.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-main-header.mjs","sources":["../../../projects/inugami-ng/components/inu-main-header/inu-main-header.ts","../../../projects/inugami-ng/components/inu-main-header/inu-main-header.html","../../../projects/inugami-ng/components/inu-main-header/inugami-ng-components-inu-main-header.ts"],"sourcesContent":["import {Component, input, signal} from '@angular/core';\nimport {InuIcon} from 'inugami-icons'\nimport {RouterLink, RouterLinkActive} from '@angular/router'\nimport {InuSiteLink} from 'inugami-ng/models'\n\n@Component({\n selector : 'inu-main-header',\n standalone : true,\n imports : [\n InuIcon,\n RouterLink,\n RouterLinkActive\n ],\n templateUrl: './inu-main-header.html',\n styleUrl : './inu-main-header.scss',\n })\nexport class InuMainHeader {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n icon = input<string>('');\n disableIcon = input<boolean>(false);\n links = input<InuSiteLink[]>([]);\n displayMenuBurger = signal<boolean>(false);\n\n protected toggleDisplay() {\n const display = this.displayMenuBurger();\n this.displayMenuBurger.set(!display);\n }\n}\n","<nav>\n <div class=\"inu-main-header\">\n <div class=\"inu-main-header-nav-bar\">\n <div class=\"inu-main-header-home-icon\">\n <a routerLink=\"\" routerLinkActive=\"active\">\n @if (icon()) {\n <inu-icon [icon]=\"icon()\" [size]=\"2.5\"></inu-icon>\n } @else {\n <div class=\"inu-main-header-home-icon-content\"></div>\n }\n </a>\n </div>\n <div class=\"inu-main-header-links-grp\">\n <div class=\"inu-main-header-links\">\n <ul>\n @for (link of links(); track link.path; ) {\n <li>\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title }}</a>\n }\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n\n\n <div class=\"inu-main-header-actions\">\n <div class=\"inu-main-header-actions-content\">\n <ng-content/>\n </div>\n <div class=\"inu-main-header-burger\">\n <div class=\"inu-main-header-burger-icon\">\n <inu-icon icon=\"menu\" [size]=\"2\" (click)=\"toggleDisplay()\"></inu-icon>\n </div>\n </div>\n </div>\n\n </div>\n</nav>\n@if (displayMenuBurger()) {\n <div class=\"inu-main-header-links-burger\">\n <ul>\n @for (link of links(); track link.path; ) {\n <li>\n @if (link.external) {\n @if (link.target) {\n <a [target]=\"link.target\" [href]=\"link.path\">{{ link.title }}</a>\n } @else {\n <a [href]=\"link.path\">{{ link.title }}</a>\n }\n } @else {\n <a [routerLink]=\"link.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ link.title }}</a>\n }\n\n @if (link.children) {\n <ul class=\"child-links\">\n @for (childGrp of link.children; track childGrp) {\n @if (childGrp.links) {\n @for (child of childGrp.links; track child) {\n <li>\n @if (child.external) {\n @if (child.target) {\n <a [target]=\"child.target\" [href]=\"child.path\">{{ child.title }}</a>\n } @else {\n <a [href]=\"child.path\">{{ child.title }}</a>\n }\n } @else {\n <a [routerLink]=\"child.path\" routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: false }\">{{ child.title }}</a>\n }\n </li>\n }\n }\n }\n </ul>\n\n }\n </li>\n }\n </ul>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAgBa,aAAa,CAAA;;;;AAKxB,IAAA,IAAI,GAAgB,KAAK,CAAS,EAAE,gDAAC;AACrC,IAAA,WAAW,GAAS,KAAK,CAAU,KAAK,uDAAC;AACzC,IAAA,KAAK,GAAe,KAAK,CAAgB,EAAE,iDAAC;AAC5C,IAAA,iBAAiB,GAAG,MAAM,CAAU,KAAK,6DAAC;IAEhC,aAAa,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACtC;uGAbW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,8cChB1B,mnGA4FA,EAAA,MAAA,EAAA,CAAA,4+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnFe,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,UAAU,oOACV,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKlB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;+BACgB,iBAAiB,EAAA,UAAA,EACjB,IAAI,EAAA,OAAA,EACJ;wBACX,OAAO;wBACP,UAAU;wBACV;AACD,qBAAA,EAAA,QAAA,EAAA,mnGAAA,EAAA,MAAA,EAAA,CAAA,4+DAAA,CAAA,EAAA;;;AEZd;;AAEG;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, inject, Component } from '@angular/core';
|
|
3
|
+
import { InuTemplateRegistryService } from 'inugami-ng/directives';
|
|
4
|
+
import { InuAsideMenu } from 'inugami-ng/components/inu-aside-menu';
|
|
5
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
6
|
+
|
|
7
|
+
class InuPageLayout {
|
|
8
|
+
//==================================================================================================================
|
|
9
|
+
// ATTRIBUTES
|
|
10
|
+
//==================================================================================================================
|
|
11
|
+
links = input([], ...(ngDevMode ? [{ debugName: "links" }] : []));
|
|
12
|
+
menuTemplate = computed(() => this.registry.getTemplate('menu'), ...(ngDevMode ? [{ debugName: "menuTemplate" }] : []));
|
|
13
|
+
registry = inject(InuTemplateRegistryService);
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuPageLayout, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuPageLayout, isStandalone: true, selector: "inu-page-layout", inputs: { links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, providers: [InuTemplateRegistryService], ngImport: i0, template: "<div class=\"inu-page-layout\">\n <section class=\"inu-page-layout-section\">\n <div class=\"inu-page-layout-sidebar\">\n @if(menuTemplate()){\n <ng-container *ngTemplateOutlet=\"menuTemplate()\"></ng-container>\n }\n @else {\n <inu-aside-menu [links]=\"links()\"></inu-aside-menu>\n }\n </div>\n <div class=\"inu-page-layout-content\">\n <ng-content/>\n </div>\n </section>\n <div class=\"inu-page-layout-bottom-margin\"></div>\n</div>\n\n", styles: [".inu-page-layout{margin-top:3.1rem}.inu-page-layout .inu-page-layout-section{display:flex;flex-direction:row;gap:2rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-sidebar{min-width:18rem;min-height:100vh;background-color:#fffefe;border-bottom:.15rem solid transparent;border-right:.15rem solid #9e9e9e}.inu-page-layout .inu-page-layout-section .inu-page-layout-content{flex:1;padding-top:1rem;padding-right:1rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-content main{margin-top:2rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-content article{margin-bottom:4rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-content article .inu-code{margin-bottom:2rem}@media(max-width:920px){.inu-page-layout .inu-page-layout-section{flex-direction:column}.inu-page-layout .inu-page-layout-section .inu-page-layout-sidebar{min-height:auto;border-bottom:.15rem solid #9e9e9e}}@media print{aside{display:none}.inu-page-layout-section .inu-page-layout-sidebar{display:none}.inu-page-layout-section .inu-page-layout-content{width:100%}}.inu-page-layout-bottom-margin{height:5rem}\n"], dependencies: [{ kind: "component", type: InuAsideMenu, selector: "inu-aside-menu", inputs: ["links"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuPageLayout, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'inu-page-layout', standalone: true, providers: [InuTemplateRegistryService], imports: [InuAsideMenu, NgTemplateOutlet], template: "<div class=\"inu-page-layout\">\n <section class=\"inu-page-layout-section\">\n <div class=\"inu-page-layout-sidebar\">\n @if(menuTemplate()){\n <ng-container *ngTemplateOutlet=\"menuTemplate()\"></ng-container>\n }\n @else {\n <inu-aside-menu [links]=\"links()\"></inu-aside-menu>\n }\n </div>\n <div class=\"inu-page-layout-content\">\n <ng-content/>\n </div>\n </section>\n <div class=\"inu-page-layout-bottom-margin\"></div>\n</div>\n\n", styles: [".inu-page-layout{margin-top:3.1rem}.inu-page-layout .inu-page-layout-section{display:flex;flex-direction:row;gap:2rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-sidebar{min-width:18rem;min-height:100vh;background-color:#fffefe;border-bottom:.15rem solid transparent;border-right:.15rem solid #9e9e9e}.inu-page-layout .inu-page-layout-section .inu-page-layout-content{flex:1;padding-top:1rem;padding-right:1rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-content main{margin-top:2rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-content article{margin-bottom:4rem}.inu-page-layout .inu-page-layout-section .inu-page-layout-content article .inu-code{margin-bottom:2rem}@media(max-width:920px){.inu-page-layout .inu-page-layout-section{flex-direction:column}.inu-page-layout .inu-page-layout-section .inu-page-layout-sidebar{min-height:auto;border-bottom:.15rem solid #9e9e9e}}@media print{aside{display:none}.inu-page-layout-section .inu-page-layout-sidebar{display:none}.inu-page-layout-section .inu-page-layout-content{width:100%}}.inu-page-layout-bottom-margin{height:5rem}\n"] }]
|
|
20
|
+
}], propDecorators: { links: [{ type: i0.Input, args: [{ isSignal: true, alias: "links", required: false }] }] } });
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Generated bundle index. Do not edit.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
export { InuPageLayout };
|
|
27
|
+
//# sourceMappingURL=inugami-ng-components-inu-page-layout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-page-layout.mjs","sources":["../../../projects/inugami-ng/components/inu-page-layout/inu-page-layout.ts","../../../projects/inugami-ng/components/inu-page-layout/inu-page-layout.html","../../../projects/inugami-ng/components/inu-page-layout/inugami-ng-components-inu-page-layout.ts"],"sourcesContent":["import {Component, computed, inject, input} from '@angular/core';\nimport {InuTemplateRegistryService} from 'inugami-ng/directives';\nimport {InuAsideMenu} from 'inugami-ng/components/inu-aside-menu'\nimport {InuSiteLink} from 'inugami-ng/models'\nimport {NgTemplateOutlet} from '@angular/common'\n\n@Component({\n selector : 'inu-page-layout',\n standalone : true,\n providers : [InuTemplateRegistryService],\n imports: [InuAsideMenu, NgTemplateOutlet],\n templateUrl: './inu-page-layout.html',\n styleUrl : './inu-page-layout.scss',\n })\nexport class InuPageLayout {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n links = input<InuSiteLink[]>([]);\n menuTemplate = computed(() => this.registry.getTemplate('menu'));\n registry: InuTemplateRegistryService = inject(InuTemplateRegistryService);\n}\n","<div class=\"inu-page-layout\">\n <section class=\"inu-page-layout-section\">\n <div class=\"inu-page-layout-sidebar\">\n @if(menuTemplate()){\n <ng-container *ngTemplateOutlet=\"menuTemplate()\"></ng-container>\n }\n @else {\n <inu-aside-menu [links]=\"links()\"></inu-aside-menu>\n }\n </div>\n <div class=\"inu-page-layout-content\">\n <ng-content/>\n </div>\n </section>\n <div class=\"inu-page-layout-bottom-margin\"></div>\n</div>\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAca,aAAa,CAAA;;;;AAKxB,IAAA,KAAK,GAAG,KAAK,CAAgB,EAAE,iDAAC;AAChC,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,wDAAC;AAChE,IAAA,QAAQ,GAA+B,MAAM,CAAC,0BAA0B,CAAC;uGAP9D,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EALA,CAAC,0BAA0B,CAAC,0BCTtD,gfAiBA,EAAA,MAAA,EAAA,CAAA,mmCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPuB,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIxC,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;+BACgB,iBAAiB,EAAA,UAAA,EACjB,IAAI,EAAA,SAAA,EACJ,CAAC,0BAA0B,CAAC,EAAA,OAAA,EAChC,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,gfAAA,EAAA,MAAA,EAAA,CAAA,mmCAAA,CAAA,EAAA;;;AEVtD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inugami-ng-models.mjs","sources":["../../../projects/inugami-ng/models/site-link.model.ts","../../../projects/inugami-ng/models/inugami-ng-models.ts"],"sourcesContent":["export const TARGET_BLANK = '_blank';\nexport const TARGET_SELF = '_self';\nexport const TARGET_PARENT = '_parent';\nexport interface InuSiteLink{\n title:string;\n path
|
|
1
|
+
{"version":3,"file":"inugami-ng-models.mjs","sources":["../../../projects/inugami-ng/models/site-link.model.ts","../../../projects/inugami-ng/models/inugami-ng-models.ts"],"sourcesContent":["export const TARGET_BLANK = '_blank';\nexport const TARGET_SELF = '_self';\nexport const TARGET_PARENT = '_parent';\nexport interface InuSiteLink{\n title:string;\n path?:string;\n icon?:string;\n styleClass?:string;\n external?:boolean;\n target?:'_blank'|'_self'|'_parent',\n children?: InuSiteLinkChildren[];\n gaEvent?:string;\n gaCategory?:string;\n}\n\nexport interface InuSiteLinkChildren{\n links?: InuSiteLink[];\n title?:string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,YAAY,GAAG;AACrB,MAAM,WAAW,GAAG;AACpB,MAAM,aAAa,GAAG;;ACF7B;;AAEG;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
1
|
+
import { Observable, debounceTime, distinctUntilChanged } from 'rxjs';
|
|
2
|
+
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
2
3
|
|
|
3
4
|
class UuidUtils {
|
|
4
5
|
static _S4() {
|
|
@@ -42,9 +43,38 @@ class ObservableSubscriber {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
|
46
|
+
class InuFormsUtils {
|
|
47
|
+
static onChanged(model, debounce) {
|
|
48
|
+
return toObservable(model)
|
|
49
|
+
.pipe(debounceTime(debounce ?? 50), distinctUntilChanged(), takeUntilDestroyed());
|
|
50
|
+
}
|
|
51
|
+
static isValid(form) {
|
|
52
|
+
let valid = true;
|
|
53
|
+
const invalidFields = [];
|
|
54
|
+
const keys = Object.keys(form);
|
|
55
|
+
for (let key of keys) {
|
|
56
|
+
const field = form[key]();
|
|
57
|
+
if (!field.validationState.valid()) {
|
|
58
|
+
valid = false;
|
|
59
|
+
invalidFields.push({
|
|
60
|
+
field: key,
|
|
61
|
+
dirty: field.nodeState.dirty(),
|
|
62
|
+
disabled: field.nodeState.disabled(),
|
|
63
|
+
touched: field.nodeState.touched(),
|
|
64
|
+
errors: field.validationState.errors()
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
valid: valid,
|
|
70
|
+
invalidFields: invalidFields
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
45
75
|
/**
|
|
46
76
|
* Generated bundle index. Do not edit.
|
|
47
77
|
*/
|
|
48
78
|
|
|
49
|
-
export { InuStringUtils, ObservableSubscriber, UuidUtils };
|
|
79
|
+
export { InuFormsUtils, InuStringUtils, ObservableSubscriber, UuidUtils };
|
|
50
80
|
//# sourceMappingURL=inugami-ng-utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inugami-ng-utils.mjs","sources":["../../../projects/inugami-ng/utils/uuid.utils.ts","../../../projects/inugami-ng/utils/string.utils.ts","../../../projects/inugami-ng/utils/observable.utils.ts","../../../projects/inugami-ng/utils/inugami-ng-utils.ts"],"sourcesContent":["export class UuidUtils {\n\n private static _S4():string {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n\n public static buildUid(): string {\n return (\n this._S4() + this._S4() + \"-\" +\n this._S4() + \"-4\" +\n this._S4().substring(0, 3) + \"-\" +\n this._S4() + \"-\" +\n this._S4() + this._S4() + this._S4()\n ).toLowerCase();\n }\n}\n","export class InuStringUtils {\n\n\n public static normalize(value?: string): string {\n if (!value) {\n return '';\n }\n return value.normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .replace(/[^a-zA-Z0-9\\-_]/g, '')\n .toLowerCase();\n }\n}\n","import {Observable, Subscriber} from 'rxjs'\n\nexport class ObservableSubscriber<T> {\n private result$: Observable<T>;\n private handler ?: Subscriber<T>;\n\n constructor() {\n this.result$ = new Observable<T>((subscriber: Subscriber<T>) => {\n this.handler = subscriber;\n });\n }\n\n observable(): Observable<T> {\n return this.result$;\n }\n\n subscriber(): Subscriber<T> | undefined {\n return this.handler;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inugami-ng-utils.mjs","sources":["../../../projects/inugami-ng/utils/uuid.utils.ts","../../../projects/inugami-ng/utils/string.utils.ts","../../../projects/inugami-ng/utils/observable.utils.ts","../../../projects/inugami-ng/utils/forms.utils.ts","../../../projects/inugami-ng/utils/inugami-ng-utils.ts"],"sourcesContent":["export class UuidUtils {\n\n private static _S4():string {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n\n public static buildUid(): string {\n return (\n this._S4() + this._S4() + \"-\" +\n this._S4() + \"-4\" +\n this._S4().substring(0, 3) + \"-\" +\n this._S4() + \"-\" +\n this._S4() + this._S4() + this._S4()\n ).toLowerCase();\n }\n}\n","export class InuStringUtils {\n\n\n public static normalize(value?: string): string {\n if (!value) {\n return '';\n }\n return value.normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .replace(/[^a-zA-Z0-9\\-_]/g, '')\n .toLowerCase();\n }\n}\n","import {Observable, Subscriber} from 'rxjs'\n\nexport class ObservableSubscriber<T> {\n private result$: Observable<T>;\n private handler ?: Subscriber<T>;\n\n constructor() {\n this.result$ = new Observable<T>((subscriber: Subscriber<T>) => {\n this.handler = subscriber;\n });\n }\n\n observable(): Observable<T> {\n return this.result$;\n }\n\n subscriber(): Subscriber<T> | undefined {\n return this.handler;\n }\n}\n","import {Signal} from '@angular/core'\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop'\nimport {debounceTime, distinctUntilChanged, Observable} from 'rxjs'\nimport {FieldTree} from '@angular/forms/signals'\n\nexport interface ValidityChanges {\n valid: boolean;\n invalidFields: InvalidField[];\n}\n\nexport interface InvalidField {\n field: string;\n dirty: boolean;\n disabled: boolean;\n touched: boolean;\n errors: any[];\n}\n\nexport class InuFormsUtils {\n\n public static onChanged<T>(model: Signal<T>, debounce?: number): Observable<T> {\n return toObservable(model)\n .pipe(\n debounceTime(debounce ?? 50),\n distinctUntilChanged(),\n takeUntilDestroyed()\n );\n }\n\n public static isValid<T>(form: FieldTree<T>): ValidityChanges {\n let valid: boolean = true;\n const invalidFields: InvalidField[] = [];\n\n const keys = Object.keys(form);\n for (let key of keys) {\n const field = (form as any)[key]();\n if (!field.validationState.valid()) {\n valid = false;\n invalidFields.push({\n field : key,\n dirty : field.nodeState.dirty(),\n disabled: field.nodeState.disabled(),\n touched : field.nodeState.touched(),\n errors : field.validationState.errors()\n });\n }\n\n }\n return {\n valid : valid,\n invalidFields: invalidFields\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAAa,SAAS,CAAA;AAEZ,IAAA,OAAO,GAAG,GAAA;QAChB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE;;AAEO,IAAA,OAAO,QAAQ,GAAA;QACpB,OAAO,CACL,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;AAC7B,YAAA,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;YACjB,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG;AAChC,YAAA,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;AAChB,YAAA,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EACpC,WAAW,EAAE;IACjB;AACD;;MCfY,cAAc,CAAA;IAGlB,OAAO,SAAS,CAAC,KAAc,EAAA;QACpC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK;AACzB,aAAA,OAAO,CAAC,kBAAkB,EAAE,EAAE;AAC9B,aAAA,OAAO,CAAC,kBAAkB,EAAE,EAAE;AAC9B,aAAA,WAAW,EAAE;IAClB;AACD;;MCVY,oBAAoB,CAAA;AACvB,IAAA,OAAO;AACP,IAAA,OAAO;AAEf,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAI,CAAC,UAAyB,KAAI;AAC7D,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU;AAC3B,QAAA,CAAC,CAAC;IACJ;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AACD;;MCDY,aAAa,CAAA;AAEjB,IAAA,OAAO,SAAS,CAAI,KAAgB,EAAE,QAAiB,EAAA;QAC5D,OAAO,YAAY,CAAC,KAAK;AACtB,aAAA,IAAI,CACH,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,EAC5B,oBAAoB,EAAE,EACtB,kBAAkB,EAAE,CACrB;IACL;IAEO,OAAO,OAAO,CAAI,IAAkB,EAAA;QACzC,IAAI,KAAK,GAA6B,IAAI;QAC1C,MAAM,aAAa,GAAmB,EAAE;QAExC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE;gBAClC,KAAK,GAAG,KAAK;gBACb,aAAa,CAAC,IAAI,CAAC;AACE,oBAAA,KAAK,EAAK,GAAG;AACb,oBAAA,KAAK,EAAK,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;AACjC,oBAAA,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;AACpC,oBAAA,OAAO,EAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE;AACnC,oBAAA,MAAM,EAAI,KAAK,CAAC,eAAe,CAAC,MAAM;AACvC,iBAAA,CAAC;YACvB;QAEF;QACA,OAAO;AACL,YAAA,KAAK,EAAU,KAAK;AACpB,YAAA,aAAa,EAAE;SAChB;IACH;AACD;;ACrDD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "inugami-ng",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
4
4
|
"license": "GPL-3.0-only",
|
|
5
5
|
"description": "Inugami project angular library",
|
|
6
6
|
"keywords": [
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"types": "./types/inugami-ng.d.ts",
|
|
37
37
|
"default": "./fesm2022/inugami-ng.mjs"
|
|
38
38
|
},
|
|
39
|
+
"./components/inu-aside-menu": {
|
|
40
|
+
"types": "./types/inugami-ng-components-inu-aside-menu.d.ts",
|
|
41
|
+
"default": "./fesm2022/inugami-ng-components-inu-aside-menu.mjs"
|
|
42
|
+
},
|
|
39
43
|
"./components/inu-button": {
|
|
40
44
|
"types": "./types/inugami-ng-components-inu-button.d.ts",
|
|
41
45
|
"default": "./fesm2022/inugami-ng-components-inu-button.mjs"
|
|
@@ -68,10 +72,18 @@
|
|
|
68
72
|
"types": "./types/inugami-ng-components-inu-input-text.d.ts",
|
|
69
73
|
"default": "./fesm2022/inugami-ng-components-inu-input-text.mjs"
|
|
70
74
|
},
|
|
75
|
+
"./components/inu-main-header": {
|
|
76
|
+
"types": "./types/inugami-ng-components-inu-main-header.d.ts",
|
|
77
|
+
"default": "./fesm2022/inugami-ng-components-inu-main-header.mjs"
|
|
78
|
+
},
|
|
71
79
|
"./components/inu-open-api": {
|
|
72
80
|
"types": "./types/inugami-ng-components-inu-open-api.d.ts",
|
|
73
81
|
"default": "./fesm2022/inugami-ng-components-inu-open-api.mjs"
|
|
74
82
|
},
|
|
83
|
+
"./components/inu-page-layout": {
|
|
84
|
+
"types": "./types/inugami-ng-components-inu-page-layout.d.ts",
|
|
85
|
+
"default": "./fesm2022/inugami-ng-components-inu-page-layout.mjs"
|
|
86
|
+
},
|
|
75
87
|
"./components/inu-panel-tabs": {
|
|
76
88
|
"types": "./types/inugami-ng-components-inu-panel-tabs.d.ts",
|
|
77
89
|
"default": "./fesm2022/inugami-ng-components-inu-panel-tabs.mjs"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--main-header-title-color: #0c0c0c;--main-header-title-background: #e1e4e7;--background-color: #ffffff;--shadow-color: #d1d1d1;--text-color-light: #f8f7f7;--text-color: #1a1a1a;--primary-dark: #b20505;--primary: #cc0000;--primary-light: #afcf2c;--secondary-dark-extra: #0a203d;--secondary-dark: #1b3c67;--secondary: #1f5294;--secondary-light: #2c73cf;--secondary-light-extra: #d8e7ff;--neutral-light-extra-plus: #fbfbfe;--neutral-light-extra: #eff3f7;--neutral-light: #
|
|
1
|
+
:root{--main-header-title-color: #0c0c0c;--main-header-title-background: #e1e4e7;--background-color: #ffffff;--shadow-color: #d1d1d1;--text-color-light: #f8f7f7;--text-color: #1a1a1a;--primary-dark: #b20505;--primary: #cc0000;--primary-light: #afcf2c;--secondary-dark-extra: #0a203d;--secondary-dark: #1b3c67;--secondary: #1f5294;--secondary-light: #2c73cf;--secondary-light-extra: #d8e7ff;--neutral-light-extra-plus: #fbfbfe;--neutral-light-extra: #eff3f7;--neutral-light: #f0f0f5;--neutral-dark: #5d6269;--neutral-dark-extra: #262728;--neutral: #7a8088;--info: #1f5294;--info-light: #6094d7;--success-dark: #0f621d;--success: #1f812f;--success-light: #4aa659;--success-light-extra: #e1f1e4;--danger-dark: #6e1008;--danger: #da4134;--danger-light: #e5766c;--danger-light-extra: #facecb;--danger-light-extra-extra: #fdf3f3;--warning-dark: #a8700f;--warning: #efad32;--warning-light: #e0b971;--warning-light-extra: #fcf0db;--background: #ffffff;--endpoint-font-color: #3b4151;--endpoint-verb-font-color: #3b4151;--endpoint-get-background: #d9d6fe;--endpoint-get-background-darker: #3f5470;--endpoint-get-detail-background: #f7f7ff;--endpoint-head-background: #e7ddbd;--endpoint-head-background-darker: #443f70;--endpoint-head-detail-background: #f9fbff;--endpoint-post-background: #bef0c6;--endpoint-post-background-darker: #457040;--endpoint-post-detail-background: #f2fcf4;--endpoint-put-background: #e1d2b5;--endpoint-put-background-darker: #5f5033;--endpoint-put-detail-background: #fcfff1;--endpoint-patch-background: #92d0cd;--endpoint-patch-background-darker: #21524e;--endpoint-patch-detail-background: #dafffc;--endpoint-delete-background: #fecdca;--endpoint-delete-background-darker: #623F55;--endpoint-delete-detail-background: #fff5f4;--endpoint-option-background: #ffd4e0;--endpoint-option-background-darker: #372E34;--endpoint-option-detail-background: #fff6f9;--endpoint-trace-background: #c1ccda;--endpoint-trace-background-darker: #e6ebf5;--endpoint-trace-detail-background: #dbdfe7}nav.navbar{-webkit-box-shadow:0px 0px 5px 0px var(--shadow-color);box-shadow:0px 0px 5px 0px var(--shadow-color);margin:0;padding:0;top:0;position:fixed;width:100%;background-color:#fbfbfe;font-size:130%}nav.navbar .inugami-icon img{height:2.46rem}nav.navbar .navbar-collapse a{padding:0dvh;display:flex;color:var(--main-header-title-color);text-decoration:none}nav.navbar .nav-item a{height:3rem;display:flex;align-items:center;border-bottom:.15rem solid rgba(0,0,0,0);transition:border 200ms}nav.navbar .nav-item a.active{border-bottom:.15rem solid var(--primary-dark)}nav.navbar .nav-item a:hover{border-bottom:.15rem solid var(--primary)}nav.navbar .sublink{color:#a0a0a0;display:none}nav.navbar .navbar-nav{display:flex;gap:2rem}nav.navbar .navbar-collapse.collapse.show .sublink{display:block}menu{padding:0;margin:0}menu a{color:var(--text-color);text-decoration:none}menu a.active{font-weight:bold;color:var(--primary-dark)}menu a:hover{text-decoration:underline}article header a{text-decoration:none}article header a:hover{text-decoration:underline;color:var(--primary-dark)}@media print{av.navbar{-webkit-box-shadow:0px 0px 5px 0px var(--shadow-color);box-shadow:0px 0px 5px 0px var(--shadow-color);margin:0;padding:0;top:0;position:absolute;width:100%;background-color:#fbfbfe;font-size:130%}}article{margin-bottom:2rem}.ontop{display:none}.nav-ontop{display:none}@media(min-width: 768px){.ontop{display:block}.nav-ontop{display:block}.row-reverse{display:flex;flex-direction:row-reverse;gap:4rem}.size-5{width:10rem}.size-10{width:10rem}.size-15{width:15rem}.size-20{width:15rem}.padding-4{padding-right:4rem}dl{display:flex;flex-wrap:wrap;width:100%;padding:20px}dl dt{flex:0 0 30%;min-width:10rem}dl dd{flex:0 0 70%;margin-left:0;padding:10px 0}.images-flex{gap:1rem;justify-content:center;flex-direction:row}}#navbarToggler.show{position:fixed;top:3.1rem;background-color:#fff;width:100%;padding:1rem;border-bottom:1px solid}#navbarToggler.show a{color:var(--neutral-dark);text-decoration:none}#navbarToggler.show a:hover{text-decoration:underline}#navbarToggler.show a.active{color:var(--primary-dark);font-weight:bold}#navbarToggler.show .sublink ul li{list-style:square}h1{font-size:240%;font-weight:bold;color:var(--primary-dark);padding-left:1rem}h2{font-size:180%;font-weight:bold;color:var(--primary-dark);padding-left:2rem}h3{font-size:150%;color:var(--neutral-dark);padding-left:3rem}h4{font-size:120%;color:var(--neutral-dark);font-style:italic;padding-left:4rem}h5{font-size:100%;color:var(--neutral-dark);font-style:italic;padding-left:5rem}.m-width-10p{min-width:10%}.m-width-10p>*{width:100%}.m-width-20p{min-width:20%}.m-width-20p>*{width:100%}.m-width-30p{min-width:30%}.m-width-30p>*{width:100%}.m-width-40p{min-width:40%}.m-width-40p>*{width:100%}.m-width-50p{min-width:50%}.m-width-50p>*{width:100%}.m-width-60p{min-width:60%}.m-width-60p>*{width:100%}.m-width-70p{min-width:70%}.m-width-70p>*{width:100%}.m-width-80p{min-width:80%}.m-width-80p>*{width:100%}.m-width-90p{min-width:90%}.m-width-90p>*{width:100%}.m-width-100p{min-width:100%}.m-width-100p>*{width:100%}.m-height-10{min-height:10rem}.m-height-15{min-height:15rem}.m-height-20{min-height:20rem}.m-height-30{min-height:30rem}.m-height-40{min-height:40rem}.m-height-50{min-height:50rem}.m-height-60{min-height:60rem}.w10{width:10%}.w10 *{width:100%}.w20{width:20%}.w20 *{width:100%}.w30{width:30%}.w30 *{width:100%}.w40{width:40%}.w40 *{width:100%}.w50{width:50%}.w50 *{width:100%}.w60{width:60%}.w60 *{width:100%}.w70{width:70%}.w70 *{width:100%}.w80{width:50%}.w80 *{width:100%}.w90{width:90%}.w90 *{width:100%}.w100{width:100%}.w100 *{width:100%}.form-container{display:flex;gap:2rem;width:100%}.form-row{display:flex;flex-direction:column;width:100%;gap:2rem}.form-col{display:flex;flex-direction:column;gap:2rem}.form-row-col{display:flex;flex-direction:row;width:100%;gap:2rem;justify-content:space-between}.form-cell{display:flex;flex-direction:row}.form-cell-col{display:flex;flex-direction:column}.row-reverse{display:flex;flex-direction:column;gap:2rem}.size-fit{flex:1}.images-flex{display:flex;flex-direction:column;gap:1rem}.images-flex img{width:100%}.d-flex{display:flex}.d-flex-column{display:flex;flex-direction:column}.d-flex-row{display:flex;flex-direction:row}.flex-row{display:flex;gap:.25rem;align-items:center}.d-gap-1{gap:1rem}.d-gap-2{gap:2rem}.d-gap-3{gap:3rem}.d-gap-4{gap:4rem}.d-list-flex-row{list-style:none;display:flex;flex-wrap:wrap}.d-list-flex-column{list-style:none;display:flex;flex-direction:column;flex-wrap:wrap}.inu-flex-table{width:100%;display:grid}.inu-flex-table .flex-table-header{display:grid;grid-template-columns:1.5fr .8fr 3fr 4fr;font-weight:bold;padding:.25rem;border-bottom:.15rem solid var(--neutral)}@media(max-width: 768px){.inu-flex-table .flex-table-header{display:none}}.inu-flex-table .flex-table-body-row{display:grid;grid-template-columns:1.5fr .8fr 3fr 4fr}@media(max-width: 768px){.inu-flex-table .flex-table-body-row{display:flex;flex-direction:column;padding:.5rem;gap:1rem;border-bottom:1px solid var(--neutral-light)}}svg .top{fill:var(--neutral)}svg .bottom{fill:var(--neutral-dark-extra)}svg .left{fill:var(--neutral-dark)}svg .right{fill:var(--neutral-light)}svg .front{fill:var(--neutral-light-extra)}svg .shadow{fill:var(--neutral-dark-extra);fill:#241f31;stroke:none;stroke-width:.264999;paint-order:stroke fill markers;fill-opacity:1;filter:url(#shadow);opacity:.17684887}svg .shadow-selected{fill:#006fff;stroke:none;stroke-width:.264999;paint-order:stroke fill markers;fill-opacity:1;filter:url(#shadow);opacity:.4}svg .hitbox{fill-opacity:0}.inu-red{fill:#c00}html{scroll-padding-top:500px;scroll-behavior:smooth}table{width:100%}table thead th{border-bottom:.15rem solid var(--neutral-dark)}figure{display:flex;flex-direction:column;justify-content:center}figure figcaption{color:var(--neutral-dark);font-style:italic;display:flex;justify-content:center}figure caption{color:var(--neutral-dark);font-style:italic;display:flex;justify-content:center}em{color:var(--primary);font-weight:bold}dl{width:100%;padding:20px;border-radius:8px}dl.no-flex{flex:none !important;display:block}dl dt{font-weight:bold;color:var(--secondary);padding:10px 0;border-bottom:1px solid #f0f0f0}dl dt:hover{color:var(--primary)}dl dd{margin-left:0;padding:10px 0;color:#333;border-bottom:1px solid #f0f0f0}fieldset{margin-bottom:1rem;padding-right:1rem;padding-left:1rem;border-left:.125rem solid rgba(0,0,0,0)}fieldset:hover{border-left:.125rem solid var(--neutral)}.actions-inline{list-style:none;display:flex;padding:0;margin:0;gap:1rem}.cursor-pointer{cursor:pointer}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.rotate{display:inline-block;animation:spin 2s linear infinite}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InuSiteLink } from 'inugami-ng/models';
|
|
3
|
+
|
|
4
|
+
declare class InuAsideMenu {
|
|
5
|
+
links: i0.InputSignal<InuSiteLink[]>;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InuAsideMenu, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InuAsideMenu, "inu-aside-menu", never, { "links": { "alias": "links"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { InuAsideMenu };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InuSiteLink } from 'inugami-ng/models';
|
|
3
|
+
|
|
4
|
+
declare class InuMainHeader {
|
|
5
|
+
icon: _angular_core.InputSignal<string>;
|
|
6
|
+
disableIcon: _angular_core.InputSignal<boolean>;
|
|
7
|
+
links: _angular_core.InputSignal<InuSiteLink[]>;
|
|
8
|
+
displayMenuBurger: _angular_core.WritableSignal<boolean>;
|
|
9
|
+
protected toggleDisplay(): void;
|
|
10
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InuMainHeader, never>;
|
|
11
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InuMainHeader, "inu-main-header", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disableIcon": { "alias": "disableIcon"; "required": false; "isSignal": true; }; "links": { "alias": "links"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { InuMainHeader };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InuTemplateRegistryService } from 'inugami-ng/directives';
|
|
3
|
+
import { InuSiteLink } from 'inugami-ng/models';
|
|
4
|
+
|
|
5
|
+
declare class InuPageLayout {
|
|
6
|
+
links: _angular_core.InputSignal<InuSiteLink[]>;
|
|
7
|
+
menuTemplate: _angular_core.Signal<_angular_core.TemplateRef<any> | undefined>;
|
|
8
|
+
registry: InuTemplateRegistryService;
|
|
9
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InuPageLayout, never>;
|
|
10
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InuPageLayout, "inu-page-layout", never, { "links": { "alias": "links"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { InuPageLayout };
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Observable, Subscriber } from 'rxjs';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
3
|
+
import { FieldTree } from '@angular/forms/signals';
|
|
2
4
|
|
|
3
5
|
declare class UuidUtils {
|
|
4
6
|
private static _S4;
|
|
@@ -17,4 +19,21 @@ declare class ObservableSubscriber<T> {
|
|
|
17
19
|
subscriber(): Subscriber<T> | undefined;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
interface ValidityChanges {
|
|
23
|
+
valid: boolean;
|
|
24
|
+
invalidFields: InvalidField[];
|
|
25
|
+
}
|
|
26
|
+
interface InvalidField {
|
|
27
|
+
field: string;
|
|
28
|
+
dirty: boolean;
|
|
29
|
+
disabled: boolean;
|
|
30
|
+
touched: boolean;
|
|
31
|
+
errors: any[];
|
|
32
|
+
}
|
|
33
|
+
declare class InuFormsUtils {
|
|
34
|
+
static onChanged<T>(model: Signal<T>, debounce?: number): Observable<T>;
|
|
35
|
+
static isValid<T>(form: FieldTree<T>): ValidityChanges;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { InuFormsUtils, InuStringUtils, ObservableSubscriber, UuidUtils };
|
|
39
|
+
export type { InvalidField, ValidityChanges };
|