@jariahh/angular 0.1.0
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/esm2022/index.mjs +11 -0
- package/esm2022/jariahh-angular.mjs +5 -0
- package/esm2022/lib/components/huly-comments.component.mjs +48 -0
- package/esm2022/lib/components/huly-create-issue.component.mjs +52 -0
- package/esm2022/lib/components/huly-embed.component.mjs +176 -0
- package/esm2022/lib/components/huly-issue-detail.component.mjs +48 -0
- package/esm2022/lib/components/huly-issue-list.component.mjs +47 -0
- package/esm2022/lib/components/huly-kanban.component.mjs +47 -0
- package/esm2022/lib/providers/huly-embed.config.mjs +3 -0
- package/esm2022/lib/providers/huly-embed.provider.mjs +12 -0
- package/esm2022/lib/services/huly-embed.service.mjs +38 -0
- package/esm2022/lib/services/huly-message.service.mjs +41 -0
- package/fesm2022/jariahh-angular.mjs +489 -0
- package/fesm2022/jariahh-angular.mjs.map +1 -0
- package/index.d.ts +10 -0
- package/lib/components/huly-comments.component.d.ts +8 -0
- package/lib/components/huly-create-issue.component.d.ts +11 -0
- package/lib/components/huly-embed.component.d.ts +32 -0
- package/lib/components/huly-issue-detail.component.d.ts +8 -0
- package/lib/components/huly-issue-list.component.d.ts +10 -0
- package/lib/components/huly-kanban.component.d.ts +10 -0
- package/lib/providers/huly-embed.config.d.ts +3 -0
- package/lib/providers/huly-embed.provider.d.ts +3 -0
- package/lib/services/huly-embed.service.d.ts +16 -0
- package/lib/services/huly-message.service.d.ts +16 -0
- package/package.json +37 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { HULY_EMBED_CONFIG } from './lib/providers/huly-embed.config';
|
|
2
|
+
export { provideHulyEmbed } from './lib/providers/huly-embed.provider';
|
|
3
|
+
export { HulyEmbedService } from './lib/services/huly-embed.service';
|
|
4
|
+
export { HulyMessageService } from './lib/services/huly-message.service';
|
|
5
|
+
export { HulyEmbedComponent } from './lib/components/huly-embed.component';
|
|
6
|
+
export { HulyCreateIssueComponent } from './lib/components/huly-create-issue.component';
|
|
7
|
+
export { HulyIssueListComponent } from './lib/components/huly-issue-list.component';
|
|
8
|
+
export { HulyIssueDetailComponent } from './lib/components/huly-issue-detail.component';
|
|
9
|
+
export { HulyKanbanComponent } from './lib/components/huly-kanban.component';
|
|
10
|
+
export { HulyCommentsComponent } from './lib/components/huly-comments.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBIVUxZX0VNQkVEX0NPTkZJRyB9IGZyb20gJy4vbGliL3Byb3ZpZGVycy9odWx5LWVtYmVkLmNvbmZpZyc7XG5leHBvcnQgeyBwcm92aWRlSHVseUVtYmVkIH0gZnJvbSAnLi9saWIvcHJvdmlkZXJzL2h1bHktZW1iZWQucHJvdmlkZXInO1xuZXhwb3J0IHsgSHVseUVtYmVkU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL2h1bHktZW1iZWQuc2VydmljZSc7XG5leHBvcnQgeyBIdWx5TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odWx5LW1lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBIdWx5RW1iZWRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2h1bHktZW1iZWQuY29tcG9uZW50JztcbmV4cG9ydCB7IEh1bHlDcmVhdGVJc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvaHVseS1jcmVhdGUtaXNzdWUuY29tcG9uZW50JztcbmV4cG9ydCB7IEh1bHlJc3N1ZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2h1bHktaXNzdWUtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHsgSHVseUlzc3VlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9odWx5LWlzc3VlLWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgSHVseUthbmJhbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvaHVseS1rYW5iYW4uY29tcG9uZW50JztcbmV4cG9ydCB7IEh1bHlDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvaHVseS1jb21tZW50cy5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFyaWFoaC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phcmlhaGgtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { HulyEmbedComponent } from './huly-embed.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HulyCommentsComponent {
|
|
5
|
+
issueId;
|
|
6
|
+
project;
|
|
7
|
+
externalUser;
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyCommentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HulyCommentsComponent, isStandalone: true, selector: "huly-comments", inputs: { issueId: "issueId", project: "project", externalUser: "externalUser" }, ngImport: i0, template: `
|
|
10
|
+
<huly-embed
|
|
11
|
+
component="comments"
|
|
12
|
+
[project]="project"
|
|
13
|
+
[issueId]="issueId"
|
|
14
|
+
[externalUser]="externalUser"
|
|
15
|
+
>
|
|
16
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
17
|
+
<ng-content select="[error]" error></ng-content>
|
|
18
|
+
</huly-embed>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "component", type: HulyEmbedComponent, selector: "huly-embed", inputs: ["component", "project", "issueId", "externalUser"], outputs: ["ready", "issueCreated", "issueCancelled", "issueSelected", "resized", "embedError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyCommentsComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'huly-comments',
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [HulyEmbedComponent],
|
|
27
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
|
+
template: `
|
|
29
|
+
<huly-embed
|
|
30
|
+
component="comments"
|
|
31
|
+
[project]="project"
|
|
32
|
+
[issueId]="issueId"
|
|
33
|
+
[externalUser]="externalUser"
|
|
34
|
+
>
|
|
35
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
36
|
+
<ng-content select="[error]" error></ng-content>
|
|
37
|
+
</huly-embed>
|
|
38
|
+
`,
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { issueId: [{
|
|
41
|
+
type: Input,
|
|
42
|
+
args: [{ required: true }]
|
|
43
|
+
}], project: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], externalUser: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1jb21tZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaHVseS1jb21tZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBbUI1RCxNQUFNLE9BQU8scUJBQXFCO0lBQ0wsT0FBTyxDQUFVO0lBQ25DLE9BQU8sQ0FBVTtJQUNqQixZQUFZLENBQVU7d0dBSHBCLHFCQUFxQjs0RkFBckIscUJBQXFCLDJKQVp0Qjs7Ozs7Ozs7OztHQVVULDREQVpTLGtCQUFrQjs7NEZBY2pCLHFCQUFxQjtrQkFqQmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7OztHQVVUO2lCQUNGOzhCQUU0QixPQUFPO3NCQUFqQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHVseUVtYmVkQ29tcG9uZW50IH0gZnJvbSAnLi9odWx5LWVtYmVkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h1bHktY29tbWVudHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSHVseUVtYmVkQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGh1bHktZW1iZWRcbiAgICAgIGNvbXBvbmVudD1cImNvbW1lbnRzXCJcbiAgICAgIFtwcm9qZWN0XT1cInByb2plY3RcIlxuICAgICAgW2lzc3VlSWRdPVwiaXNzdWVJZFwiXG4gICAgICBbZXh0ZXJuYWxVc2VyXT1cImV4dGVybmFsVXNlclwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xvYWRpbmddXCIgbG9hZGluZz48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXJyb3JdXCIgZXJyb3I+PC9uZy1jb250ZW50PlxuICAgIDwvaHVseS1lbWJlZD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgSHVseUNvbW1lbnRzQ29tcG9uZW50IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXNzdWVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHJvamVjdD86IHN0cmluZztcbiAgQElucHV0KCkgZXh0ZXJuYWxVc2VyPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { HulyEmbedComponent } from './huly-embed.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HulyCreateIssueComponent {
|
|
5
|
+
project;
|
|
6
|
+
externalUser;
|
|
7
|
+
issueCreated = new EventEmitter();
|
|
8
|
+
issueCancelled = new EventEmitter();
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyCreateIssueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HulyCreateIssueComponent, isStandalone: true, selector: "huly-create-issue", inputs: { project: "project", externalUser: "externalUser" }, outputs: { issueCreated: "issueCreated", issueCancelled: "issueCancelled" }, ngImport: i0, template: `
|
|
11
|
+
<huly-embed
|
|
12
|
+
component="create-issue"
|
|
13
|
+
[project]="project"
|
|
14
|
+
[externalUser]="externalUser"
|
|
15
|
+
(issueCreated)="issueCreated.emit($event)"
|
|
16
|
+
(issueCancelled)="issueCancelled.emit($event)"
|
|
17
|
+
>
|
|
18
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
19
|
+
<ng-content select="[error]" error></ng-content>
|
|
20
|
+
</huly-embed>
|
|
21
|
+
`, isInline: true, dependencies: [{ kind: "component", type: HulyEmbedComponent, selector: "huly-embed", inputs: ["component", "project", "issueId", "externalUser"], outputs: ["ready", "issueCreated", "issueCancelled", "issueSelected", "resized", "embedError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyCreateIssueComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{
|
|
26
|
+
selector: 'huly-create-issue',
|
|
27
|
+
standalone: true,
|
|
28
|
+
imports: [HulyEmbedComponent],
|
|
29
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
30
|
+
template: `
|
|
31
|
+
<huly-embed
|
|
32
|
+
component="create-issue"
|
|
33
|
+
[project]="project"
|
|
34
|
+
[externalUser]="externalUser"
|
|
35
|
+
(issueCreated)="issueCreated.emit($event)"
|
|
36
|
+
(issueCancelled)="issueCancelled.emit($event)"
|
|
37
|
+
>
|
|
38
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
39
|
+
<ng-content select="[error]" error></ng-content>
|
|
40
|
+
</huly-embed>
|
|
41
|
+
`,
|
|
42
|
+
}]
|
|
43
|
+
}], propDecorators: { project: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], externalUser: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], issueCreated: [{
|
|
48
|
+
type: Output
|
|
49
|
+
}], issueCancelled: [{
|
|
50
|
+
type: Output
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1jcmVhdGUtaXNzdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2h1bHktY3JlYXRlLWlzc3VlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQW9CNUQsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixPQUFPLENBQVU7SUFDakIsWUFBWSxDQUFVO0lBRVosWUFBWSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO0lBQ3pELGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQzt3R0FMckUsd0JBQXdCOzRGQUF4Qix3QkFBd0Isd05BYnpCOzs7Ozs7Ozs7OztHQVdULDREQWJTLGtCQUFrQjs7NEZBZWpCLHdCQUF3QjtrQkFsQnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO2lCQUNGOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVhLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksY0FBYztzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBIdWx5SXNzdWVDcmVhdGVkRXZlbnQsIEh1bHlJc3N1ZUNhbmNlbGxlZEV2ZW50IH0gZnJvbSAnQGphcmlhaGgvY29yZSc7XG5pbXBvcnQgeyBIdWx5RW1iZWRDb21wb25lbnQgfSBmcm9tICcuL2h1bHktZW1iZWQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHVseS1jcmVhdGUtaXNzdWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSHVseUVtYmVkQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGh1bHktZW1iZWRcbiAgICAgIGNvbXBvbmVudD1cImNyZWF0ZS1pc3N1ZVwiXG4gICAgICBbcHJvamVjdF09XCJwcm9qZWN0XCJcbiAgICAgIFtleHRlcm5hbFVzZXJdPVwiZXh0ZXJuYWxVc2VyXCJcbiAgICAgIChpc3N1ZUNyZWF0ZWQpPVwiaXNzdWVDcmVhdGVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAoaXNzdWVDYW5jZWxsZWQpPVwiaXNzdWVDYW5jZWxsZWQuZW1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbG9hZGluZ11cIiBsb2FkaW5nPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlcnJvcl1cIiBlcnJvcj48L25nLWNvbnRlbnQ+XG4gICAgPC9odWx5LWVtYmVkPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBIdWx5Q3JlYXRlSXNzdWVDb21wb25lbnQge1xuICBASW5wdXQoKSBwcm9qZWN0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRlcm5hbFVzZXI/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzc3VlQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHVseUlzc3VlQ3JlYXRlZEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNzdWVDYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh1bHlJc3N1ZUNhbmNlbGxlZEV2ZW50PigpO1xufVxuIl19
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, signal, ViewChild, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { EmbedMessageTypes } from '@jariahh/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../services/huly-embed.service";
|
|
6
|
+
import * as i2 from "../services/huly-message.service";
|
|
7
|
+
export class HulyEmbedComponent {
|
|
8
|
+
embedService;
|
|
9
|
+
messageService;
|
|
10
|
+
component;
|
|
11
|
+
project;
|
|
12
|
+
issueId;
|
|
13
|
+
externalUser;
|
|
14
|
+
ready = new EventEmitter();
|
|
15
|
+
issueCreated = new EventEmitter();
|
|
16
|
+
issueCancelled = new EventEmitter();
|
|
17
|
+
issueSelected = new EventEmitter();
|
|
18
|
+
resized = new EventEmitter();
|
|
19
|
+
embedError = new EventEmitter();
|
|
20
|
+
iframeRef;
|
|
21
|
+
embedUrl = signal(null);
|
|
22
|
+
loading = signal(true);
|
|
23
|
+
errorMessage = signal(null);
|
|
24
|
+
iframeHeight = signal(400);
|
|
25
|
+
subscription;
|
|
26
|
+
destroyRefresher;
|
|
27
|
+
constructor(embedService, messageService) {
|
|
28
|
+
this.embedService = embedService;
|
|
29
|
+
this.messageService = messageService;
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.subscription = this.messageService.messages$.subscribe((message) => {
|
|
33
|
+
switch (message.type) {
|
|
34
|
+
case EmbedMessageTypes.Ready:
|
|
35
|
+
this.loading.set(false);
|
|
36
|
+
this.ready.emit();
|
|
37
|
+
break;
|
|
38
|
+
case EmbedMessageTypes.IssueCreated:
|
|
39
|
+
if ('cancelled' in message && message.cancelled) {
|
|
40
|
+
this.issueCancelled.emit(message);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.issueCreated.emit(message);
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
case EmbedMessageTypes.IssueSelected:
|
|
47
|
+
this.issueSelected.emit(message);
|
|
48
|
+
break;
|
|
49
|
+
case EmbedMessageTypes.Resize:
|
|
50
|
+
this.iframeHeight.set(message.height);
|
|
51
|
+
this.resized.emit(message);
|
|
52
|
+
break;
|
|
53
|
+
case EmbedMessageTypes.Error:
|
|
54
|
+
this.errorMessage.set(message.reason);
|
|
55
|
+
this.loading.set(false);
|
|
56
|
+
this.embedError.emit(message);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
this.loadEmbed();
|
|
61
|
+
}
|
|
62
|
+
ngOnDestroy() {
|
|
63
|
+
this.subscription?.unsubscribe();
|
|
64
|
+
this.destroyRefresher?.();
|
|
65
|
+
}
|
|
66
|
+
async loadEmbed() {
|
|
67
|
+
try {
|
|
68
|
+
this.loading.set(true);
|
|
69
|
+
this.errorMessage.set(null);
|
|
70
|
+
const tokenResponse = await this.embedService.fetchToken(this.component);
|
|
71
|
+
const url = this.embedService.buildUrl(this.component, tokenResponse.token, {
|
|
72
|
+
project: this.project,
|
|
73
|
+
issue: this.issueId,
|
|
74
|
+
externalUser: this.externalUser,
|
|
75
|
+
});
|
|
76
|
+
this.embedUrl.set(url);
|
|
77
|
+
this.destroyRefresher?.();
|
|
78
|
+
this.destroyRefresher = this.embedService.createRefresher(this.component, tokenResponse.expiresIn, (response) => {
|
|
79
|
+
const newUrl = this.embedService.buildUrl(this.component, response.token, {
|
|
80
|
+
project: this.project,
|
|
81
|
+
issue: this.issueId,
|
|
82
|
+
externalUser: this.externalUser,
|
|
83
|
+
});
|
|
84
|
+
this.loading.set(true);
|
|
85
|
+
this.embedUrl.set(newUrl);
|
|
86
|
+
}, (error) => {
|
|
87
|
+
this.errorMessage.set(error.message);
|
|
88
|
+
this.loading.set(false);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
const message = err instanceof Error ? err.message : 'Failed to load embed';
|
|
93
|
+
this.errorMessage.set(message);
|
|
94
|
+
this.loading.set(false);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyEmbedComponent, deps: [{ token: i1.HulyEmbedService }, { token: i2.HulyMessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HulyEmbedComponent, isStandalone: true, selector: "huly-embed", inputs: { component: "component", project: "project", issueId: "issueId", externalUser: "externalUser" }, outputs: { ready: "ready", issueCreated: "issueCreated", issueCancelled: "issueCancelled", issueSelected: "issueSelected", resized: "resized", embedError: "embedError" }, viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["embedIframe"], descendants: true }], ngImport: i0, template: `
|
|
99
|
+
@if (loading()) {
|
|
100
|
+
<div class="huly-embed-loading">
|
|
101
|
+
<ng-content select="[loading]"></ng-content>
|
|
102
|
+
</div>
|
|
103
|
+
}
|
|
104
|
+
@if (errorMessage()) {
|
|
105
|
+
<div class="huly-embed-error">
|
|
106
|
+
<ng-content select="[error]"></ng-content>
|
|
107
|
+
</div>
|
|
108
|
+
}
|
|
109
|
+
@if (embedUrl()) {
|
|
110
|
+
<iframe
|
|
111
|
+
#embedIframe
|
|
112
|
+
[src]="embedUrl()"
|
|
113
|
+
[style.height.px]="iframeHeight()"
|
|
114
|
+
[style.display]="loading() ? 'none' : 'block'"
|
|
115
|
+
style="width: 100%; border: none;"
|
|
116
|
+
allow="clipboard-write"
|
|
117
|
+
></iframe>
|
|
118
|
+
}
|
|
119
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
120
|
+
}
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyEmbedComponent, decorators: [{
|
|
122
|
+
type: Component,
|
|
123
|
+
args: [{
|
|
124
|
+
selector: 'huly-embed',
|
|
125
|
+
standalone: true,
|
|
126
|
+
imports: [CommonModule],
|
|
127
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
128
|
+
template: `
|
|
129
|
+
@if (loading()) {
|
|
130
|
+
<div class="huly-embed-loading">
|
|
131
|
+
<ng-content select="[loading]"></ng-content>
|
|
132
|
+
</div>
|
|
133
|
+
}
|
|
134
|
+
@if (errorMessage()) {
|
|
135
|
+
<div class="huly-embed-error">
|
|
136
|
+
<ng-content select="[error]"></ng-content>
|
|
137
|
+
</div>
|
|
138
|
+
}
|
|
139
|
+
@if (embedUrl()) {
|
|
140
|
+
<iframe
|
|
141
|
+
#embedIframe
|
|
142
|
+
[src]="embedUrl()"
|
|
143
|
+
[style.height.px]="iframeHeight()"
|
|
144
|
+
[style.display]="loading() ? 'none' : 'block'"
|
|
145
|
+
style="width: 100%; border: none;"
|
|
146
|
+
allow="clipboard-write"
|
|
147
|
+
></iframe>
|
|
148
|
+
}
|
|
149
|
+
`,
|
|
150
|
+
}]
|
|
151
|
+
}], ctorParameters: () => [{ type: i1.HulyEmbedService }, { type: i2.HulyMessageService }], propDecorators: { component: [{
|
|
152
|
+
type: Input,
|
|
153
|
+
args: [{ required: true }]
|
|
154
|
+
}], project: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], issueId: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], externalUser: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], ready: [{
|
|
161
|
+
type: Output
|
|
162
|
+
}], issueCreated: [{
|
|
163
|
+
type: Output
|
|
164
|
+
}], issueCancelled: [{
|
|
165
|
+
type: Output
|
|
166
|
+
}], issueSelected: [{
|
|
167
|
+
type: Output
|
|
168
|
+
}], resized: [{
|
|
169
|
+
type: Output
|
|
170
|
+
}], embedError: [{
|
|
171
|
+
type: Output
|
|
172
|
+
}], iframeRef: [{
|
|
173
|
+
type: ViewChild,
|
|
174
|
+
args: ['embedIframe']
|
|
175
|
+
}] } });
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1lbWJlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaHVseS1lbWJlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWix1QkFBdUIsRUFDdkIsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFXL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBZ0NsRCxNQUFNLE9BQU8sa0JBQWtCO0lBd0JWO0lBQ0E7SUF4QlEsU0FBUyxDQUFzQjtJQUNqRCxPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2pCLFlBQVksQ0FBVTtJQUVaLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ2pDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUN6RCxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7SUFDN0QsYUFBYSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO0lBQzNELE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUM5QyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFFekMsU0FBUyxDQUFpQztJQUUzRCxRQUFRLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUN2QyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLFlBQVksR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBQzNDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFNUIsWUFBWSxDQUFnQjtJQUM1QixnQkFBZ0IsQ0FBYztJQUV0QyxZQUNtQixZQUE4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QVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDtpQkFDRjtzSEFFNEIsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFYSxLQUFLO3NCQUF2QixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksY0FBYztzQkFBaEMsTUFBTTtnQkFDWSxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLE9BQU87c0JBQXpCLE1BQU07Z0JBQ1ksVUFBVTtzQkFBNUIsTUFBTTtnQkFFbUIsU0FBUztzQkFBbEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgc2lnbmFsLFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHR5cGUgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEh1bHlFbWJlZENvbXBvbmVudCBhcyBFbWJlZENvbXBvbmVudFR5cGUsXG4gIEh1bHlJc3N1ZUNyZWF0ZWRFdmVudCxcbiAgSHVseUlzc3VlQ2FuY2VsbGVkRXZlbnQsXG4gIEh1bHlJc3N1ZVNlbGVjdGVkRXZlbnQsXG4gIEh1bHlSZXNpemVFdmVudCxcbiAgSHVseUVtYmVkRXJyb3IsXG4gIEVtYmVkVG9rZW5SZXNwb25zZSxcbn0gZnJvbSAnQGphcmlhaGgvY29yZSc7XG5pbXBvcnQgeyBFbWJlZE1lc3NhZ2VUeXBlcyB9IGZyb20gJ0BqYXJpYWhoL2NvcmUnO1xuaW1wb3J0IHsgSHVseUVtYmVkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h1bHktZW1iZWQuc2VydmljZSc7XG5pbXBvcnQgeyBIdWx5TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9odWx5LW1lc3NhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h1bHktZW1iZWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJodWx5LWVtYmVkLWxvYWRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xvYWRpbmddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoZXJyb3JNZXNzYWdlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJodWx5LWVtYmVkLWVycm9yXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlcnJvcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChlbWJlZFVybCgpKSB7XG4gICAgICA8aWZyYW1lXG4gICAgICAgICNlbWJlZElmcmFtZVxuICAgICAgICBbc3JjXT1cImVtYmVkVXJsKClcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImlmcmFtZUhlaWdodCgpXCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwibG9hZGluZygpID8gJ25vbmUnIDogJ2Jsb2NrJ1wiXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGJvcmRlcjogbm9uZTtcIlxuICAgICAgICBhbGxvdz1cImNsaXBib2FyZC13cml0ZVwiXG4gICAgICA+PC9pZnJhbWU+XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBIdWx5RW1iZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbXBvbmVudCE6IEVtYmVkQ29tcG9uZW50VHlwZTtcbiAgQElucHV0KCkgcHJvamVjdD86IHN0cmluZztcbiAgQElucHV0KCkgaXNzdWVJZD86IHN0cmluZztcbiAgQElucHV0KCkgZXh0ZXJuYWxVc2VyPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzc3VlQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHVseUlzc3VlQ3JlYXRlZEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNzdWVDYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh1bHlJc3N1ZUNhbmNlbGxlZEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNzdWVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHVseUlzc3VlU2VsZWN0ZWRFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlc2l6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh1bHlSZXNpemVFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGVtYmVkRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEh1bHlFbWJlZEVycm9yPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2VtYmVkSWZyYW1lJykgaWZyYW1lUmVmPzogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XG5cbiAgcmVhZG9ubHkgZW1iZWRVcmwgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHJlYWRvbmx5IGVycm9yTWVzc2FnZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgaWZyYW1lSGVpZ2h0ID0gc2lnbmFsKDQwMCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZGVzdHJveVJlZnJlc2hlcj86ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbWJlZFNlcnZpY2U6IEh1bHlFbWJlZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogSHVseU1lc3NhZ2VTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubWVzc2FnZVNlcnZpY2UubWVzc2FnZXMkLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBFbWJlZE1lc3NhZ2VUeXBlcy5SZWFkeTpcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFbWJlZE1lc3NhZ2VUeXBlcy5Jc3N1ZUNyZWF0ZWQ6XG4gICAgICAgICAgaWYgKCdjYW5jZWxsZWQnIGluIG1lc3NhZ2UgJiYgbWVzc2FnZS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNzdWVDYW5jZWxsZWQuZW1pdChtZXNzYWdlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc3N1ZUNyZWF0ZWQuZW1pdChtZXNzYWdlIGFzIEh1bHlJc3N1ZUNyZWF0ZWRFdmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVtYmVkTWVzc2FnZVR5cGVzLklzc3VlU2VsZWN0ZWQ6XG4gICAgICAgICAgdGhpcy5pc3N1ZVNlbGVjdGVkLmVtaXQobWVzc2FnZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRW1iZWRNZXNzYWdlVHlwZXMuUmVzaXplOlxuICAgICAgICAgIHRoaXMuaWZyYW1lSGVpZ2h0LnNldChtZXNzYWdlLmhlaWdodCk7XG4gICAgICAgICAgdGhpcy5yZXNpemVkLmVtaXQobWVzc2FnZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRW1iZWRNZXNzYWdlVHlwZXMuRXJyb3I6XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KG1lc3NhZ2UucmVhc29uKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVtYmVkRXJyb3IuZW1pdChtZXNzYWdlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubG9hZEVtYmVkKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRlc3Ryb3lSZWZyZXNoZXI/LigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRW1iZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQobnVsbCk7XG5cbiAgICAgIGNvbnN0IHRva2VuUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmVtYmVkU2VydmljZS5mZXRjaFRva2VuKHRoaXMuY29tcG9uZW50KTtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuZW1iZWRTZXJ2aWNlLmJ1aWxkVXJsKHRoaXMuY29tcG9uZW50LCB0b2tlblJlc3BvbnNlLnRva2VuLCB7XG4gICAgICAgIHByb2plY3Q6IHRoaXMucHJvamVjdCxcbiAgICAgICAgaXNzdWU6IHRoaXMuaXNzdWVJZCxcbiAgICAgICAgZXh0ZXJuYWxVc2VyOiB0aGlzLmV4dGVybmFsVXNlcixcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtYmVkVXJsLnNldCh1cmwpO1xuXG4gICAgICB0aGlzLmRlc3Ryb3lSZWZyZXNoZXI/LigpO1xuICAgICAgdGhpcy5kZXN0cm95UmVmcmVzaGVyID0gdGhpcy5lbWJlZFNlcnZpY2UuY3JlYXRlUmVmcmVzaGVyKFxuICAgICAgICB0aGlzLmNvbXBvbmVudCxcbiAgICAgICAgdG9rZW5SZXNwb25zZS5leHBpcmVzSW4sXG4gICAgICAgIChyZXNwb25zZTogRW1iZWRUb2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3VXJsID0gdGhpcy5lbWJlZFNlcnZpY2UuYnVpbGRVcmwodGhpcy5jb21wb25lbnQsIHJlc3BvbnNlLnRva2VuLCB7XG4gICAgICAgICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgICAgICAgICBpc3N1ZTogdGhpcy5pc3N1ZUlkLFxuICAgICAgICAgICAgZXh0ZXJuYWxVc2VyOiB0aGlzLmV4dGVybmFsVXNlcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICAgIHRoaXMuZW1iZWRVcmwuc2V0KG5ld1VybCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gbG9hZCBlbWJlZCc7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQobWVzc2FnZSk7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { HulyEmbedComponent } from './huly-embed.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HulyIssueDetailComponent {
|
|
5
|
+
issueId;
|
|
6
|
+
project;
|
|
7
|
+
externalUser;
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyIssueDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HulyIssueDetailComponent, isStandalone: true, selector: "huly-issue-detail", inputs: { issueId: "issueId", project: "project", externalUser: "externalUser" }, ngImport: i0, template: `
|
|
10
|
+
<huly-embed
|
|
11
|
+
component="issue-detail"
|
|
12
|
+
[project]="project"
|
|
13
|
+
[issueId]="issueId"
|
|
14
|
+
[externalUser]="externalUser"
|
|
15
|
+
>
|
|
16
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
17
|
+
<ng-content select="[error]" error></ng-content>
|
|
18
|
+
</huly-embed>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "component", type: HulyEmbedComponent, selector: "huly-embed", inputs: ["component", "project", "issueId", "externalUser"], outputs: ["ready", "issueCreated", "issueCancelled", "issueSelected", "resized", "embedError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyIssueDetailComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'huly-issue-detail',
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [HulyEmbedComponent],
|
|
27
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
|
+
template: `
|
|
29
|
+
<huly-embed
|
|
30
|
+
component="issue-detail"
|
|
31
|
+
[project]="project"
|
|
32
|
+
[issueId]="issueId"
|
|
33
|
+
[externalUser]="externalUser"
|
|
34
|
+
>
|
|
35
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
36
|
+
<ng-content select="[error]" error></ng-content>
|
|
37
|
+
</huly-embed>
|
|
38
|
+
`,
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { issueId: [{
|
|
41
|
+
type: Input,
|
|
42
|
+
args: [{ required: true }]
|
|
43
|
+
}], project: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], externalUser: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1pc3N1ZS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2h1bHktaXNzdWUtZGV0YWlsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFtQjVELE1BQU0sT0FBTyx3QkFBd0I7SUFDUixPQUFPLENBQVU7SUFDbkMsT0FBTyxDQUFVO0lBQ2pCLFlBQVksQ0FBVTt3R0FIcEIsd0JBQXdCOzRGQUF4Qix3QkFBd0IsK0pBWnpCOzs7Ozs7Ozs7O0dBVVQsNERBWlMsa0JBQWtCOzs0RkFjakIsd0JBQXdCO2tCQWpCcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtpQkFDRjs4QkFFNEIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh1bHlFbWJlZENvbXBvbmVudCB9IGZyb20gJy4vaHVseS1lbWJlZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodWx5LWlzc3VlLWRldGFpbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtIdWx5RW1iZWRDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aHVseS1lbWJlZFxuICAgICAgY29tcG9uZW50PVwiaXNzdWUtZGV0YWlsXCJcbiAgICAgIFtwcm9qZWN0XT1cInByb2plY3RcIlxuICAgICAgW2lzc3VlSWRdPVwiaXNzdWVJZFwiXG4gICAgICBbZXh0ZXJuYWxVc2VyXT1cImV4dGVybmFsVXNlclwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xvYWRpbmddXCIgbG9hZGluZz48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXJyb3JdXCIgZXJyb3I+PC9uZy1jb250ZW50PlxuICAgIDwvaHVseS1lbWJlZD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgSHVseUlzc3VlRGV0YWlsQ29tcG9uZW50IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXNzdWVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHJvamVjdD86IHN0cmluZztcbiAgQElucHV0KCkgZXh0ZXJuYWxVc2VyPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { HulyEmbedComponent } from './huly-embed.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HulyIssueListComponent {
|
|
5
|
+
project;
|
|
6
|
+
externalUser;
|
|
7
|
+
issueSelected = new EventEmitter();
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyIssueListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HulyIssueListComponent, isStandalone: true, selector: "huly-issue-list", inputs: { project: "project", externalUser: "externalUser" }, outputs: { issueSelected: "issueSelected" }, ngImport: i0, template: `
|
|
10
|
+
<huly-embed
|
|
11
|
+
component="issue-list"
|
|
12
|
+
[project]="project"
|
|
13
|
+
[externalUser]="externalUser"
|
|
14
|
+
(issueSelected)="issueSelected.emit($event)"
|
|
15
|
+
>
|
|
16
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
17
|
+
<ng-content select="[error]" error></ng-content>
|
|
18
|
+
</huly-embed>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "component", type: HulyEmbedComponent, selector: "huly-embed", inputs: ["component", "project", "issueId", "externalUser"], outputs: ["ready", "issueCreated", "issueCancelled", "issueSelected", "resized", "embedError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyIssueListComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'huly-issue-list',
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [HulyEmbedComponent],
|
|
27
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
|
+
template: `
|
|
29
|
+
<huly-embed
|
|
30
|
+
component="issue-list"
|
|
31
|
+
[project]="project"
|
|
32
|
+
[externalUser]="externalUser"
|
|
33
|
+
(issueSelected)="issueSelected.emit($event)"
|
|
34
|
+
>
|
|
35
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
36
|
+
<ng-content select="[error]" error></ng-content>
|
|
37
|
+
</huly-embed>
|
|
38
|
+
`,
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { project: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], externalUser: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], issueSelected: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1pc3N1ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9odWx5LWlzc3VlLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBbUI1RCxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLE9BQU8sQ0FBVTtJQUNqQixZQUFZLENBQVU7SUFFWixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7d0dBSm5FLHNCQUFzQjs0RkFBdEIsc0JBQXNCLHNMQVp2Qjs7Ozs7Ozs7OztHQVVULDREQVpTLGtCQUFrQjs7NEZBY2pCLHNCQUFzQjtrQkFqQmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7O0dBVVQ7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRWEsYUFBYTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBIdWx5SXNzdWVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGphcmlhaGgvY29yZSc7XG5pbXBvcnQgeyBIdWx5RW1iZWRDb21wb25lbnQgfSBmcm9tICcuL2h1bHktZW1iZWQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHVseS1pc3N1ZS1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0h1bHlFbWJlZENvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxodWx5LWVtYmVkXG4gICAgICBjb21wb25lbnQ9XCJpc3N1ZS1saXN0XCJcbiAgICAgIFtwcm9qZWN0XT1cInByb2plY3RcIlxuICAgICAgW2V4dGVybmFsVXNlcl09XCJleHRlcm5hbFVzZXJcIlxuICAgICAgKGlzc3VlU2VsZWN0ZWQpPVwiaXNzdWVTZWxlY3RlZC5lbWl0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsb2FkaW5nXVwiIGxvYWRpbmc+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Vycm9yXVwiIGVycm9yPjwvbmctY29udGVudD5cbiAgICA8L2h1bHktZW1iZWQ+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEh1bHlJc3N1ZUxpc3RDb21wb25lbnQge1xuICBASW5wdXQoKSBwcm9qZWN0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRlcm5hbFVzZXI/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzc3VlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh1bHlJc3N1ZVNlbGVjdGVkRXZlbnQ+KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { HulyEmbedComponent } from './huly-embed.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HulyKanbanComponent {
|
|
5
|
+
project;
|
|
6
|
+
externalUser;
|
|
7
|
+
issueSelected = new EventEmitter();
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyKanbanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HulyKanbanComponent, isStandalone: true, selector: "huly-kanban", inputs: { project: "project", externalUser: "externalUser" }, outputs: { issueSelected: "issueSelected" }, ngImport: i0, template: `
|
|
10
|
+
<huly-embed
|
|
11
|
+
component="kanban"
|
|
12
|
+
[project]="project"
|
|
13
|
+
[externalUser]="externalUser"
|
|
14
|
+
(issueSelected)="issueSelected.emit($event)"
|
|
15
|
+
>
|
|
16
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
17
|
+
<ng-content select="[error]" error></ng-content>
|
|
18
|
+
</huly-embed>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "component", type: HulyEmbedComponent, selector: "huly-embed", inputs: ["component", "project", "issueId", "externalUser"], outputs: ["ready", "issueCreated", "issueCancelled", "issueSelected", "resized", "embedError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyKanbanComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'huly-kanban',
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [HulyEmbedComponent],
|
|
27
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
|
+
template: `
|
|
29
|
+
<huly-embed
|
|
30
|
+
component="kanban"
|
|
31
|
+
[project]="project"
|
|
32
|
+
[externalUser]="externalUser"
|
|
33
|
+
(issueSelected)="issueSelected.emit($event)"
|
|
34
|
+
>
|
|
35
|
+
<ng-content select="[loading]" loading></ng-content>
|
|
36
|
+
<ng-content select="[error]" error></ng-content>
|
|
37
|
+
</huly-embed>
|
|
38
|
+
`,
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { project: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], externalUser: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], issueSelected: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1rYW5iYW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2h1bHkta2FuYmFuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQW1CNUQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixPQUFPLENBQVU7SUFDakIsWUFBWSxDQUFVO0lBRVosYUFBYSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO3dHQUpuRSxtQkFBbUI7NEZBQW5CLG1CQUFtQixrTEFacEI7Ozs7Ozs7Ozs7R0FVVCw0REFaUyxrQkFBa0I7OzRGQWNqQixtQkFBbUI7a0JBakIvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtpQkFDRjs4QkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFYSxhQUFhO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEh1bHlJc3N1ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAamFyaWFoaC9jb3JlJztcbmltcG9ydCB7IEh1bHlFbWJlZENvbXBvbmVudCB9IGZyb20gJy4vaHVseS1lbWJlZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodWx5LWthbmJhbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtIdWx5RW1iZWRDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aHVseS1lbWJlZFxuICAgICAgY29tcG9uZW50PVwia2FuYmFuXCJcbiAgICAgIFtwcm9qZWN0XT1cInByb2plY3RcIlxuICAgICAgW2V4dGVybmFsVXNlcl09XCJleHRlcm5hbFVzZXJcIlxuICAgICAgKGlzc3VlU2VsZWN0ZWQpPVwiaXNzdWVTZWxlY3RlZC5lbWl0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsb2FkaW5nXVwiIGxvYWRpbmc+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Vycm9yXVwiIGVycm9yPjwvbmctY29udGVudD5cbiAgICA8L2h1bHktZW1iZWQ+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEh1bHlLYW5iYW5Db21wb25lbnQge1xuICBASW5wdXQoKSBwcm9qZWN0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRlcm5hbFVzZXI/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzc3VlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh1bHlJc3N1ZVNlbGVjdGVkRXZlbnQ+KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const HULY_EMBED_CONFIG = new InjectionToken('HulyEmbedConfig');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1lbWJlZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Byb3ZpZGVycy9odWx5LWVtYmVkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgSHVseUVtYmVkQ29uZmlnIH0gZnJvbSAnQGphcmlhaGgvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBIVUxZX0VNQkVEX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIdWx5RW1iZWRDb25maWc+KCdIdWx5RW1iZWRDb25maWcnKTtcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { HULY_EMBED_CONFIG } from './huly-embed.config';
|
|
3
|
+
import { HulyEmbedService } from '../services/huly-embed.service';
|
|
4
|
+
import { HulyMessageService } from '../services/huly-message.service';
|
|
5
|
+
export function provideHulyEmbed(config) {
|
|
6
|
+
return makeEnvironmentProviders([
|
|
7
|
+
{ provide: HULY_EMBED_CONFIG, useValue: config },
|
|
8
|
+
HulyEmbedService,
|
|
9
|
+
HulyMessageService,
|
|
10
|
+
]);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1lbWJlZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJvdmlkZXJzL2h1bHktZW1iZWQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBdUI7SUFDdEQsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQ2hELGdCQUFnQjtRQUNoQixrQkFBa0I7S0FDbkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgdHlwZSBFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBIdWx5RW1iZWRDb25maWcgfSBmcm9tICdAamFyaWFoaC9jb3JlJztcbmltcG9ydCB7IEhVTFlfRU1CRURfQ09ORklHIH0gZnJvbSAnLi9odWx5LWVtYmVkLmNvbmZpZyc7XG5pbXBvcnQgeyBIdWx5RW1iZWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHVseS1lbWJlZC5zZXJ2aWNlJztcbmltcG9ydCB7IEh1bHlNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h1bHktbWVzc2FnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIdWx5RW1iZWQoY29uZmlnOiBIdWx5RW1iZWRDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHsgcHJvdmlkZTogSFVMWV9FTUJFRF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICBIdWx5RW1iZWRTZXJ2aWNlLFxuICAgIEh1bHlNZXNzYWdlU2VydmljZSxcbiAgXSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { fetchEmbedToken, buildEmbedUrl, createTokenRefresher, getParentOrigin, } from '@jariahh/core';
|
|
3
|
+
import { HULY_EMBED_CONFIG } from '../providers/huly-embed.config';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class HulyEmbedService {
|
|
6
|
+
config;
|
|
7
|
+
allowedOrigins;
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.config = config;
|
|
10
|
+
this.allowedOrigins = config.allowedOrigins ?? [new URL(config.hulyUrl).origin];
|
|
11
|
+
}
|
|
12
|
+
fetchToken(component) {
|
|
13
|
+
return fetchEmbedToken(this.config.tokenEndpoint, component);
|
|
14
|
+
}
|
|
15
|
+
buildUrl(component, token, options) {
|
|
16
|
+
return buildEmbedUrl({
|
|
17
|
+
hulyUrl: this.config.hulyUrl,
|
|
18
|
+
component,
|
|
19
|
+
token,
|
|
20
|
+
project: options?.project ?? this.config.defaultProject,
|
|
21
|
+
issue: options?.issue,
|
|
22
|
+
externalUser: options?.externalUser,
|
|
23
|
+
parentOrigin: getParentOrigin(),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
createRefresher(component, initialExpiresIn, onToken, onError) {
|
|
27
|
+
return createTokenRefresher(this.config.tokenEndpoint, component, this.config.tokenRefreshBuffer ?? 60, initialExpiresIn, onToken, onError);
|
|
28
|
+
}
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyEmbedService, deps: [{ token: HULY_EMBED_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyEmbedService });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyEmbedService, decorators: [{
|
|
33
|
+
type: Injectable
|
|
34
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
35
|
+
type: Inject,
|
|
36
|
+
args: [HULY_EMBED_CONFIG]
|
|
37
|
+
}] }] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1lbWJlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9odWx5LWVtYmVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUlMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBR25FLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsTUFBTSxDQUFrQjtJQUN4QixjQUFjLENBQVc7SUFFbEMsWUFBdUMsTUFBdUI7UUFDNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBNkI7UUFDdEMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFFBQVEsQ0FDTixTQUE2QixFQUM3QixLQUFhLEVBQ2IsT0FBcUU7UUFFckUsT0FBTyxhQUFhLENBQUM7WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM1QixTQUFTO1lBQ1QsS0FBSztZQUNMLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYztZQUN2RCxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUs7WUFDckIsWUFBWSxFQUFFLE9BQU8sRUFBRSxZQUFZO1lBQ25DLFlBQVksRUFBRSxlQUFlLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FDYixTQUE2QixFQUM3QixnQkFBd0IsRUFDeEIsT0FBK0MsRUFDL0MsT0FBK0I7UUFFL0IsT0FBTyxvQkFBb0IsQ0FDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQ3pCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFDcEMsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7d0dBM0NVLGdCQUFnQixrQkFJUCxpQkFBaUI7NEdBSjFCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBS0ksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHR5cGUgSHVseUVtYmVkQ29uZmlnLFxuICB0eXBlIEh1bHlFbWJlZENvbXBvbmVudCxcbiAgdHlwZSBFbWJlZFRva2VuUmVzcG9uc2UsXG4gIGZldGNoRW1iZWRUb2tlbixcbiAgYnVpbGRFbWJlZFVybCxcbiAgY3JlYXRlVG9rZW5SZWZyZXNoZXIsXG4gIGdldFBhcmVudE9yaWdpbixcbn0gZnJvbSAnQGphcmlhaGgvY29yZSc7XG5pbXBvcnQgeyBIVUxZX0VNQkVEX0NPTkZJRyB9IGZyb20gJy4uL3Byb3ZpZGVycy9odWx5LWVtYmVkLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdWx5RW1iZWRTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgY29uZmlnOiBIdWx5RW1iZWRDb25maWc7XG4gIHJlYWRvbmx5IGFsbG93ZWRPcmlnaW5zOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEhVTFlfRU1CRURfQ09ORklHKSBjb25maWc6IEh1bHlFbWJlZENvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuYWxsb3dlZE9yaWdpbnMgPSBjb25maWcuYWxsb3dlZE9yaWdpbnMgPz8gW25ldyBVUkwoY29uZmlnLmh1bHlVcmwpLm9yaWdpbl07XG4gIH1cblxuICBmZXRjaFRva2VuKGNvbXBvbmVudDogSHVseUVtYmVkQ29tcG9uZW50KTogUHJvbWlzZTxFbWJlZFRva2VuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gZmV0Y2hFbWJlZFRva2VuKHRoaXMuY29uZmlnLnRva2VuRW5kcG9pbnQsIGNvbXBvbmVudCk7XG4gIH1cblxuICBidWlsZFVybChcbiAgICBjb21wb25lbnQ6IEh1bHlFbWJlZENvbXBvbmVudCxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IHByb2plY3Q/OiBzdHJpbmc7IGlzc3VlPzogc3RyaW5nOyBleHRlcm5hbFVzZXI/OiBzdHJpbmcgfVxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiBidWlsZEVtYmVkVXJsKHtcbiAgICAgIGh1bHlVcmw6IHRoaXMuY29uZmlnLmh1bHlVcmwsXG4gICAgICBjb21wb25lbnQsXG4gICAgICB0b2tlbixcbiAgICAgIHByb2plY3Q6IG9wdGlvbnM/LnByb2plY3QgPz8gdGhpcy5jb25maWcuZGVmYXVsdFByb2plY3QsXG4gICAgICBpc3N1ZTogb3B0aW9ucz8uaXNzdWUsXG4gICAgICBleHRlcm5hbFVzZXI6IG9wdGlvbnM/LmV4dGVybmFsVXNlcixcbiAgICAgIHBhcmVudE9yaWdpbjogZ2V0UGFyZW50T3JpZ2luKCksXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVSZWZyZXNoZXIoXG4gICAgY29tcG9uZW50OiBIdWx5RW1iZWRDb21wb25lbnQsXG4gICAgaW5pdGlhbEV4cGlyZXNJbjogbnVtYmVyLFxuICAgIG9uVG9rZW46IChyZXNwb25zZTogRW1iZWRUb2tlblJlc3BvbnNlKSA9PiB2b2lkLFxuICAgIG9uRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHZvaWRcbiAgKTogKCkgPT4gdm9pZCB7XG4gICAgcmV0dXJuIGNyZWF0ZVRva2VuUmVmcmVzaGVyKFxuICAgICAgdGhpcy5jb25maWcudG9rZW5FbmRwb2ludCxcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIHRoaXMuY29uZmlnLnRva2VuUmVmcmVzaEJ1ZmZlciA/PyA2MCxcbiAgICAgIGluaXRpYWxFeHBpcmVzSW4sXG4gICAgICBvblRva2VuLFxuICAgICAgb25FcnJvclxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { isHulyMessage, parseHulyMessage } from '@jariahh/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./huly-embed.service";
|
|
6
|
+
export class HulyMessageService {
|
|
7
|
+
embedService;
|
|
8
|
+
ngZone;
|
|
9
|
+
subject = new Subject();
|
|
10
|
+
listener;
|
|
11
|
+
messages$ = this.subject.asObservable();
|
|
12
|
+
constructor(embedService, ngZone) {
|
|
13
|
+
this.embedService = embedService;
|
|
14
|
+
this.ngZone = ngZone;
|
|
15
|
+
this.listener = (event) => {
|
|
16
|
+
if (!isHulyMessage(event, this.embedService.allowedOrigins)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const message = parseHulyMessage(event);
|
|
20
|
+
if (message === null) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.ngZone.run(() => {
|
|
24
|
+
this.subject.next(message);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
this.ngZone.runOutsideAngular(() => {
|
|
28
|
+
window.addEventListener('message', this.listener);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
ngOnDestroy() {
|
|
32
|
+
window.removeEventListener('message', this.listener);
|
|
33
|
+
this.subject.complete();
|
|
34
|
+
}
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyMessageService, deps: [{ token: i1.HulyEmbedService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyMessageService });
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HulyMessageService, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: () => [{ type: i1.HulyEmbedService }, { type: i0.NgZone }] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVseS1tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2h1bHktbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBeUIsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJdkYsTUFBTSxPQUFPLGtCQUFrQjtJQU9WO0lBQ0E7SUFQRixPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7SUFDMUMsUUFBUSxDQUFnQztJQUVoRCxTQUFTLEdBQWlDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFL0UsWUFDbUIsWUFBOEIsRUFDOUIsTUFBYztRQURkLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRS9CLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUM1RCxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNyQixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dHQWpDVSxrQkFBa0I7NEdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHlwZSBIdWx5RW1iZWRNZXNzYWdlLCBpc0h1bHlNZXNzYWdlLCBwYXJzZUh1bHlNZXNzYWdlIH0gZnJvbSAnQGphcmlhaGgvY29yZSc7XG5pbXBvcnQgeyBIdWx5RW1iZWRTZXJ2aWNlIH0gZnJvbSAnLi9odWx5LWVtYmVkLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHVseU1lc3NhZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8SHVseUVtYmVkTWVzc2FnZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lcjogKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQ7XG5cbiAgcmVhZG9ubHkgbWVzc2FnZXMkOiBPYnNlcnZhYmxlPEh1bHlFbWJlZE1lc3NhZ2U+ID0gdGhpcy5zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW1iZWRTZXJ2aWNlOiBIdWx5RW1iZWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5saXN0ZW5lciA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWlzSHVseU1lc3NhZ2UoZXZlbnQsIHRoaXMuZW1iZWRTZXJ2aWNlLmFsbG93ZWRPcmlnaW5zKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBwYXJzZUh1bHlNZXNzYWdlKGV2ZW50KTtcbiAgICAgIGlmIChtZXNzYWdlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQobWVzc2FnZSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLmxpc3RlbmVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5saXN0ZW5lcik7XG4gICAgdGhpcy5zdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|