@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.
@@ -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==