@simplysm/angular 14.0.27 → 14.0.29
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/dist/core/providers/sd-app-structure.provider.d.ts +4 -5
- package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.provider.js +4 -2
- package/dist/core/providers/sd-shared-data.provider.js +4 -2
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -6
- package/dist/styles.css +3 -0
- package/dist/ui/layout/kanban/sd-kanban.d.ts.map +1 -1
- package/dist/ui/layout/kanban/sd-kanban.js +10 -10
- package/package.json +24 -24
- package/scss/commons/_styles.scss +309 -297
- package/src/core/providers/sd-app-structure.provider.ts +5 -7
- package/src/core/providers/sd-shared-data.provider.ts +4 -4
- package/src/index.ts +0 -6
- package/src/ui/layout/kanban/sd-kanban.ts +7 -7
- package/dist/ui/layout/sd-card.d.ts +0 -6
- package/dist/ui/layout/sd-card.d.ts.map +0 -1
- package/dist/ui/layout/sd-card.js +0 -16
- package/dist/ui/layout/sd-pane.d.ts +0 -6
- package/dist/ui/layout/sd-pane.d.ts.map +0 -1
- package/dist/ui/layout/sd-pane.js +0 -17
- package/dist/ui/layout/view/sd-view-item.d.ts +0 -9
- package/dist/ui/layout/view/sd-view-item.d.ts.map +0 -1
- package/dist/ui/layout/view/sd-view-item.js +0 -25
- package/dist/ui/layout/view/sd-view.d.ts +0 -8
- package/dist/ui/layout/view/sd-view.d.ts.map +0 -1
- package/dist/ui/layout/view/sd-view.js +0 -23
- package/dist/ui/navigation/tab/sd-tabview-item.d.ts +0 -10
- package/dist/ui/navigation/tab/sd-tabview-item.d.ts.map +0 -1
- package/dist/ui/navigation/tab/sd-tabview-item.js +0 -26
- package/dist/ui/navigation/tab/sd-tabview.d.ts +0 -9
- package/dist/ui/navigation/tab/sd-tabview.d.ts.map +0 -1
- package/dist/ui/navigation/tab/sd-tabview.js +0 -67
- package/src/ui/layout/sd-card.ts +0 -10
- package/src/ui/layout/sd-pane.ts +0 -11
- package/src/ui/layout/view/sd-view-item.ts +0 -45
- package/src/ui/layout/view/sd-view.ts +0 -31
- package/src/ui/navigation/tab/sd-tabview-item.ts +0 -48
- package/src/ui/navigation/tab/sd-tabview.ts +0 -39
|
@@ -14,18 +14,16 @@ export function injectPermsSignal<K extends string>(viewCodes: string[], keys: K
|
|
|
14
14
|
// 권한은 모듈만 체크하고
|
|
15
15
|
// 메뉴는 모듈/권한 모두 체크함
|
|
16
16
|
@Injectable({ providedIn: "root" })
|
|
17
|
-
export
|
|
17
|
+
export class SdAppStructureProvider<TModule = unknown> {
|
|
18
18
|
private readonly _clientFactory = inject(SdServiceClientFactoryProvider);
|
|
19
19
|
private readonly _config = inject(SdAngularConfigProvider);
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
abstract permRecord: Signal<Record<string, boolean> | undefined>;
|
|
24
|
-
|
|
21
|
+
readonly usableModules = signal<TModule[] | undefined>(undefined);
|
|
22
|
+
readonly permRecord = signal<Record<string, boolean> | undefined>(undefined);
|
|
25
23
|
readonly items = signal<AppStructureItem<TModule>[]>([]);
|
|
26
24
|
|
|
27
|
-
async
|
|
28
|
-
const client = this._clientFactory.get(
|
|
25
|
+
async initialize(serviceKey: string): Promise<void> {
|
|
26
|
+
const client = this._clientFactory.get(serviceKey);
|
|
29
27
|
const svc = client.getService<AppStructureService>("AppStructure");
|
|
30
28
|
const itemsMap = await svc.getItems();
|
|
31
29
|
this.items.set(
|
|
@@ -107,8 +107,8 @@ export abstract class SdSharedDataProvider<T extends Record<string, SharedDataBa
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
const client = this._clientFactory.get(entry.info.serviceKey);
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
const event = client.getEvent<typeof SdSharedDataChangeEvent>("SdSharedDataChange");
|
|
111
|
+
await event.emit(
|
|
112
112
|
(item) => item.name === (name as string) && obj.equal(item.filter, entry.info.filter),
|
|
113
113
|
changeKeys,
|
|
114
114
|
);
|
|
@@ -131,8 +131,8 @@ export abstract class SdSharedDataProvider<T extends Record<string, SharedDataBa
|
|
|
131
131
|
// 이벤트 리스너 등록
|
|
132
132
|
if (entry.listenerKey == null) {
|
|
133
133
|
const client = this._clientFactory.get(entry.info.serviceKey);
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
const event = client.getEvent<typeof SdSharedDataChangeEvent>("SdSharedDataChange");
|
|
135
|
+
entry.listenerKey = await event.addListener(
|
|
136
136
|
{ name, filter: entry.info.filter },
|
|
137
137
|
async (changeKeys) => {
|
|
138
138
|
await this._onEvent(name, entry, changeKeys);
|
package/src/index.ts
CHANGED
|
@@ -105,11 +105,7 @@ export { matchesSearchText } from "./features/shared-data/matchesSearchText";
|
|
|
105
105
|
// ui/layout
|
|
106
106
|
export { SdDockContainer } from "./ui/layout/dock/sd-dock-container";
|
|
107
107
|
export { SdDock } from "./ui/layout/dock/sd-dock";
|
|
108
|
-
export { SdPane } from "./ui/layout/sd-pane";
|
|
109
108
|
export { SdGap } from "./ui/layout/sd-gap";
|
|
110
|
-
export { SdView } from "./ui/layout/view/sd-view";
|
|
111
|
-
export { SdViewItem } from "./ui/layout/view/sd-view-item";
|
|
112
|
-
export { SdCard } from "./ui/layout/sd-card";
|
|
113
109
|
export {
|
|
114
110
|
SdKanbanBoard,
|
|
115
111
|
type SdKanbanBoardDropInfo,
|
|
@@ -168,8 +164,6 @@ export { SdCollapseIcon } from "./ui/navigation/collapse/sd-collapse-icon";
|
|
|
168
164
|
// ui/navigation/tab
|
|
169
165
|
export { SdTab } from "./ui/navigation/tab/sd-tab";
|
|
170
166
|
export { SdTabItem } from "./ui/navigation/tab/sd-tab-item";
|
|
171
|
-
export { SdTabview } from "./ui/navigation/tab/sd-tabview";
|
|
172
|
-
export { SdTabviewItem } from "./ui/navigation/tab/sd-tabview-item";
|
|
173
167
|
|
|
174
168
|
// ui/navigation/menu
|
|
175
169
|
export { getMenuRouterLinkOption, getIsMenuSelected } from "./ui/navigation/menu-utils";
|
|
@@ -19,14 +19,13 @@ import {
|
|
|
19
19
|
import { SdKanbanLane } from "./sd-kanban-lane";
|
|
20
20
|
import { SdEvents } from "../../../core/directives/sd-events";
|
|
21
21
|
import type { SdResizeEvent } from "../../../core/plugins/events/sd-resize-event.plugin";
|
|
22
|
-
import { SdCard } from "../sd-card";
|
|
23
22
|
|
|
24
23
|
@Component({
|
|
25
24
|
selector: "sd-kanban",
|
|
26
25
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
26
|
encapsulation: ViewEncapsulation.None,
|
|
28
27
|
standalone: true,
|
|
29
|
-
imports: [SdEvents
|
|
28
|
+
imports: [SdEvents],
|
|
30
29
|
host: {
|
|
31
30
|
"[attr.data-sd-dragging-this]": "dragKanban() === thisRef",
|
|
32
31
|
"[attr.data-sd-dragging]": "dragKanban() != null",
|
|
@@ -47,14 +46,15 @@ import { SdCard } from "../sd-card";
|
|
|
47
46
|
[style.height]="dragOvered() ? (dragKanban()?.heightOnDrag() ?? 0) + 'px' : '0px'"
|
|
48
47
|
[style.display]="dragKanban() ? 'block' : 'none'"
|
|
49
48
|
></div>
|
|
50
|
-
<
|
|
49
|
+
<div
|
|
50
|
+
class="card"
|
|
51
51
|
[class]="contentClass()"
|
|
52
52
|
[draggable]="draggable()"
|
|
53
53
|
(dragstart)="onCardDragStart()"
|
|
54
54
|
(sdResize)="onCardResize($event)"
|
|
55
55
|
>
|
|
56
56
|
<ng-content></ng-content>
|
|
57
|
-
</
|
|
57
|
+
</div>
|
|
58
58
|
`,
|
|
59
59
|
styles: [
|
|
60
60
|
/* language=SCSS */ `
|
|
@@ -79,7 +79,7 @@ import { SdCard } from "../sd-card";
|
|
|
79
79
|
pointer-events: auto;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
>
|
|
82
|
+
> .card {
|
|
83
83
|
pointer-events: none;
|
|
84
84
|
cursor: pointer;
|
|
85
85
|
}
|
|
@@ -103,7 +103,7 @@ import { SdCard } from "../sd-card";
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
>
|
|
106
|
+
> .card {
|
|
107
107
|
white-space: normal;
|
|
108
108
|
user-select: none;
|
|
109
109
|
margin-bottom: var(--gap-lg);
|
|
@@ -145,7 +145,7 @@ export class SdKanban<L, T> implements SdKanbanDragRef<L, T>, SdKanbanDropTarget
|
|
|
145
145
|
|
|
146
146
|
constructor() {
|
|
147
147
|
afterNextRender(() => {
|
|
148
|
-
const card = this._elRef.nativeElement.querySelector("
|
|
148
|
+
const card = this._elRef.nativeElement.querySelector(".card");
|
|
149
149
|
if (card != null) {
|
|
150
150
|
const marginBottom = getComputedStyle(card).marginBottom;
|
|
151
151
|
this.cardHeight.set(card.clientHeight + (parseInt(marginBottom) || 0));
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdCard {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdCard, never>;
|
|
4
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SdCard, "sd-card,[sdCard]", never, {}, {}, never, never, true, never>;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=sd-card.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-card.d.ts","sourceRoot":"","sources":["../../../src/ui/layout/sd-card.ts"],"names":[],"mappings":";AAEA,qBAOa,MAAM;yCAAN,MAAM;2CAAN,MAAM;CAAG"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Directive } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SdCard {
|
|
4
|
-
static ɵfac = function SdCard_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdCard)(); };
|
|
5
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SdCard, selectors: [["sd-card"], ["", "sdCard", ""]], hostAttrs: [1, "card"] });
|
|
6
|
-
}
|
|
7
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdCard, [{
|
|
8
|
-
type: Directive,
|
|
9
|
-
args: [{
|
|
10
|
-
selector: "sd-card,[sdCard]",
|
|
11
|
-
standalone: true,
|
|
12
|
-
host: {
|
|
13
|
-
class: "card",
|
|
14
|
-
},
|
|
15
|
-
}]
|
|
16
|
-
}], null, null); })();
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdPane {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdPane, never>;
|
|
4
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SdPane, "sd-pane,[sdPane]", never, {}, {}, never, never, true, never>;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=sd-pane.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-pane.d.ts","sourceRoot":"","sources":["../../../src/ui/layout/sd-pane.ts"],"names":[],"mappings":";AAEA,qBAQa,MAAM;yCAAN,MAAM;2CAAN,MAAM;CAAG"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Directive } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SdPane {
|
|
4
|
-
static ɵfac = function SdPane_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdPane)(); };
|
|
5
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SdPane, selectors: [["sd-pane"], ["", "sdPane", ""]], hostAttrs: [1, "fill", 2, "display", "block"] });
|
|
6
|
-
}
|
|
7
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdPane, [{
|
|
8
|
-
type: Directive,
|
|
9
|
-
args: [{
|
|
10
|
-
selector: "sd-pane,[sdPane]",
|
|
11
|
-
standalone: true,
|
|
12
|
-
host: {
|
|
13
|
-
class: "fill",
|
|
14
|
-
style: "display: block;",
|
|
15
|
-
},
|
|
16
|
-
}]
|
|
17
|
-
}], null, null); })();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdViewItem {
|
|
3
|
-
value: import("@angular/core").InputSignal<any>;
|
|
4
|
-
private readonly _parentControl;
|
|
5
|
-
isSelected: import("@angular/core").Signal<boolean>;
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdViewItem, never>;
|
|
7
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdViewItem, "sd-view-item", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=sd-view-item.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-view-item.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/view/sd-view-item.ts"],"names":[],"mappings":";AAUA,qBA4Ba,UAAU;IACrB,KAAK,2CAAgB;IAErB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IAEjD,UAAU,0CAAgE;yCAL/D,UAAU;2CAAV,UAAU;CAMtB"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation, } from "@angular/core";
|
|
2
|
-
import { SdView } from "./sd-view";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const _c0 = ["*"];
|
|
5
|
-
export class SdViewItem {
|
|
6
|
-
value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
7
|
-
_parentControl = inject(SdView);
|
|
8
|
-
isSelected = computed(() => this._parentControl.value() === this.value(), ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
|
|
9
|
-
static ɵfac = function SdViewItem_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdViewItem)(); };
|
|
10
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdViewItem, selectors: [["sd-view-item"]], hostVars: 1, hostBindings: function SdViewItem_HostBindings(rf, ctx) { if (rf & 2) {
|
|
11
|
-
i0.ɵɵattribute("data-sd-selected", ctx.isSelected());
|
|
12
|
-
} }, inputs: { value: [1, "value"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdViewItem_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
-
i0.ɵɵprojectionDef();
|
|
14
|
-
i0.ɵɵprojection(0);
|
|
15
|
-
} }, styles: ["sd-view-item {\n display: none;\n}\nsd-view-item[data-sd-selected=true] {\n display: block;\n}\nsd-view[data-sd-fill=true] sd-view-item {\n height: 100%;\n}"], encapsulation: 2, changeDetection: 0 });
|
|
16
|
-
}
|
|
17
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdViewItem, [{
|
|
18
|
-
type: Component,
|
|
19
|
-
args: [{ selector: "sd-view-item", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], template: `
|
|
20
|
-
<ng-content></ng-content>
|
|
21
|
-
`, host: {
|
|
22
|
-
"[attr.data-sd-selected]": "isSelected()",
|
|
23
|
-
}, styles: ["sd-view-item {\n display: none;\n}\nsd-view-item[data-sd-selected=true] {\n display: block;\n}\nsd-view[data-sd-fill=true] sd-view-item {\n height: 100%;\n}"] }]
|
|
24
|
-
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] }); })();
|
|
25
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdViewItem, { className: "SdViewItem", filePath: "packages/angular/src/ui/layout/view/sd-view-item.ts", lineNumber: 39, forbidOrphanRendering: true }); })();
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdView {
|
|
3
|
-
value: import("@angular/core").InputSignal<any>;
|
|
4
|
-
fill: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdView, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdView, "sd-view", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=sd-view.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/view/sd-view.ts"],"names":[],"mappings":";AAEA,qBAyBa,MAAM;IACjB,KAAK,2CAAgB;IACrB,IAAI,qEAAiD;yCAF1C,MAAM;2CAAN,MAAM;CAGlB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
const _c0 = ["*"];
|
|
4
|
-
export class SdView {
|
|
5
|
-
value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
6
|
-
fill = input(false, { ...(ngDevMode ? { debugName: "fill" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
7
|
-
static ɵfac = function SdView_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdView)(); };
|
|
8
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdView, selectors: [["sd-view"]], hostVars: 1, hostBindings: function SdView_HostBindings(rf, ctx) { if (rf & 2) {
|
|
9
|
-
i0.ɵɵattribute("data-sd-fill", ctx.fill());
|
|
10
|
-
} }, inputs: { value: [1, "value"], fill: [1, "fill"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdView_Template(rf, ctx) { if (rf & 1) {
|
|
11
|
-
i0.ɵɵprojectionDef();
|
|
12
|
-
i0.ɵɵprojection(0);
|
|
13
|
-
} }, styles: ["sd-view {\n display: block;\n background: var(--control-color);\n}\nsd-view[data-sd-fill=true] {\n height: 100%;\n}"], encapsulation: 2, changeDetection: 0 });
|
|
14
|
-
}
|
|
15
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdView, [{
|
|
16
|
-
type: Component,
|
|
17
|
-
args: [{ selector: "sd-view", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], template: `
|
|
18
|
-
<ng-content></ng-content>
|
|
19
|
-
`, host: {
|
|
20
|
-
"[attr.data-sd-fill]": "fill()",
|
|
21
|
-
}, styles: ["sd-view {\n display: block;\n background: var(--control-color);\n}\nsd-view[data-sd-fill=true] {\n height: 100%;\n}"] }]
|
|
22
|
-
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }] }); })();
|
|
23
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdView, { className: "SdView", filePath: "packages/angular/src/ui/layout/view/sd-view.ts", lineNumber: 28, forbidOrphanRendering: true }); })();
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdTabviewItem<T> {
|
|
3
|
-
value: import("@angular/core").InputSignal<T>;
|
|
4
|
-
header: import("@angular/core").InputSignal<string | undefined>;
|
|
5
|
-
private readonly _parentControl;
|
|
6
|
-
isSelected: import("@angular/core").Signal<boolean>;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabviewItem<any>, never>;
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdTabviewItem<any>, "sd-tabview-item", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=sd-tabview-item.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-tabview-item.d.ts","sourceRoot":"","sources":["../../../../src/ui/navigation/tab/sd-tabview-item.ts"],"names":[],"mappings":";AAWA,qBA2Ba,aAAa,CAAC,CAAC;IAC1B,KAAK,yCAAuB;IAC5B,MAAM,0DAAmB;IAEzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,UAAU,0CAAgE;yCAR/D,aAAa;2CAAb,aAAa;CASzB"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, ViewEncapsulation, } from "@angular/core";
|
|
2
|
-
import { SdTabview } from "./sd-tabview";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const _c0 = ["*"];
|
|
5
|
-
export class SdTabviewItem {
|
|
6
|
-
value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
7
|
-
header = input(...(ngDevMode ? [undefined, { debugName: "header" }] : /* istanbul ignore next */ []));
|
|
8
|
-
_parentControl = inject(forwardRef(() => SdTabview));
|
|
9
|
-
isSelected = computed(() => this._parentControl.value() === this.value(), ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
|
|
10
|
-
static ɵfac = function SdTabviewItem_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdTabviewItem)(); };
|
|
11
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdTabviewItem, selectors: [["sd-tabview-item"]], hostVars: 1, hostBindings: function SdTabviewItem_HostBindings(rf, ctx) { if (rf & 2) {
|
|
12
|
-
i0.ɵɵattribute("data-sd-selected", ctx.isSelected());
|
|
13
|
-
} }, inputs: { value: [1, "value"], header: [1, "header"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdTabviewItem_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
-
i0.ɵɵprojectionDef();
|
|
15
|
-
i0.ɵɵprojection(0);
|
|
16
|
-
} }, styles: ["sd-tabview-item {\n display: none;\n width: 100%;\n height: 100%;\n overflow: auto;\n}\nsd-tabview-item[data-sd-selected=true] {\n display: block;\n}"], encapsulation: 2, changeDetection: 0 });
|
|
17
|
-
}
|
|
18
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTabviewItem, [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{ selector: "sd-tabview-item", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], template: `
|
|
21
|
-
<ng-content></ng-content>
|
|
22
|
-
`, host: {
|
|
23
|
-
"[attr.data-sd-selected]": "isSelected()",
|
|
24
|
-
}, styles: ["sd-tabview-item {\n display: none;\n width: 100%;\n height: 100%;\n overflow: auto;\n}\nsd-tabview-item[data-sd-selected=true] {\n display: block;\n}"] }]
|
|
25
|
-
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }] }); })();
|
|
26
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdTabviewItem, { className: "SdTabviewItem", filePath: "packages/angular/src/ui/navigation/tab/sd-tabview-item.ts", lineNumber: 39, forbidOrphanRendering: true }); })();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SdTabviewItem } from "./sd-tabview-item";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class SdTabview<T> {
|
|
4
|
-
value: import("@angular/core").ModelSignal<T | undefined>;
|
|
5
|
-
itemControls: import("@angular/core").Signal<readonly SdTabviewItem<T>[]>;
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabview<any>, never>;
|
|
7
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdTabview<any>, "sd-tabview", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["itemControls"], ["*"], true, never>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=sd-tabview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-tabview.d.ts","sourceRoot":"","sources":["../../../../src/ui/navigation/tab/sd-tabview.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;;AAElD,qBAuBa,SAAS,CAAC,CAAC;IACtB,KAAK,qDAAc;IAEnB,YAAY,8DAAoD;yCAHrD,SAAS;2CAAT,SAAS;CAIrB"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, contentChildren, model, ViewEncapsulation, } from "@angular/core";
|
|
2
|
-
import { SdTabItem } from "./sd-tab-item";
|
|
3
|
-
import { SdTab } from "./sd-tab";
|
|
4
|
-
import { SdTabviewItem } from "./sd-tabview-item";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const _c0 = ["*"];
|
|
7
|
-
const _forTrack0 = ($index, $item) => $item.value();
|
|
8
|
-
function SdTabview_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
9
|
-
i0.ɵɵelementStart(0, "sd-tab-item", 1);
|
|
10
|
-
i0.ɵɵtext(1);
|
|
11
|
-
i0.ɵɵelementEnd();
|
|
12
|
-
} if (rf & 2) {
|
|
13
|
-
const itemControl_r1 = ctx.$implicit;
|
|
14
|
-
i0.ɵɵproperty("value", itemControl_r1.value());
|
|
15
|
-
i0.ɵɵadvance();
|
|
16
|
-
i0.ɵɵtextInterpolate1(" ", itemControl_r1.header() || itemControl_r1.value(), " ");
|
|
17
|
-
} }
|
|
18
|
-
export class SdTabview {
|
|
19
|
-
value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
20
|
-
itemControls = contentChildren(SdTabviewItem, ...(ngDevMode ? [{ debugName: "itemControls" }] : /* istanbul ignore next */ []));
|
|
21
|
-
static ɵfac = function SdTabview_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdTabview)(); };
|
|
22
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdTabview, selectors: [["sd-tabview"]], contentQueries: function SdTabview_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
23
|
-
i0.ɵɵcontentQuerySignal(dirIndex, ctx.itemControls, SdTabviewItem, 4);
|
|
24
|
-
} if (rf & 2) {
|
|
25
|
-
i0.ɵɵqueryAdvance();
|
|
26
|
-
} }, hostAttrs: [1, "flex-column", "fill"], inputs: { value: [1, "value"] }, outputs: { value: "valueChange" }, ngContentSelectors: _c0, decls: 5, vars: 1, consts: [[3, "valueChange", "value"], [3, "value"], [1, "flex-fill"]], template: function SdTabview_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
i0.ɵɵprojectionDef();
|
|
28
|
-
i0.ɵɵelementStart(0, "sd-tab", 0);
|
|
29
|
-
i0.ɵɵtwoWayListener("valueChange", function SdTabview_Template_sd_tab_valueChange_0_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.value, $event) || (ctx.value = $event); return $event; });
|
|
30
|
-
i0.ɵɵrepeaterCreate(1, SdTabview_For_2_Template, 2, 2, "sd-tab-item", 1, _forTrack0);
|
|
31
|
-
i0.ɵɵelementEnd();
|
|
32
|
-
i0.ɵɵelementStart(3, "div", 2);
|
|
33
|
-
i0.ɵɵprojection(4);
|
|
34
|
-
i0.ɵɵelementEnd();
|
|
35
|
-
} if (rf & 2) {
|
|
36
|
-
i0.ɵɵtwoWayProperty("value", ctx.value);
|
|
37
|
-
i0.ɵɵadvance();
|
|
38
|
-
i0.ɵɵrepeater(ctx.itemControls());
|
|
39
|
-
} }, dependencies: [SdTab, SdTabItem], encapsulation: 2, changeDetection: 0 });
|
|
40
|
-
}
|
|
41
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTabview, [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{
|
|
44
|
-
selector: "sd-tabview",
|
|
45
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
46
|
-
encapsulation: ViewEncapsulation.None,
|
|
47
|
-
standalone: true,
|
|
48
|
-
imports: [SdTab, SdTabItem],
|
|
49
|
-
host: {
|
|
50
|
-
class: "flex-column fill",
|
|
51
|
-
},
|
|
52
|
-
template: `
|
|
53
|
-
<sd-tab [(value)]="value">
|
|
54
|
-
@for (itemControl of itemControls(); track itemControl.value()) {
|
|
55
|
-
<sd-tab-item [value]="itemControl.value()">
|
|
56
|
-
{{ itemControl.header() || itemControl.value() }}
|
|
57
|
-
</sd-tab-item>
|
|
58
|
-
}
|
|
59
|
-
</sd-tab>
|
|
60
|
-
|
|
61
|
-
<div class="flex-fill">
|
|
62
|
-
<ng-content />
|
|
63
|
-
</div>
|
|
64
|
-
`,
|
|
65
|
-
}]
|
|
66
|
-
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], itemControls: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SdTabviewItem), { isSignal: true }] }] }); })();
|
|
67
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdTabview, { className: "SdTabview", filePath: "packages/angular/src/ui/navigation/tab/sd-tabview.ts", lineNumber: 35, forbidOrphanRendering: true }); })();
|
package/src/ui/layout/sd-card.ts
DELETED
package/src/ui/layout/sd-pane.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChangeDetectionStrategy,
|
|
3
|
-
Component,
|
|
4
|
-
computed,
|
|
5
|
-
inject,
|
|
6
|
-
input,
|
|
7
|
-
ViewEncapsulation,
|
|
8
|
-
} from "@angular/core";
|
|
9
|
-
import { SdView } from "./sd-view";
|
|
10
|
-
|
|
11
|
-
@Component({
|
|
12
|
-
selector: "sd-view-item",
|
|
13
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14
|
-
encapsulation: ViewEncapsulation.None,
|
|
15
|
-
standalone: true,
|
|
16
|
-
imports: [],
|
|
17
|
-
styles: [
|
|
18
|
-
/* language=SCSS */ `
|
|
19
|
-
sd-view-item {
|
|
20
|
-
display: none;
|
|
21
|
-
|
|
22
|
-
&[data-sd-selected="true"] {
|
|
23
|
-
display: block;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
sd-view[data-sd-fill="true"] & {
|
|
27
|
-
height: 100%;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
`,
|
|
31
|
-
],
|
|
32
|
-
template: `
|
|
33
|
-
<ng-content></ng-content>
|
|
34
|
-
`,
|
|
35
|
-
host: {
|
|
36
|
-
"[attr.data-sd-selected]": "isSelected()",
|
|
37
|
-
},
|
|
38
|
-
})
|
|
39
|
-
export class SdViewItem {
|
|
40
|
-
value = input<any>();
|
|
41
|
-
|
|
42
|
-
private readonly _parentControl = inject(SdView);
|
|
43
|
-
|
|
44
|
-
isSelected = computed(() => this._parentControl.value() === this.value());
|
|
45
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from "@angular/core";
|
|
2
|
-
|
|
3
|
-
@Component({
|
|
4
|
-
selector: "sd-view",
|
|
5
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6
|
-
encapsulation: ViewEncapsulation.None,
|
|
7
|
-
standalone: true,
|
|
8
|
-
imports: [],
|
|
9
|
-
styles: [
|
|
10
|
-
/* language=SCSS */ `
|
|
11
|
-
sd-view {
|
|
12
|
-
display: block;
|
|
13
|
-
background: var(--control-color);
|
|
14
|
-
|
|
15
|
-
&[data-sd-fill="true"] {
|
|
16
|
-
height: 100%;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
`,
|
|
20
|
-
],
|
|
21
|
-
template: `
|
|
22
|
-
<ng-content></ng-content>
|
|
23
|
-
`,
|
|
24
|
-
host: {
|
|
25
|
-
"[attr.data-sd-fill]": "fill()",
|
|
26
|
-
},
|
|
27
|
-
})
|
|
28
|
-
export class SdView {
|
|
29
|
-
value = input<any>();
|
|
30
|
-
fill = input(false, { transform: booleanAttribute });
|
|
31
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChangeDetectionStrategy,
|
|
3
|
-
Component,
|
|
4
|
-
computed,
|
|
5
|
-
forwardRef,
|
|
6
|
-
inject,
|
|
7
|
-
input,
|
|
8
|
-
ViewEncapsulation,
|
|
9
|
-
} from "@angular/core";
|
|
10
|
-
import { SdTabview } from "./sd-tabview";
|
|
11
|
-
|
|
12
|
-
@Component({
|
|
13
|
-
selector: "sd-tabview-item",
|
|
14
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
-
encapsulation: ViewEncapsulation.None,
|
|
16
|
-
standalone: true,
|
|
17
|
-
imports: [],
|
|
18
|
-
styles: [
|
|
19
|
-
/* language=SCSS */ `
|
|
20
|
-
sd-tabview-item {
|
|
21
|
-
display: none;
|
|
22
|
-
width: 100%;
|
|
23
|
-
height: 100%;
|
|
24
|
-
overflow: auto;
|
|
25
|
-
|
|
26
|
-
&[data-sd-selected="true"] {
|
|
27
|
-
display: block;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
`,
|
|
31
|
-
],
|
|
32
|
-
template: `
|
|
33
|
-
<ng-content></ng-content>
|
|
34
|
-
`,
|
|
35
|
-
host: {
|
|
36
|
-
"[attr.data-sd-selected]": "isSelected()",
|
|
37
|
-
},
|
|
38
|
-
})
|
|
39
|
-
export class SdTabviewItem<T> {
|
|
40
|
-
value = input.required<T>();
|
|
41
|
-
header = input<string>();
|
|
42
|
-
|
|
43
|
-
private readonly _parentControl = inject<SdTabview<T>>(
|
|
44
|
-
forwardRef(() => SdTabview),
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
isSelected = computed(() => this._parentControl.value() === this.value());
|
|
48
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChangeDetectionStrategy,
|
|
3
|
-
Component,
|
|
4
|
-
contentChildren,
|
|
5
|
-
model,
|
|
6
|
-
ViewEncapsulation,
|
|
7
|
-
} from "@angular/core";
|
|
8
|
-
import { SdTabItem } from "./sd-tab-item";
|
|
9
|
-
import { SdTab } from "./sd-tab";
|
|
10
|
-
import { SdTabviewItem } from "./sd-tabview-item";
|
|
11
|
-
|
|
12
|
-
@Component({
|
|
13
|
-
selector: "sd-tabview",
|
|
14
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
-
encapsulation: ViewEncapsulation.None,
|
|
16
|
-
standalone: true,
|
|
17
|
-
imports: [SdTab, SdTabItem],
|
|
18
|
-
host: {
|
|
19
|
-
class: "flex-column fill",
|
|
20
|
-
},
|
|
21
|
-
template: `
|
|
22
|
-
<sd-tab [(value)]="value">
|
|
23
|
-
@for (itemControl of itemControls(); track itemControl.value()) {
|
|
24
|
-
<sd-tab-item [value]="itemControl.value()">
|
|
25
|
-
{{ itemControl.header() || itemControl.value() }}
|
|
26
|
-
</sd-tab-item>
|
|
27
|
-
}
|
|
28
|
-
</sd-tab>
|
|
29
|
-
|
|
30
|
-
<div class="flex-fill">
|
|
31
|
-
<ng-content />
|
|
32
|
-
</div>
|
|
33
|
-
`,
|
|
34
|
-
})
|
|
35
|
-
export class SdTabview<T> {
|
|
36
|
-
value = model<T>();
|
|
37
|
-
|
|
38
|
-
itemControls = contentChildren<SdTabviewItem<T>>(SdTabviewItem);
|
|
39
|
-
}
|