inugami-ng 0.0.9 → 0.0.11
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-button.mjs +6 -4
- package/fesm2022/inugami-ng-components-inu-button.mjs.map +1 -1
- package/fesm2022/inugami-ng-components-inu-copy.mjs +79 -0
- package/fesm2022/inugami-ng-components-inu-copy.mjs.map +1 -0
- package/fesm2022/inugami-ng-components-inu-doc-item.mjs +1 -4
- package/fesm2022/inugami-ng-components-inu-doc-item.mjs.map +1 -1
- package/fesm2022/inugami-ng-components-inu-svg-switzerland.mjs +437 -0
- package/fesm2022/inugami-ng-components-inu-svg-switzerland.mjs.map +1 -0
- package/fesm2022/inugami-ng-services.mjs +575 -1
- package/fesm2022/inugami-ng-services.mjs.map +1 -1
- package/package.json +9 -1
- package/types/inugami-ng-components-inu-button.d.ts +2 -1
- package/types/inugami-ng-components-inu-copy.d.ts +30 -0
- package/types/inugami-ng-components-inu-svg-switzerland.d.ts +90 -0
- package/types/inugami-ng-models.d.ts +131 -1
- package/types/inugami-ng-services.d.ts +21 -1
|
@@ -10,20 +10,22 @@ class InuButton {
|
|
|
10
10
|
icon = input(null, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
11
11
|
type = input('', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
12
12
|
link = input(false, ...(ngDevMode ? [{ debugName: "link" }] : []));
|
|
13
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
13
14
|
_styleClass = computed(() => {
|
|
14
15
|
return [
|
|
15
16
|
'inu-button',
|
|
16
17
|
this.type() ? this.type() : '',
|
|
17
|
-
this.link() ? 'link' : ''
|
|
18
|
+
this.link() ? 'link' : '',
|
|
19
|
+
this.disabled() ? 'disabled' : ''
|
|
18
20
|
].join(' ');
|
|
19
21
|
}, ...(ngDevMode ? [{ debugName: "_styleClass" }] : []));
|
|
20
22
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuButton, isStandalone: true, selector: "inu-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if(link()){\n <span [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </span>\n}\n@else{\n <button [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </button>\n}\n", styles: [".inu-button{display:flex;gap:.5rem;justify-content:space-around;align-items:center;padding:.125rem .25rem;background-color:var(--neutral-light-extra);border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000}.inu-button inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content svg{display:flex;align-items:center}.inu-button .inu-button-icon{width:1.25rem}.inu-button .inu-button-label{flex:1}.inu-button:hover{border-color:var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px var(--neutral);box-shadow:0 0 .25rem 0 var(--neutral)}.inu-button.secondary{background-color:var(--secondary-light-extra);border-color:var(--secondary-light);color:var(--text-color)}.inu-button.secondary:hover{border-color:var(--secondary);-webkit-box-shadow:0px 0px .25rem 0px var(--secondary);box-shadow:0 0 .25rem 0 var(--secondary)}.inu-button.primary,.inu-button.success{background-color:var(--success-light-extra);border-color:var(--success-light);color:var(--text-color)}.inu-button.primary:hover,.inu-button.success:hover{border-color:var(--success);-webkit-box-shadow:0px 0px .25rem 0px var(--success);box-shadow:0 0 .25rem 0 var(--success)}.inu-button.warn{background-color:var(--warning-light-extra);border-color:var(--warning-light);color:var(--text-color)}.inu-button.warn:hover{border-color:var(--warning);-webkit-box-shadow:0px 0px .25rem 0px var(--warning);box-shadow:0 0 .25rem 0 var(--warning)}.inu-button.danger,.inu-button.error{background-color:var(--danger-light-extra);border-color:var(--danger-light);color:var(--text-color)}.inu-button.danger:hover,.inu-button.error:hover{border-color:var(--danger);-webkit-box-shadow:0px 0px .25rem 0px var(--danger);box-shadow:0 0 .25rem 0 var(--danger)}.inu-button.link{border-top:none;border-left:none;border-right:none;background-color:transparent;box-shadow:0 0 .25rem 0 transparent!important}.inu-button.link:hover{background:linear-gradient(to bottom,transparent 95%,var(--neutral) 100%)}\n"], dependencies: [{ kind: "component", type: InuIcon, selector: "inu-icon", inputs: ["icon", "defaultIcon", "styleclass", "size"] }] });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: InuButton, isStandalone: true, selector: "inu-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if(link()){\n <span [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </span>\n}\n@else{\n <button [class]=\"_styleClass()\" [disabled]=\"disabled()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </button>\n}\n", styles: [".inu-button{display:flex;gap:.5rem;justify-content:space-around;align-items:center;padding:.125rem .25rem;background-color:var(--neutral-light-extra);border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000}.inu-button inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content svg{display:flex;align-items:center}.inu-button .inu-button-icon{width:1.25rem}.inu-button .inu-button-label{flex:1}.inu-button:hover{border-color:var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px var(--neutral);box-shadow:0 0 .25rem 0 var(--neutral)}.inu-button.secondary{background-color:var(--secondary-light-extra);border-color:var(--secondary-light);color:var(--text-color)}.inu-button.secondary:hover{border-color:var(--secondary);-webkit-box-shadow:0px 0px .25rem 0px var(--secondary);box-shadow:0 0 .25rem 0 var(--secondary)}.inu-button.primary,.inu-button.success{background-color:var(--success-light-extra);border-color:var(--success-light);color:var(--text-color)}.inu-button.primary:hover,.inu-button.success:hover{border-color:var(--success);-webkit-box-shadow:0px 0px .25rem 0px var(--success);box-shadow:0 0 .25rem 0 var(--success)}.inu-button.warn{background-color:var(--warning-light-extra);border-color:var(--warning-light);color:var(--text-color)}.inu-button.warn:hover{border-color:var(--warning);-webkit-box-shadow:0px 0px .25rem 0px var(--warning);box-shadow:0 0 .25rem 0 var(--warning)}.inu-button.danger,.inu-button.error{background-color:var(--danger-light-extra);border-color:var(--danger-light);color:var(--text-color)}.inu-button.danger:hover,.inu-button.error:hover{border-color:var(--danger);-webkit-box-shadow:0px 0px .25rem 0px var(--danger);box-shadow:0 0 .25rem 0 var(--danger)}.inu-button.disabled{background-color:var(--neutral-light-extra);border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000;color:var(--neutral);fill:var(--neutral)}.inu-button.disabled:hover{border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000}.inu-button.link{border-top:none;border-left:none;border-right:none;background-color:transparent;box-shadow:0 0 .25rem 0 transparent!important}.inu-button.link:hover{background:linear-gradient(to bottom,transparent 95%,var(--neutral) 100%)}\n"], dependencies: [{ kind: "component", type: InuIcon, selector: "inu-icon", inputs: ["icon", "defaultIcon", "styleclass", "size"] }] });
|
|
22
24
|
}
|
|
23
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuButton, decorators: [{
|
|
24
26
|
type: Component,
|
|
25
|
-
args: [{ selector: 'inu-button', standalone: true, imports: [InuIcon], template: "@if(link()){\n <span [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </span>\n}\n@else{\n <button [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </button>\n}\n", styles: [".inu-button{display:flex;gap:.5rem;justify-content:space-around;align-items:center;padding:.125rem .25rem;background-color:var(--neutral-light-extra);border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000}.inu-button inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content svg{display:flex;align-items:center}.inu-button .inu-button-icon{width:1.25rem}.inu-button .inu-button-label{flex:1}.inu-button:hover{border-color:var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px var(--neutral);box-shadow:0 0 .25rem 0 var(--neutral)}.inu-button.secondary{background-color:var(--secondary-light-extra);border-color:var(--secondary-light);color:var(--text-color)}.inu-button.secondary:hover{border-color:var(--secondary);-webkit-box-shadow:0px 0px .25rem 0px var(--secondary);box-shadow:0 0 .25rem 0 var(--secondary)}.inu-button.primary,.inu-button.success{background-color:var(--success-light-extra);border-color:var(--success-light);color:var(--text-color)}.inu-button.primary:hover,.inu-button.success:hover{border-color:var(--success);-webkit-box-shadow:0px 0px .25rem 0px var(--success);box-shadow:0 0 .25rem 0 var(--success)}.inu-button.warn{background-color:var(--warning-light-extra);border-color:var(--warning-light);color:var(--text-color)}.inu-button.warn:hover{border-color:var(--warning);-webkit-box-shadow:0px 0px .25rem 0px var(--warning);box-shadow:0 0 .25rem 0 var(--warning)}.inu-button.danger,.inu-button.error{background-color:var(--danger-light-extra);border-color:var(--danger-light);color:var(--text-color)}.inu-button.danger:hover,.inu-button.error:hover{border-color:var(--danger);-webkit-box-shadow:0px 0px .25rem 0px var(--danger);box-shadow:0 0 .25rem 0 var(--danger)}.inu-button.link{border-top:none;border-left:none;border-right:none;background-color:transparent;box-shadow:0 0 .25rem 0 transparent!important}.inu-button.link:hover{background:linear-gradient(to bottom,transparent 95%,var(--neutral) 100%)}\n"] }]
|
|
26
|
-
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }] } });
|
|
27
|
+
args: [{ selector: 'inu-button', standalone: true, imports: [InuIcon], template: "@if(link()){\n <span [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </span>\n}\n@else{\n <button [class]=\"_styleClass()\" [disabled]=\"disabled()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </button>\n}\n", styles: [".inu-button{display:flex;gap:.5rem;justify-content:space-around;align-items:center;padding:.125rem .25rem;background-color:var(--neutral-light-extra);border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000}.inu-button inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content{display:flex;align-items:center}.inu-button inu-icon ::ng-deep .inu-icon .inu-icon-content svg{display:flex;align-items:center}.inu-button .inu-button-icon{width:1.25rem}.inu-button .inu-button-label{flex:1}.inu-button:hover{border-color:var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px var(--neutral);box-shadow:0 0 .25rem 0 var(--neutral)}.inu-button.secondary{background-color:var(--secondary-light-extra);border-color:var(--secondary-light);color:var(--text-color)}.inu-button.secondary:hover{border-color:var(--secondary);-webkit-box-shadow:0px 0px .25rem 0px var(--secondary);box-shadow:0 0 .25rem 0 var(--secondary)}.inu-button.primary,.inu-button.success{background-color:var(--success-light-extra);border-color:var(--success-light);color:var(--text-color)}.inu-button.primary:hover,.inu-button.success:hover{border-color:var(--success);-webkit-box-shadow:0px 0px .25rem 0px var(--success);box-shadow:0 0 .25rem 0 var(--success)}.inu-button.warn{background-color:var(--warning-light-extra);border-color:var(--warning-light);color:var(--text-color)}.inu-button.warn:hover{border-color:var(--warning);-webkit-box-shadow:0px 0px .25rem 0px var(--warning);box-shadow:0 0 .25rem 0 var(--warning)}.inu-button.danger,.inu-button.error{background-color:var(--danger-light-extra);border-color:var(--danger-light);color:var(--text-color)}.inu-button.danger:hover,.inu-button.error:hover{border-color:var(--danger);-webkit-box-shadow:0px 0px .25rem 0px var(--danger);box-shadow:0 0 .25rem 0 var(--danger)}.inu-button.disabled{background-color:var(--neutral-light-extra);border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000;color:var(--neutral);fill:var(--neutral)}.inu-button.disabled:hover{border:1px solid var(--neutral);-webkit-box-shadow:0px 0px .25rem 0px rgba(0,0,0,0);box-shadow:0 0 .25rem #0000}.inu-button.link{border-top:none;border-left:none;border-right:none;background-color:transparent;box-shadow:0 0 .25rem 0 transparent!important}.inu-button.link:hover{background:linear-gradient(to bottom,transparent 95%,var(--neutral) 100%)}\n"] }]
|
|
28
|
+
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
27
29
|
|
|
28
30
|
/**
|
|
29
31
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inugami-ng-components-inu-button.mjs","sources":["../../../projects/inugami-ng/components/inu-button/inu-button.component.ts","../../../projects/inugami-ng/components/inu-button/inu-button.component.html","../../../projects/inugami-ng/components/inu-button/inugami-ng-components-inu-button.ts"],"sourcesContent":["import {Component, computed, input} from '@angular/core';\nimport {InuIcon} from 'inugami-icons';\n\n@Component({\n selector: 'inu-button',\n standalone: true,\n imports: [InuIcon],\n templateUrl: './inu-button.component.html',\n styleUrl: './inu-button.component.scss',\n})\nexport class InuButton {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n label = input<string | undefined | null>('');\n icon = input<string | null>(null);\n type = input<string>('');\n link = input<boolean>(false);\n\n _styleClass = computed<string>(() => {\n return [\n 'inu-button',\n this.type() ? this.type() : '',\n this.link()?'link':''\n ].join(' ');\n })\n\n}\n","@if(link()){\n <span [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </span>\n}\n@else{\n <button [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,SAAS,CAAA;;;;AAKpB,IAAA,KAAK,GAAG,KAAK,CAA4B,EAAE,iDAAC;AAC5C,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,gDAAC;AACjC,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,gDAAC;AACxB,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-button.mjs","sources":["../../../projects/inugami-ng/components/inu-button/inu-button.component.ts","../../../projects/inugami-ng/components/inu-button/inu-button.component.html","../../../projects/inugami-ng/components/inu-button/inugami-ng-components-inu-button.ts"],"sourcesContent":["import {Component, computed, input} from '@angular/core';\nimport {InuIcon} from 'inugami-icons';\n\n@Component({\n selector: 'inu-button',\n standalone: true,\n imports: [InuIcon],\n templateUrl: './inu-button.component.html',\n styleUrl: './inu-button.component.scss',\n})\nexport class InuButton {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n label = input<string | undefined | null>('');\n icon = input<string | null>(null);\n type = input<string>('');\n link = input<boolean>(false);\n disabled = input<boolean>(false);\n\n _styleClass = computed<string>(() => {\n return [\n 'inu-button',\n this.type() ? this.type() : '',\n this.link() ? 'link' : '',\n this.disabled()? 'disabled' : ''\n ].join(' ');\n })\n\n}\n","@if(link()){\n <span [class]=\"_styleClass()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </span>\n}\n@else{\n <button [class]=\"_styleClass()\" [disabled]=\"disabled()\">\n\n @if(icon()){\n <span class=\"inu-button-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"1\"></inu-icon>\n </span>\n }\n\n <span class=\"inu-button-label\">\n @if(label()){\n {{label()}}\n }\n </span>\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,SAAS,CAAA;;;;AAKpB,IAAA,KAAK,GAAG,KAAK,CAA4B,EAAE,iDAAC;AAC5C,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,gDAAC;AACjC,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,gDAAC;AACxB,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAEhC,IAAA,WAAW,GAAG,QAAQ,CAAS,MAAK;QAClC,OAAO;YACL,YAAY;AACZ,YAAA,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9B,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,EAAE;YACzB,IAAI,CAAC,QAAQ,EAAE,GAAE,UAAU,GAAG;AAC/B,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AACb,IAAA,CAAC,uDAAC;uGAlBS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVtB,gqBAgCA,EAAA,MAAA,EAAA,CAAA,0/EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1BY,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIN,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,gqBAAA,EAAA,MAAA,EAAA,CAAA,0/EAAA,CAAA,EAAA;;;AENpB;;AAEG;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, input, computed, inject, Component } from '@angular/core';
|
|
3
|
+
import { InuButton } from 'inugami-ng/components/inu-button';
|
|
4
|
+
import { from } from 'rxjs';
|
|
5
|
+
import { InuToastServices } from 'inugami-ng/components/inu-toast';
|
|
6
|
+
|
|
7
|
+
class InuCopyServices {
|
|
8
|
+
// =================================================================================================================
|
|
9
|
+
// API
|
|
10
|
+
// =================================================================================================================
|
|
11
|
+
copy(content) {
|
|
12
|
+
const result$ = from(navigator.clipboard.writeText(content));
|
|
13
|
+
result$.subscribe();
|
|
14
|
+
return result$;
|
|
15
|
+
}
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuCopyServices, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuCopyServices, providedIn: 'root' });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuCopyServices, decorators: [{
|
|
20
|
+
type: Injectable,
|
|
21
|
+
args: [{ providedIn: 'root' }]
|
|
22
|
+
}] });
|
|
23
|
+
|
|
24
|
+
class InuCopy {
|
|
25
|
+
//==================================================================================================================
|
|
26
|
+
// ATTRIBUTES
|
|
27
|
+
//==================================================================================================================
|
|
28
|
+
label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
29
|
+
notificationLabel = input('Value copied to clipboard', ...(ngDevMode ? [{ debugName: "notificationLabel" }] : []));
|
|
30
|
+
notificationMessage = input('', ...(ngDevMode ? [{ debugName: "notificationMessage" }] : []));
|
|
31
|
+
icon = input('copy', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
32
|
+
iconNotification = input('approval', ...(ngDevMode ? [{ debugName: "iconNotification" }] : []));
|
|
33
|
+
type = input('success', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
34
|
+
link = input(false, ...(ngDevMode ? [{ debugName: "link" }] : []));
|
|
35
|
+
styleclass = input('', ...(ngDevMode ? [{ debugName: "styleclass" }] : []));
|
|
36
|
+
content = input(undefined, ...(ngDevMode ? [{ debugName: "content" }] : []));
|
|
37
|
+
_styleClass = computed(() => {
|
|
38
|
+
return [
|
|
39
|
+
'inu-copy',
|
|
40
|
+
this.styleclass() ? this.styleclass() : ''
|
|
41
|
+
].join(' ');
|
|
42
|
+
}, ...(ngDevMode ? [{ debugName: "_styleClass" }] : []));
|
|
43
|
+
copyService = inject(InuCopyServices);
|
|
44
|
+
toastServices = inject(InuToastServices);
|
|
45
|
+
//==================================================================================================================
|
|
46
|
+
// ACTIONS
|
|
47
|
+
//==================================================================================================================
|
|
48
|
+
copyContent() {
|
|
49
|
+
const content = this.content();
|
|
50
|
+
if (!content) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.copyService.copy(content)
|
|
54
|
+
.subscribe({
|
|
55
|
+
next: () => this.notify()
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
notify() {
|
|
59
|
+
this.toastServices.addMessage({
|
|
60
|
+
title: this.notificationLabel(),
|
|
61
|
+
message: this.notificationMessage(),
|
|
62
|
+
icon: this.iconNotification(),
|
|
63
|
+
level: "success"
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuCopy, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type: InuCopy, isStandalone: true, selector: "inu-copy", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, notificationLabel: { classPropertyName: "notificationLabel", publicName: "notificationLabel", isSignal: true, isRequired: false, transformFunction: null }, notificationMessage: { classPropertyName: "notificationMessage", publicName: "notificationMessage", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconNotification: { classPropertyName: "iconNotification", publicName: "iconNotification", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, styleclass: { classPropertyName: "styleclass", publicName: "styleclass", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"_styleClass()\">\n <inu-button [label]=\"label()\"\n [icon]=\"icon()\"\n [type]=\"type()\"\n [link]=\"link()\"\n [disabled]=\"!content()\"\n (click)=\"copyContent()\"\n ></inu-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: InuButton, selector: "inu-button", inputs: ["label", "icon", "type", "link", "disabled"] }] });
|
|
68
|
+
}
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuCopy, decorators: [{
|
|
70
|
+
type: Component,
|
|
71
|
+
args: [{ selector: 'inu-copy', standalone: true, imports: [InuButton], template: "<div [class]=\"_styleClass()\">\n <inu-button [label]=\"label()\"\n [icon]=\"icon()\"\n [type]=\"type()\"\n [link]=\"link()\"\n [disabled]=\"!content()\"\n (click)=\"copyContent()\"\n ></inu-button>\n</div>\n" }]
|
|
72
|
+
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], notificationLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "notificationLabel", required: false }] }], notificationMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "notificationMessage", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconNotification: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconNotification", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], styleclass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleclass", required: false }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }] } });
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Generated bundle index. Do not edit.
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
export { InuCopy, InuCopyServices };
|
|
79
|
+
//# sourceMappingURL=inugami-ng-components-inu-copy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-copy.mjs","sources":["../../../projects/inugami-ng/components/inu-copy/inu-copy.service.ts","../../../projects/inugami-ng/components/inu-copy/inu-copy.component.ts","../../../projects/inugami-ng/components/inu-copy/inu-copy.component.html","../../../projects/inugami-ng/components/inu-copy/inugami-ng-components-inu-copy.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {from, Observable} from 'rxjs';\n\n\n@Injectable({providedIn: 'root'})\nexport class InuCopyServices {\n\n\n // =================================================================================================================\n // API\n // =================================================================================================================\n copy(content:string):Observable<any> {\n const result$ = from(navigator.clipboard.writeText(content));\n result$.subscribe();\n return result$;\n }\n}\n","import {Component, computed, inject, input} from '@angular/core';\nimport {InuButton} from 'inugami-ng/components/inu-button';\nimport {InuCopyServices} from './inu-copy.service';\nimport {InuToastServices} from 'inugami-ng/components/inu-toast';\n\n@Component({\n selector: 'inu-copy',\n standalone: true,\n imports: [InuButton],\n templateUrl: './inu-copy.component.html',\n styleUrl: './inu-copy.component.scss',\n})\nexport class InuCopy {\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n label = input<string | undefined | null>('');\n notificationLabel = input<string>('Value copied to clipboard');\n notificationMessage = input<string>('');\n icon = input<string>('copy');\n iconNotification = input<string>('approval');\n type = input<string>('success');\n link = input<boolean>(false);\n styleclass = input<string>('');\n content = input<string | undefined | null>(undefined);\n\n _styleClass = computed<string>(() => {\n return [\n 'inu-copy',\n this.styleclass() ? this.styleclass() : ''\n ].join(' ');\n })\n\n\n copyService = inject(InuCopyServices);\n toastServices = inject(InuToastServices);\n\n\n //==================================================================================================================\n // ACTIONS\n //==================================================================================================================\n protected copyContent() {\n const content = this.content();\n if(!content){\n return;\n }\n this.copyService.copy(content)\n .subscribe({\n next: ()=> this.notify()\n });\n }\n\n private notify() {\n this.toastServices.addMessage({\n title:this.notificationLabel(),\n message:this.notificationMessage(),\n icon:this.iconNotification(),\n level:\"success\"\n });\n }\n}\n","<div [class]=\"_styleClass()\">\n <inu-button [label]=\"label()\"\n [icon]=\"icon()\"\n [type]=\"type()\"\n [link]=\"link()\"\n [disabled]=\"!content()\"\n (click)=\"copyContent()\"\n ></inu-button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { input, contentChildren, signal, effect, Component } from '@angular/core';
|
|
3
3
|
import { InuIcon } from 'inugami-icons';
|
|
4
4
|
import { UuidUtils } from 'inugami-ng/services';
|
|
5
|
-
import { JsonPipe } from '@angular/common';
|
|
6
5
|
|
|
7
6
|
class InuDocItem {
|
|
8
7
|
//==================================================================================================================
|
|
@@ -131,9 +130,7 @@ class InuDocSummaryNode {
|
|
|
131
130
|
}
|
|
132
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: InuDocSummaryNode, decorators: [{
|
|
133
132
|
type: Component,
|
|
134
|
-
args: [{ selector: 'inu-doc-summary-node', standalone: true, providers: [], imports: [
|
|
135
|
-
JsonPipe
|
|
136
|
-
], template: "@if (nodes() && acceptedLevels()) {\n <ul class=\"inu-doc-summary-node\">\n @for (node of nodes(); track node; ) {\n <li [class]=\"computeClass(node)\">\n <div class=\"inu-doc-summary-node-title\">\n @if (node.value?.href){\n <a [href]=\"node.value?.href\">\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n </a>\n } @else {\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n }\n </div>\n @if (node.children){\n <inu-doc-summary-node [nodes]=\"node.children\" [maxLevel]=\"maxLevel()\"> </inu-doc-summary-node>\n }\n </li>\n }\n </ul>\n}\n", styles: [".inu-doc-summary-node{list-style:square;margin:0;padding-left:1rem}.inu-doc-summary-node a{color:var(--text-color);text-decoration:none}.inu-doc-summary-node a:hover{text-decoration:underline}.inu-doc-summary-node .level{font-size:1rem}.inu-doc-summary-node .level-0 .inu-doc-summary-node-title{font-size:140%;color:var(--primary-dark)}.inu-doc-summary-node .level-1 .inu-doc-summary-node-title{font-size:120%;color:var(--neutral-dark)}.inu-doc-summary-node .level-2 .inu-doc-summary-node-title{font-size:100%;color:var(--neutral-dark)}\n"] }]
|
|
133
|
+
args: [{ selector: 'inu-doc-summary-node', standalone: true, providers: [], imports: [], template: "@if (nodes() && acceptedLevels()) {\n <ul class=\"inu-doc-summary-node\">\n @for (node of nodes(); track node; ) {\n <li [class]=\"computeClass(node)\">\n <div class=\"inu-doc-summary-node-title\">\n @if (node.value?.href){\n <a [href]=\"node.value?.href\">\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n </a>\n } @else {\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n }\n </div>\n @if (node.children){\n <inu-doc-summary-node [nodes]=\"node.children\" [maxLevel]=\"maxLevel()\"> </inu-doc-summary-node>\n }\n </li>\n }\n </ul>\n}\n", styles: [".inu-doc-summary-node{list-style:square;margin:0;padding-left:1rem}.inu-doc-summary-node a{color:var(--text-color);text-decoration:none}.inu-doc-summary-node a:hover{text-decoration:underline}.inu-doc-summary-node .level{font-size:1rem}.inu-doc-summary-node .level-0 .inu-doc-summary-node-title{font-size:140%;color:var(--primary-dark)}.inu-doc-summary-node .level-1 .inu-doc-summary-node-title{font-size:120%;color:var(--neutral-dark)}.inu-doc-summary-node .level-2 .inu-doc-summary-node-title{font-size:100%;color:var(--neutral-dark)}\n"] }]
|
|
137
134
|
}], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], maxLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLevel", required: false }] }] } });
|
|
138
135
|
|
|
139
136
|
class InuDocSummary {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inugami-ng-components-inu-doc-item.mjs","sources":["../../../projects/inugami-ng/components/inu-doc-item/inu-doc-item.ts","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-item.html","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/node/inu-doc-summary-node.ts","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/node/inu-doc-summary-node.html","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/inu-doc-summary.ts","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/inu-doc-summary.html","../../../projects/inugami-ng/components/inu-doc-item/inugami-ng-components-inu-doc-item.ts"],"sourcesContent":["import {Component, contentChildren, effect, input, signal, viewChildren} from '@angular/core';\nimport {InuDocItemComponentData} from './inu-doc-item.model';\nimport {InuIcon} from 'inugami-icons';\nimport {UuidUtils} from 'inugami-ng/services';\n\n@Component({\n selector: 'inu-doc-item',\n standalone: true,\n providers: [],\n imports: [\n InuIcon\n ],\n templateUrl: './inu-doc-item.html',\n styleUrl: './inu-doc-item.scss',\n})\nexport class InuDocItem {\n\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n readonly styleClass = input<string | undefined | null>('');\n readonly icon = input<string | null>('');\n readonly title = input<string | undefined | null>('');\n readonly href = input<string | undefined | null>('');\n readonly id = input<string | undefined | null>('');\n readonly level = input<number | undefined | null>(2);\n readonly children = contentChildren(InuDocItem);\n //\n _styleClass = signal<string>('');\n iconSize = signal<number>(1);\n data = signal<InuDocItemComponentData | undefined>(undefined);\n _data: InuDocItemComponentData | undefined = undefined;\n uid: string = UuidUtils.buildUid();\n\n //==================================================================================================================\n // INIT\n //==================================================================================================================\n constructor() {\n effect(() => {\n this.initStyleClass();\n this.init();\n });\n }\n\n init() {\n const title = this.title() ? this.title() : '';\n const href = this.href() ? this.href() : '';\n const id = this.id() ? this.id() : '';\n const level = this.level() ? this.level() : 2;\n\n const fullHref: string[] = [];\n if (href) {\n fullHref.push(href);\n if (id) {\n fullHref.push(id);\n }\n }\n const value: InuDocItemComponentData = {\n title: title!,\n href: fullHref.join('#'),\n id: id!,\n level: level!\n }\n this._data = value;\n this.data.set(value);\n\n\n switch (level) {\n case 1:\n this.iconSize.set(3);\n break;\n case 2:\n this.iconSize.set(2);\n break;\n default :\n this.iconSize.set(1);\n break;\n }\n }\n\n //==================================================================================================================\n // TOOLS\n //==================================================================================================================\n private initStyleClass() {\n const styles: string[] = ['inu-doc-item'];\n const style = this.styleClass();\n if (style) {\n styles.push(style);\n }\n\n const level = this.level();\n if (level) {\n styles.push(`level-${level}`);\n }\n this._styleClass.set(styles.join(\" \"));\n }\n}\n","<section [class]=\"_styleClass()\" >\n <header [id]=\"data()?.id\">\n @if(data()?.href) {\n <a [href]=\"data()?.href\" class=\"anchor-link\">\n <div class=\"anchor\">\n @if(icon()){\n <div class=\"inug-doc-item-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"iconSize()\"></inu-icon>\n </div>\n }\n @if(data()?.level==1){\n <h1 class=\"title\">{{data()?.title}}</h1>\n }\n @if(data()?.level==2){\n <h2 class=\"title\">{{data()?.title}}</h2>\n }\n @else if (data()?.level==3) {\n <h3 class=\"title\">{{data()?.title}}</h3>\n }\n @else if (data()?.level==4) {\n <h4 class=\"title\">{{data()?.title}}</h4>\n }\n @else if (data()?.level==5) {\n <h5 class=\"title\">{{data()?.title}}</h5>\n }\n @else {\n <h6 class=\"title\">{{data()?.title}}</h6>\n }\n <div class=\"anchor-icon\">\n <inu-icon icon=\"link\" [size]=\"1\"></inu-icon>\n </div>\n </div>\n </a>\n }\n @else{\n <div class=\"anchor\">\n @if(icon()){\n <div class=\"inug-doc-item-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"iconSize()\"></inu-icon>\n </div>\n }\n @if(data()?.level==1){\n <h1 class=\"title\">{{data()?.title}}</h1>\n }\n @if(data()?.level==2){\n <h2 class=\"title\">{{data()?.title}}</h2>\n }\n @else if (data()?.level==3) {\n <h3 class=\"title\">{{data()?.title}}</h3>\n }\n @else if (data()?.level==4) {\n <h4 class=\"title\">{{data()?.title}}</h4>\n }\n @else if (data()?.level==5) {\n <h5 class=\"title\">{{data()?.title}}</h5>\n }\n @else {\n <h6 class=\"title\">{{data()?.title}}</h6>\n }\n <div class=\"anchor-icon\">\n <inu-icon icon=\"link\" [size]=\"1\"></inu-icon>\n </div>\n </div>\n }\n\n </header>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</section>\n","import {Component, effect, input, signal} from '@angular/core';\nimport {InuDocItem} from '../../inu-doc-item';\nimport {TreeNode} from 'inugami-ng/models';\nimport {JsonPipe} from '@angular/common';\n\n@Component({\n selector: 'inu-doc-summary-node',\n standalone: true,\n providers: [],\n imports: [\n JsonPipe\n ],\n templateUrl: './inu-doc-summary-node.html',\n styleUrl: './inu-doc-summary-node.scss',\n})\nexport class InuDocSummaryNode {\n\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n nodes = input<TreeNode<InuDocItem>[] | undefined>(undefined);\n maxLevel = input<number>(3);\n //==================================================================================================================\n // BUILDER\n //==================================================================================================================\n buildHref(nodeValue: any): string {\n const result: string[] = [];\n const href = nodeValue.href();\n if (href) {\n result.push(href);\n const id = nodeValue.id();\n if (id) {\n result.push(id)\n }\n }\n\n\n return result.join('#');\n }\n\n\n protected getTitle(value: any): string {\n return value && value.title ? value.title : '';\n }\n\n protected computeClass(node: TreeNode<InuDocItem>): string {\n const result: string[] = [];\n result.push('level');\n result.push('level-' + node.level);\n return result.join(' ');\n }\n\n protected acceptedLevels():boolean {\n const nodes = this.nodes();\n if(!nodes || nodes.length==0){\n return false;\n }\n\n const level = nodes[0].level+1;\n const maxLevel = this.maxLevel();\n return level<=maxLevel;\n }\n}\n","@if (nodes() && acceptedLevels()) {\n <ul class=\"inu-doc-summary-node\">\n @for (node of nodes(); track node; ) {\n <li [class]=\"computeClass(node)\">\n <div class=\"inu-doc-summary-node-title\">\n @if (node.value?.href){\n <a [href]=\"node.value?.href\">\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n </a>\n } @else {\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n }\n </div>\n @if (node.children){\n <inu-doc-summary-node [nodes]=\"node.children\" [maxLevel]=\"maxLevel()\"> </inu-doc-summary-node>\n }\n </li>\n }\n </ul>\n}\n","import {AfterViewInit, Component, effect, input, signal} from '@angular/core';\nimport {InuDocItem} from '../inu-doc-item';\nimport {TreeNode} from 'inugami-ng/models';\nimport {InuDocSummaryNode} from './node/inu-doc-summary-node';\n\n@Component({\n selector: 'inu-doc-summary',\n standalone: true,\n providers: [],\n imports: [\n InuDocSummaryNode\n ],\n templateUrl: './inu-doc-summary.html',\n styleUrl: './inu-doc-summary.scss',\n})\nexport class InuDocSummary implements AfterViewInit{\n\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n styleClass = input<string | undefined | null>('');\n children = input<readonly InuDocItem[] | undefined>(undefined);\n maxLevel = input<number>(3);\n //\n _styleClass = signal<string>('');\n nodes = signal<TreeNode<InuDocItem>[]>([]);\n\n //==================================================================================================================\n // INIT\n //==================================================================================================================\n constructor() {\n effect(() => {\n this.initStyleClass();\n this.init();\n });\n }\n\n ngAfterViewInit(): void {\n this.init();\n }\n\n init() {\n const children = this.children();\n if (!children) {\n return;\n }\n\n const compMap = new Map<string, any>();\n children.forEach(c => compMap.set(c.uid, c));\n\n const parentMap = new Map<string, string>(); // childUid -> parentUid\n children.forEach(parent => {\n const childrenOfThisParent = parent.children() || [];\n childrenOfThisParent.forEach((child: any) => {\n parentMap.set(child.uid, parent.uid);\n });\n });\n\n const roots = children.filter(c => !parentMap.has(c.uid));\n\n const result = roots.map(root => this.mapComponentToNode(root, 0));\n this.nodes.set(result);\n }\n\n private mapComponentToNode(comp: any, level: number): TreeNode<any> {\n return {\n uid: comp.uid,\n level: level,\n value: comp.data ? comp.data() : comp, // On récupère la valeur ou le composant\n children: comp.children()\n ? comp.children().map((child: any) => this.mapComponentToNode(child, level + 1))\n : []\n };\n }\n\n //==================================================================================================================\n // TOOLS\n //==================================================================================================================\n private initStyleClass() {\n const styles: string[] = ['inu-doc-summary'];\n const style = this.styleClass();\n if (style) {\n styles.push(style);\n }\n\n\n this._styleClass.set(styles.join(\" \"));\n }\n}\n","<div [class]=\"_styleClass()\" >\n @if (nodes()){\n <inu-doc-summary-node [nodes]=\"nodes()\" [maxLevel]=\"maxLevel()\"> </inu-doc-summary-node>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inugami-ng-components-inu-doc-item.mjs","sources":["../../../projects/inugami-ng/components/inu-doc-item/inu-doc-item.ts","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-item.html","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/node/inu-doc-summary-node.ts","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/node/inu-doc-summary-node.html","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/inu-doc-summary.ts","../../../projects/inugami-ng/components/inu-doc-item/inu-doc-summary/inu-doc-summary.html","../../../projects/inugami-ng/components/inu-doc-item/inugami-ng-components-inu-doc-item.ts"],"sourcesContent":["import {Component, contentChildren, effect, input, signal, viewChildren} from '@angular/core';\nimport {InuDocItemComponentData} from './inu-doc-item.model';\nimport {InuIcon} from 'inugami-icons';\nimport {UuidUtils} from 'inugami-ng/services';\n\n@Component({\n selector: 'inu-doc-item',\n standalone: true,\n providers: [],\n imports: [\n InuIcon\n ],\n templateUrl: './inu-doc-item.html',\n styleUrl: './inu-doc-item.scss',\n})\nexport class InuDocItem {\n\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n readonly styleClass = input<string | undefined | null>('');\n readonly icon = input<string | null>('');\n readonly title = input<string | undefined | null>('');\n readonly href = input<string | undefined | null>('');\n readonly id = input<string | undefined | null>('');\n readonly level = input<number | undefined | null>(2);\n readonly children = contentChildren(InuDocItem);\n //\n _styleClass = signal<string>('');\n iconSize = signal<number>(1);\n data = signal<InuDocItemComponentData | undefined>(undefined);\n _data: InuDocItemComponentData | undefined = undefined;\n uid: string = UuidUtils.buildUid();\n\n //==================================================================================================================\n // INIT\n //==================================================================================================================\n constructor() {\n effect(() => {\n this.initStyleClass();\n this.init();\n });\n }\n\n init() {\n const title = this.title() ? this.title() : '';\n const href = this.href() ? this.href() : '';\n const id = this.id() ? this.id() : '';\n const level = this.level() ? this.level() : 2;\n\n const fullHref: string[] = [];\n if (href) {\n fullHref.push(href);\n if (id) {\n fullHref.push(id);\n }\n }\n const value: InuDocItemComponentData = {\n title: title!,\n href: fullHref.join('#'),\n id: id!,\n level: level!\n }\n this._data = value;\n this.data.set(value);\n\n\n switch (level) {\n case 1:\n this.iconSize.set(3);\n break;\n case 2:\n this.iconSize.set(2);\n break;\n default :\n this.iconSize.set(1);\n break;\n }\n }\n\n //==================================================================================================================\n // TOOLS\n //==================================================================================================================\n private initStyleClass() {\n const styles: string[] = ['inu-doc-item'];\n const style = this.styleClass();\n if (style) {\n styles.push(style);\n }\n\n const level = this.level();\n if (level) {\n styles.push(`level-${level}`);\n }\n this._styleClass.set(styles.join(\" \"));\n }\n}\n","<section [class]=\"_styleClass()\" >\n <header [id]=\"data()?.id\">\n @if(data()?.href) {\n <a [href]=\"data()?.href\" class=\"anchor-link\">\n <div class=\"anchor\">\n @if(icon()){\n <div class=\"inug-doc-item-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"iconSize()\"></inu-icon>\n </div>\n }\n @if(data()?.level==1){\n <h1 class=\"title\">{{data()?.title}}</h1>\n }\n @if(data()?.level==2){\n <h2 class=\"title\">{{data()?.title}}</h2>\n }\n @else if (data()?.level==3) {\n <h3 class=\"title\">{{data()?.title}}</h3>\n }\n @else if (data()?.level==4) {\n <h4 class=\"title\">{{data()?.title}}</h4>\n }\n @else if (data()?.level==5) {\n <h5 class=\"title\">{{data()?.title}}</h5>\n }\n @else {\n <h6 class=\"title\">{{data()?.title}}</h6>\n }\n <div class=\"anchor-icon\">\n <inu-icon icon=\"link\" [size]=\"1\"></inu-icon>\n </div>\n </div>\n </a>\n }\n @else{\n <div class=\"anchor\">\n @if(icon()){\n <div class=\"inug-doc-item-icon\">\n <inu-icon [icon]=\"icon()\" [size]=\"iconSize()\"></inu-icon>\n </div>\n }\n @if(data()?.level==1){\n <h1 class=\"title\">{{data()?.title}}</h1>\n }\n @if(data()?.level==2){\n <h2 class=\"title\">{{data()?.title}}</h2>\n }\n @else if (data()?.level==3) {\n <h3 class=\"title\">{{data()?.title}}</h3>\n }\n @else if (data()?.level==4) {\n <h4 class=\"title\">{{data()?.title}}</h4>\n }\n @else if (data()?.level==5) {\n <h5 class=\"title\">{{data()?.title}}</h5>\n }\n @else {\n <h6 class=\"title\">{{data()?.title}}</h6>\n }\n <div class=\"anchor-icon\">\n <inu-icon icon=\"link\" [size]=\"1\"></inu-icon>\n </div>\n </div>\n }\n\n </header>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</section>\n","import {Component, input} from '@angular/core';\nimport {InuDocItem} from '../../inu-doc-item';\nimport {TreeNode} from 'inugami-ng/models';\n\n@Component({\n selector: 'inu-doc-summary-node',\n standalone: true,\n providers: [],\n imports: [],\n templateUrl: './inu-doc-summary-node.html',\n styleUrl: './inu-doc-summary-node.scss',\n})\nexport class InuDocSummaryNode {\n\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n nodes = input<TreeNode<InuDocItem>[] | undefined>(undefined);\n maxLevel = input<number>(3);\n //==================================================================================================================\n // BUILDER\n //==================================================================================================================\n buildHref(nodeValue: any): string {\n const result: string[] = [];\n const href = nodeValue.href();\n if (href) {\n result.push(href);\n const id = nodeValue.id();\n if (id) {\n result.push(id)\n }\n }\n\n\n return result.join('#');\n }\n\n\n protected getTitle(value: any): string {\n return value && value.title ? value.title : '';\n }\n\n protected computeClass(node: TreeNode<InuDocItem>): string {\n const result: string[] = [];\n result.push('level');\n result.push('level-' + node.level);\n return result.join(' ');\n }\n\n protected acceptedLevels(): boolean {\n const nodes = this.nodes();\n if (!nodes || nodes.length == 0) {\n return false;\n }\n\n const level = nodes[0].level + 1;\n const maxLevel = this.maxLevel();\n return level <= maxLevel;\n }\n}\n","@if (nodes() && acceptedLevels()) {\n <ul class=\"inu-doc-summary-node\">\n @for (node of nodes(); track node; ) {\n <li [class]=\"computeClass(node)\">\n <div class=\"inu-doc-summary-node-title\">\n @if (node.value?.href){\n <a [href]=\"node.value?.href\">\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n </a>\n } @else {\n <div class=\"inu-doc-summary-title\">{{node.value?.title!}}</div>\n }\n </div>\n @if (node.children){\n <inu-doc-summary-node [nodes]=\"node.children\" [maxLevel]=\"maxLevel()\"> </inu-doc-summary-node>\n }\n </li>\n }\n </ul>\n}\n","import {AfterViewInit, Component, effect, input, signal} from '@angular/core';\nimport {InuDocItem} from '../inu-doc-item';\nimport {TreeNode} from 'inugami-ng/models';\nimport {InuDocSummaryNode} from './node/inu-doc-summary-node';\n\n@Component({\n selector: 'inu-doc-summary',\n standalone: true,\n providers: [],\n imports: [\n InuDocSummaryNode\n ],\n templateUrl: './inu-doc-summary.html',\n styleUrl: './inu-doc-summary.scss',\n})\nexport class InuDocSummary implements AfterViewInit{\n\n\n //==================================================================================================================\n // ATTRIBUTES\n //==================================================================================================================\n styleClass = input<string | undefined | null>('');\n children = input<readonly InuDocItem[] | undefined>(undefined);\n maxLevel = input<number>(3);\n //\n _styleClass = signal<string>('');\n nodes = signal<TreeNode<InuDocItem>[]>([]);\n\n //==================================================================================================================\n // INIT\n //==================================================================================================================\n constructor() {\n effect(() => {\n this.initStyleClass();\n this.init();\n });\n }\n\n ngAfterViewInit(): void {\n this.init();\n }\n\n init() {\n const children = this.children();\n if (!children) {\n return;\n }\n\n const compMap = new Map<string, any>();\n children.forEach(c => compMap.set(c.uid, c));\n\n const parentMap = new Map<string, string>(); // childUid -> parentUid\n children.forEach(parent => {\n const childrenOfThisParent = parent.children() || [];\n childrenOfThisParent.forEach((child: any) => {\n parentMap.set(child.uid, parent.uid);\n });\n });\n\n const roots = children.filter(c => !parentMap.has(c.uid));\n\n const result = roots.map(root => this.mapComponentToNode(root, 0));\n this.nodes.set(result);\n }\n\n private mapComponentToNode(comp: any, level: number): TreeNode<any> {\n return {\n uid: comp.uid,\n level: level,\n value: comp.data ? comp.data() : comp, // On récupère la valeur ou le composant\n children: comp.children()\n ? comp.children().map((child: any) => this.mapComponentToNode(child, level + 1))\n : []\n };\n }\n\n //==================================================================================================================\n // TOOLS\n //==================================================================================================================\n private initStyleClass() {\n const styles: string[] = ['inu-doc-summary'];\n const style = this.styleClass();\n if (style) {\n styles.push(style);\n }\n\n\n this._styleClass.set(styles.join(\" \"));\n }\n}\n","<div [class]=\"_styleClass()\" >\n @if (nodes()){\n <inu-doc-summary-node [nodes]=\"nodes()\" [maxLevel]=\"maxLevel()\"> </inu-doc-summary-node>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|