c3-components 0.8.6 → 0.9.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.
Files changed (67) hide show
  1. package/_index.scss +1 -1
  2. package/fesm2022/c3-components.mjs +438 -225
  3. package/fesm2022/c3-components.mjs.map +1 -1
  4. package/lib/c3-dialog/components/c3-dialog-embed-child.component.d.ts +18 -0
  5. package/lib/c3-dialog/services/c3-dialog.service.d.ts +10 -1
  6. package/lib/c3-dropdown/styles/_c3-dropdown.scss +19 -4
  7. package/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.d.ts +5 -5
  8. package/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.d.ts +1 -1
  9. package/lib/c3-file-viewer/models/file-metadata.d.ts +7 -0
  10. package/lib/c3-file-viewer/models/file-viewer.d.ts +6 -5
  11. package/lib/c3-prevent-event/c3-prevent-click-event.directive.d.ts +13 -0
  12. package/lib/c3-prevent-event/c3-prevent-keyboard-event.directive.d.ts +17 -0
  13. package/lib/c3-prevent-event/c3-stop-click-propagation.directive.d.ts +6 -0
  14. package/lib/c3-prevent-event/index.d.ts +3 -0
  15. package/lib/c3-styles/_c3-core.scss +4 -0
  16. package/lib/c3-styles/_utils.scss +5 -1
  17. package/package.json +1 -3
  18. package/public-api.d.ts +4 -0
  19. package/esm2022/c3-components.mjs +0 -5
  20. package/esm2022/lib/c3-auto-animate/c3-auto-animate.directive.mjs +0 -23
  21. package/esm2022/lib/c3-dialog/c3-dialog.module.mjs +0 -63
  22. package/esm2022/lib/c3-dialog/components/c3-dialog-alert.component.mjs +0 -45
  23. package/esm2022/lib/c3-dialog/components/c3-dialog-confirm.component.mjs +0 -51
  24. package/esm2022/lib/c3-dialog/components/c3-dialog-embed-child.component.mjs +0 -94
  25. package/esm2022/lib/c3-dialog/components/c3-dialog-prompt.component.mjs +0 -95
  26. package/esm2022/lib/c3-dialog/services/c3-dialog.service.mjs +0 -158
  27. package/esm2022/lib/c3-dropdown/c3-dropdown.module.mjs +0 -20
  28. package/esm2022/lib/c3-dropdown/components/c3-dropdown.component.mjs +0 -45
  29. package/esm2022/lib/c3-dropdown/directives/c3-dropdown.trigger.mjs +0 -128
  30. package/esm2022/lib/c3-expansion/c3-expansion.module.mjs +0 -43
  31. package/esm2022/lib/c3-expansion/components/c3-expansion/c3-expansion.component.mjs +0 -43
  32. package/esm2022/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.mjs +0 -25
  33. package/esm2022/lib/c3-file-displayer/c3-file-display-card/c3-file-display-card.component.mjs +0 -48
  34. package/esm2022/lib/c3-file-displayer/c3-file-display-grid/c3-file-display-grid.component.mjs +0 -46
  35. package/esm2022/lib/c3-file-displayer/c3-file-display-icon/c3-file-display-icon.component.mjs +0 -56
  36. package/esm2022/lib/c3-file-displayer/c3-file-display-list/c3-file-display-list.component.mjs +0 -61
  37. package/esm2022/lib/c3-file-displayer/c3-file-displayer.module.mjs +0 -43
  38. package/esm2022/lib/c3-file-viewer/c3-file-viewer.module.mjs +0 -51
  39. package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.mjs +0 -17
  40. package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.mjs +0 -20
  41. package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.mjs +0 -23
  42. package/esm2022/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.mjs +0 -32
  43. package/esm2022/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.mjs +0 -86
  44. package/esm2022/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.mjs +0 -40
  45. package/esm2022/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.mjs +0 -26
  46. package/esm2022/lib/c3-file-viewer/consts/default.config.mjs +0 -40
  47. package/esm2022/lib/c3-file-viewer/directives/full-screen.directive.mjs +0 -66
  48. package/esm2022/lib/c3-file-viewer/models/custom-file-event.model.mjs +0 -7
  49. package/esm2022/lib/c3-file-viewer/models/file-metadata.mjs +0 -2
  50. package/esm2022/lib/c3-file-viewer/models/file-viewer-config.model.mjs +0 -2
  51. package/esm2022/lib/c3-file-viewer/models/file-viewer.mjs +0 -206
  52. package/esm2022/lib/c3-file-viewer/models/http.client.mjs +0 -2
  53. package/esm2022/lib/c3-flowing-menu/c3-flowing-menu.module.mjs +0 -32
  54. package/esm2022/lib/c3-flowing-menu/components/c3-flowing-menu/c3-flowing-menu.component.mjs +0 -41
  55. package/esm2022/lib/c3-flowing-menu/components/c3-flowing-menu-item/c3-flowing-menu-item.component.mjs +0 -20
  56. package/esm2022/lib/c3-flowing-menu/components/c3-flowing-menu-item-content/c3-flowing-menu-item-content.component.mjs +0 -11
  57. package/esm2022/lib/c3-safe-url/pipes/c3-safe-url.pipe.mjs +0 -21
  58. package/esm2022/lib/c3-select-on-focus/c3-select-on-focus.directive.mjs +0 -20
  59. package/esm2022/lib/c3-signals/c3-boolean-signal.mjs +0 -28
  60. package/esm2022/lib/c3-trace-card/c3-trace-card.module.mjs +0 -44
  61. package/esm2022/lib/c3-trace-card/components/c3-trace-card/c3-trace-card.component.mjs +0 -28
  62. package/esm2022/lib/c3-trace-card/components/c3-trace-card-content/c3-trace-card-content.component.mjs +0 -11
  63. package/esm2022/lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component.mjs +0 -11
  64. package/esm2022/lib/c3-trace-card/directives/align-left.directive.mjs +0 -21
  65. package/esm2022/lib/c3-trace-card/directives/align-right.directive.mjs +0 -21
  66. package/esm2022/lib/c3-tree/c3-tree.component.mjs +0 -47
  67. package/esm2022/public-api.mjs +0 -81
@@ -7,12 +7,21 @@ export declare class C3DialogEmbedChildComponent<C> implements AfterViewInit {
7
7
  data: {
8
8
  component: ComponentType<C>;
9
9
  inputs?: Partial<Record<keyof C, unknown>>;
10
+ classActions?: string;
11
+ classContainer?: string;
12
+ classContent?: string;
10
13
  toolbar?: {
11
14
  title: string;
12
15
  closeBtn?: boolean;
13
16
  closeColor?: string;
14
17
  color?: string;
15
18
  };
19
+ actions?: {
20
+ label: string;
21
+ apperance?: 'basic' | 'raised' | 'stroked' | 'flat';
22
+ class?: string;
23
+ action: () => void;
24
+ }[];
16
25
  };
17
26
  private _cdr;
18
27
  target: ViewContainerRef;
@@ -20,12 +29,21 @@ export declare class C3DialogEmbedChildComponent<C> implements AfterViewInit {
20
29
  constructor(dialogRef: MatDialogRef<C3DialogEmbedChildComponent<C>>, data: {
21
30
  component: ComponentType<C>;
22
31
  inputs?: Partial<Record<keyof C, unknown>>;
32
+ classActions?: string;
33
+ classContainer?: string;
34
+ classContent?: string;
23
35
  toolbar?: {
24
36
  title: string;
25
37
  closeBtn?: boolean;
26
38
  closeColor?: string;
27
39
  color?: string;
28
40
  };
41
+ actions?: {
42
+ label: string;
43
+ apperance?: 'basic' | 'raised' | 'stroked' | 'flat';
44
+ class?: string;
45
+ action: () => void;
46
+ }[];
29
47
  }, _cdr: ChangeDetectorRef);
30
48
  ngAfterViewInit(): void;
31
49
  private _getInputProperties;
@@ -16,6 +16,15 @@ export type C3CreateDialogFromComponentConfig<C> = MatDialogConfig<Partial<Recor
16
16
  closeColor?: string;
17
17
  color?: string;
18
18
  };
19
+ classActions?: string;
20
+ classContainer?: string;
21
+ classContent?: string;
22
+ actions?: {
23
+ label: string;
24
+ color?: string;
25
+ apperance?: 'basic' | 'raised' | 'stroked' | 'flat';
26
+ action: () => void;
27
+ }[];
19
28
  };
20
29
  export type C3CreateDialogFromComponentResult<C> = {
21
30
  _containerInstance: MatDialogContainer;
@@ -60,7 +69,7 @@ export declare class C3DialogService {
60
69
  * @param {C3CreateDialogFromComponentConfig<C>} config Configuration options for the dialog. See MatDialogConfig below.
61
70
  * @returns {MatDialogRef<C> & {component: ComponentRef<C> | undefined}} The dialog reference.
62
71
  */
63
- createDialogFromComponent<C>({ component, toolbar, data, ...config }: C3CreateDialogFromComponentConfig<C>): C3CreateDialogFromComponentResult<C>;
72
+ createDialogFromComponent<C>({ component, toolbar, data, classContainer, classContent, classActions, actions, ...config }: C3CreateDialogFromComponentConfig<C>): C3CreateDialogFromComponentResult<C>;
64
73
  alert(text: string, data?: AlertConfig): Observable<any>;
65
74
  private createC3DialogResult;
66
75
  static ɵfac: i0.ɵɵFactoryDeclaration<C3DialogService, never>;
@@ -1,10 +1,25 @@
1
1
  @use "@angular/material" as mat;
2
2
 
3
3
  @mixin c3-material-dropdown($theme) {
4
- $is-dark-theme: mat.get-theme-type($theme) == dark;
5
- $primary: mat.get-theme-color($theme, primary);
6
- $accent: mat.get-theme-color($theme, accent);
7
- $warn: mat.get-theme-color($theme, warn);
4
+ $bg-card: mat.get-theme-color($theme, background, card);
5
+ $color-text: mat.get-theme-color($theme, foreground, text);
6
+
7
+ .c3-dropdown-panel {
8
+ background: $bg-card;
9
+ color: $color-text;
10
+ border-radius: 4px;
11
+ min-width: 112px;
12
+ overflow: auto;
13
+ max-height: calc(100vh - 48px);
14
+ border-radius: 4px;
15
+ outline: 0;
16
+ padding: 4px;
17
+ @include mat.elevation-transition();
18
+ @include mat.elevation(8);
19
+ }
20
+ }
21
+
22
+ @mixin c3-material-dropdown-m3($theme) {
8
23
  $bg-card: mat.get-theme-color($theme, background, card);
9
24
  $color-text: mat.get-theme-color($theme, foreground, text);
10
25
 
@@ -4,16 +4,16 @@ import * as i0 from "@angular/core";
4
4
  export type C3FileCardSize = '16' | '32' | '64' | '128' | '256';
5
5
  export declare class C3FileDisplayCardComponent {
6
6
  readonly fileObjectUrl: import("@angular/core").InputSignal<(FileMetadata & {
7
- objectUrl?: Observable<string> | undefined;
7
+ objectUrl?: Observable<string>;
8
8
  }) | null>;
9
9
  readonly displayFn: import("@angular/core").InputSignal<(file: FileMetadata) => string>;
10
10
  readonly deletable: import("@angular/core").InputSignal<boolean>;
11
11
  readonly size: import("@angular/core").InputSignal<C3FileCardSize>;
12
12
  readonly onDelete: import("@angular/core").OutputEmitterRef<void>;
13
- getFileType(): string;
14
- getFileObjectUrl(): Observable<string> | null;
15
- getFileName(): string;
16
- getDisplayName(): string;
13
+ readonly getFileType: import("@angular/core").Signal<"image" | "application" | "video" | "unknown">;
14
+ readonly getFileObjectUrl: import("@angular/core").Signal<Observable<string> | null>;
15
+ readonly getFileName: import("@angular/core").Signal<string>;
16
+ readonly getDisplayName: import("@angular/core").Signal<string>;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<C3FileDisplayCardComponent, never>;
18
18
  static ɵcmp: i0.ɵɵComponentDeclaration<C3FileDisplayCardComponent, "c3-file-display-card", never, { "fileObjectUrl": { "alias": "fileObjectUrl"; "required": true; "isSignal": true; }; "displayFn": { "alias": "displayFn"; "required": false; "isSignal": true; }; "deletable": { "alias": "deletable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "onDelete": "onDelete"; }, never, never, true, never>;
19
19
  }
@@ -18,5 +18,5 @@ export declare class C3FileDisplayListComponent {
18
18
  constructor();
19
19
  openDialog($event: MouseEvent, index: number): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<C3FileDisplayListComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<C3FileDisplayListComponent, "c3-file-display-list", never, { "files": { "alias": "files"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "displayFn": { "alias": "displayFn"; "required": false; "isSignal": true; }; "deletable": { "alias": "deletable"; "required": false; "isSignal": true; }; }, { "onDelete": "onDelete"; }, never, never, true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<C3FileDisplayListComponent, "c3-file-display-list", never, { "files": { "alias": "files"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "displayFn": { "alias": "displayFn"; "required": false; "isSignal": true; }; "deletable": { "alias": "deletable"; "required": false; "isSignal": true; }; }, { "onDelete": "onDelete"; }, never, ["*"], true, never>;
22
22
  }
@@ -1,4 +1,10 @@
1
1
  import { Observable } from 'rxjs';
2
+ export type VariantFile = {
3
+ size: number;
4
+ fileName: string;
5
+ contentType: string;
6
+ location: string;
7
+ };
2
8
  export interface FileMetadata {
3
9
  name: string;
4
10
  size?: number;
@@ -9,4 +15,5 @@ export interface FileMetadata {
9
15
  location: string;
10
16
  objectUrl?: Observable<string>;
11
17
  metadata?: Record<string, any>;
18
+ alternativeVersions?: VariantFile[];
12
19
  }
@@ -1,7 +1,7 @@
1
1
  import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { C3FileViewerConfig } from './file-viewer-config.model';
3
3
  import { HttpClient } from '@angular/common/http';
4
- import { FileMetadata } from './file-metadata';
4
+ import { FileMetadata, VariantFile } from './file-metadata';
5
5
  export declare class C3FileViewer {
6
6
  private _config;
7
7
  private client;
@@ -28,12 +28,13 @@ export declare class C3FileViewer {
28
28
  };
29
29
  styleHeight: string;
30
30
  hovered: boolean;
31
- set files(value: FileMetadata[]);
31
+ set files(newFiles: FileMetadata[]);
32
32
  get files(): FileMetadata[];
33
33
  private _files;
34
34
  filesObjectUrl: Array<FileMetadata & {
35
35
  objectUrl: Observable<string>;
36
36
  }>;
37
+ private locationBlobMap;
37
38
  private scale;
38
39
  private rotation;
39
40
  private translateX;
@@ -45,7 +46,7 @@ export declare class C3FileViewer {
45
46
  files?: FileMetadata[];
46
47
  client: HttpClient;
47
48
  });
48
- createObjectURL(file: FileMetadata): Observable<string>;
49
+ createObjectURL(file: FileMetadata | VariantFile): Observable<string>;
49
50
  getFile(location: string): Observable<Blob>;
50
51
  previousImage(event: KeyboardEvent | MouseEvent): void;
51
52
  nextImage(event: KeyboardEvent | MouseEvent): void;
@@ -54,8 +55,8 @@ export declare class C3FileViewer {
54
55
  scrollZoom(evt: WheelEvent): boolean;
55
56
  rotateClockwise(): void;
56
57
  rotateCounterClockwise(): void;
57
- onLoad(file: FileMetadata): void;
58
- onLoadStart(file: FileMetadata): void;
58
+ onLoad(): void;
59
+ onLoadStart(): void;
59
60
  imageNotFound(file: FileMetadata): void;
60
61
  onDragOver(evt: DragEvent): void;
61
62
  onDragStart(evt: DragEvent): void;
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * A directive that prevents the default action and stops event propagation on click events.
4
+ */
5
+ export declare class C3PreventClickDirective {
6
+ /**
7
+ * HostListener for the 'click' event.
8
+ * @param {MouseEvent} event - The MouseEvent object representing the click event.
9
+ */
10
+ onClick(event: MouseEvent): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<C3PreventClickDirective, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<C3PreventClickDirective, "[c3-prevent-click]", never, {}, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,17 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * A directive that prevents the default action and stops event propagation on specified keyboard events.
4
+ */
5
+ export declare class C3PreventKeyboardEventDirective {
6
+ /**
7
+ * The keyboard key to prevent the default action and stop event propagation for. Defaults to 'enter'.
8
+ */
9
+ key: string;
10
+ /**
11
+ * HostListener for the 'keydown' event.
12
+ * @param {KeyboardEvent} event - The KeyboardEvent object representing the keydown event.
13
+ */
14
+ onKeyDown(event: KeyboardEvent): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<C3PreventKeyboardEventDirective, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<C3PreventKeyboardEventDirective, "[c3-prevent-keyboard-event]", never, { "key": { "alias": "key"; "required": false; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class C3StopPropagationDirective {
3
+ onClick(event: MouseEvent): void;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<C3StopPropagationDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<C3StopPropagationDirective, "[c3-stop-click-propagation]", never, {}, {}, never, never, true, never>;
6
+ }
@@ -0,0 +1,3 @@
1
+ export * from './c3-prevent-click-event.directive';
2
+ export * from './c3-prevent-keyboard-event.directive';
3
+ export * from './c3-stop-click-propagation.directive';
@@ -11,3 +11,7 @@
11
11
  @include c3-expansion($theme);
12
12
  @include c3-flowing-menu($theme);
13
13
  }
14
+
15
+ @mixin c3-core-m3($theme) {
16
+ @include c3-material-dropdown-m3($theme);
17
+ }
@@ -1,5 +1,6 @@
1
1
  @use "sass:map";
2
2
  @use "sass:meta";
3
+ @use "sass:color";
3
4
 
4
5
  @function get-contrast-color-from-palette($palette, $hue) {
5
6
  @return map.get(map.get($palette, contrast), $hue);
@@ -21,7 +22,10 @@
21
22
  @return $color;
22
23
  }
23
24
 
24
- @return rgba($color, if($opacity == null, opacity($color), $opacity));
25
+ @if $opacity == null {
26
+ $opacity: color.channel($color, "alpha");
27
+ }
28
+ @return color.change($color, $alpha: $opacity);
25
29
  }
26
30
 
27
31
  @function get-color-config($theme, $default: null) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c3-components",
3
- "version": "0.8.6",
3
+ "version": "0.9.0",
4
4
  "description": "C3 Components Library",
5
5
  "author": "c3ulnta0rk",
6
6
  "license": "MIT",
@@ -21,8 +21,6 @@
21
21
  ".": {
22
22
  "sass": "./_index.scss",
23
23
  "types": "./index.d.ts",
24
- "esm2022": "./esm2022/c3-components.mjs",
25
- "esm": "./esm2022/c3-components.mjs",
26
24
  "default": "./fesm2022/c3-components.mjs"
27
25
  },
28
26
  "./package.json": {
package/public-api.d.ts CHANGED
@@ -75,3 +75,7 @@ export * from './lib/c3-trace-card/components/c3-trace-card-content/c3-trace-car
75
75
  export * from './lib/c3-trace-card/components/c3-trace-card-title/c3-trace-card-title.component';
76
76
  export * from './lib/c3-trace-card/directives/align-left.directive';
77
77
  export * from './lib/c3-trace-card/directives/align-right.directive';
78
+ /**
79
+ * C3 Prevent Event
80
+ */
81
+ export * from './lib/c3-prevent-event/index';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2MzLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import autoAnimate from '@formkit/auto-animate';
3
- import * as i0 from "@angular/core";
4
- export class C3AutoAnimateDirective {
5
- constructor(el) {
6
- this.el = el;
7
- }
8
- ngAfterViewInit() {
9
- autoAnimate(this.el.nativeElement, this.options);
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3AutoAnimateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: C3AutoAnimateDirective, isStandalone: true, selector: "[c3AutoAnimate]", inputs: { options: "options" }, ngImport: i0 }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3AutoAnimateDirective, decorators: [{
15
- type: Directive,
16
- args: [{
17
- selector: '[c3AutoAnimate]',
18
- standalone: true,
19
- }]
20
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{
21
- type: Input
22
- }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtYXV0by1hbmltYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1hdXRvLWFuaW1hdGUvYzMtYXV0by1hbmltYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxXQUdOLE1BQU0sdUJBQXVCLENBQUM7O0FBTS9CLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBRyxDQUFDO0lBRXRDLGVBQWU7UUFDYixXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7OEdBTlUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUVVLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBhdXRvQW5pbWF0ZSwge1xuICBBdXRvQW5pbWF0ZU9wdGlvbnMsXG4gIEF1dG9BbmltYXRpb25QbHVnaW4sXG59IGZyb20gJ0Bmb3Jta2l0L2F1dG8tYW5pbWF0ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjM0F1dG9BbmltYXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEMzQXV0b0FuaW1hdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgb3B0aW9ucz86IFBhcnRpYWw8QXV0b0FuaW1hdGVPcHRpb25zPiB8IEF1dG9BbmltYXRpb25QbHVnaW47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGF1dG9BbmltYXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5vcHRpb25zKTtcbiAgfVxufVxuIl19
@@ -1,63 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatDialogModule } from '@angular/material/dialog';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import { MatInputModule } from '@angular/material/input';
8
- import { ConfirmDialogComponent } from './components/c3-dialog-confirm.component';
9
- import { C3DialogEmbedChildComponent } from './components/c3-dialog-embed-child.component';
10
- import { C3PromptDialogComponent } from './components/c3-dialog-prompt.component';
11
- import { C3DialogService } from './services/c3-dialog.service';
12
- import { MatToolbarModule } from '@angular/material/toolbar';
13
- import { MatIconModule } from '@angular/material/icon';
14
- import { C3AlertDialogComponent } from './components/c3-dialog-alert.component';
15
- import * as i0 from "@angular/core";
16
- export class C3DialogModule {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: C3DialogModule, declarations: [C3AlertDialogComponent,
19
- ConfirmDialogComponent,
20
- C3PromptDialogComponent,
21
- C3DialogEmbedChildComponent], imports: [CommonModule,
22
- FormsModule,
23
- MatButtonModule,
24
- MatDialogModule,
25
- MatFormFieldModule,
26
- MatIconModule,
27
- MatInputModule,
28
- MatToolbarModule,
29
- ReactiveFormsModule] }); }
30
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogModule, providers: [C3DialogService], imports: [CommonModule,
31
- FormsModule,
32
- MatButtonModule,
33
- MatDialogModule,
34
- MatFormFieldModule,
35
- MatIconModule,
36
- MatInputModule,
37
- MatToolbarModule,
38
- ReactiveFormsModule] }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogModule, decorators: [{
41
- type: NgModule,
42
- args: [{
43
- declarations: [
44
- C3AlertDialogComponent,
45
- ConfirmDialogComponent,
46
- C3PromptDialogComponent,
47
- C3DialogEmbedChildComponent,
48
- ],
49
- imports: [
50
- CommonModule,
51
- FormsModule,
52
- MatButtonModule,
53
- MatDialogModule,
54
- MatFormFieldModule,
55
- MatIconModule,
56
- MatInputModule,
57
- MatToolbarModule,
58
- ReactiveFormsModule,
59
- ],
60
- providers: [C3DialogService],
61
- }]
62
- }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1kaWFsb2cvYzMtZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFzQmhGLE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkFsQnZCLHNCQUFzQjtZQUN0QixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLDJCQUEyQixhQUczQixZQUFZO1lBQ1osV0FBVztZQUNYLGVBQWU7WUFDZixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLG1CQUFtQjsrR0FJVixjQUFjLGFBRmQsQ0FBQyxlQUFlLENBQUMsWUFWMUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixtQkFBbUI7OzJGQUlWLGNBQWM7a0JBcEIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYzMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEMzRGlhbG9nRW1iZWRDaGlsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jMy1kaWFsb2ctZW1iZWQtY2hpbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEMzUHJvbXB0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2MzLWRpYWxvZy1wcm9tcHQuY29tcG9uZW50JztcbmltcG9ydCB7IEMzRGlhbG9nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYzMtZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQzNBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jMy1kaWFsb2ctYWxlcnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQzNBbGVydERpYWxvZ0NvbXBvbmVudCxcbiAgICBDb25maXJtRGlhbG9nQ29tcG9uZW50LFxuICAgIEMzUHJvbXB0RGlhbG9nQ29tcG9uZW50LFxuICAgIEMzRGlhbG9nRW1iZWRDaGlsZENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbQzNEaWFsb2dTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQzNEaWFsb2dNb2R1bGUge31cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/dialog";
5
- import * as i2 from "@angular/material/button";
6
- export class C3AlertDialogComponent {
7
- constructor(dialogRef, data) {
8
- this.dialogRef = dialogRef;
9
- this.data = data;
10
- }
11
- onNoClick() {
12
- this.dialogRef.close();
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3AlertDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: C3AlertDialogComponent, selector: "AlertDialogComponent", ngImport: i0, template: `
16
- <mat-dialog-content>
17
- <div [innerHtml]="data.text"></div>
18
- </mat-dialog-content>
19
- <mat-dialog-actions>
20
- <button mat-button [mat-dialog-close]="true">
21
- {{ data.acceptText || 'ok' }}
22
- </button>
23
- </mat-dialog-actions>
24
- `, isInline: true, dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3AlertDialogComponent, decorators: [{
27
- type: Component,
28
- args: [{
29
- selector: 'AlertDialogComponent',
30
- template: `
31
- <mat-dialog-content>
32
- <div [innerHtml]="data.text"></div>
33
- </mat-dialog-content>
34
- <mat-dialog-actions>
35
- <button mat-button [mat-dialog-close]="true">
36
- {{ data.acceptText || 'ok' }}
37
- </button>
38
- </mat-dialog-actions>
39
- `,
40
- }]
41
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
42
- type: Inject,
43
- args: [MAT_DIALOG_DATA]
44
- }] }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1kaWFsb2cvY29tcG9uZW50cy9jMy1kaWFsb2ctYWxlcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFxQnpFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDUyxTQUErQyxFQUUvQyxJQUFpQjtRQUZqQixjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUUvQyxTQUFJLEdBQUosSUFBSSxDQUFhO0lBQ3ZCLENBQUM7SUFFSixTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQVRVLHNCQUFzQiw4Q0FHdkIsZUFBZTtrR0FIZCxzQkFBc0IsNERBWHZCOzs7Ozs7Ozs7R0FTVDs7MkZBRVUsc0JBQXNCO2tCQWJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7aUJBQ0Y7OzBCQUlJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnRDb25maWcge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBhY2NlcHRUZXh0Pzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdBbGVydERpYWxvZ0NvbXBvbmVudCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgIDxkaXYgW2lubmVySHRtbF09XCJkYXRhLnRleHRcIj48L2Rpdj5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIj5cbiAgICAgICAge3sgZGF0YS5hY2NlcHRUZXh0IHx8ICdvaycgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDM0FsZXJ0RGlhbG9nQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEMzQWxlcnREaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhOiBBbGVydENvbmZpZ1xuICApIHt9XG5cbiAgb25Ob0NsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/dialog";
5
- import * as i2 from "@angular/material/button";
6
- export class ConfirmDialogComponent {
7
- constructor(dialogRef, data) {
8
- this.dialogRef = dialogRef;
9
- this.data = data;
10
- }
11
- onNoClick() {
12
- this.dialogRef.close();
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ConfirmDialogComponent, selector: "ConfirmDialogComponent", ngImport: i0, template: `
16
- <mat-dialog-content>
17
- <div [innerHtml]="data.text"></div>
18
- </mat-dialog-content>
19
- <mat-dialog-actions class="flex flex-row justify-end items-center">
20
- <button mat-button mat-dialog-close [color]="data.reject?.color">
21
- {{ data.reject?.text }}
22
- </button>
23
- <button mat-button [color]="data.accept?.color" [mat-dialog-close]="true">
24
- {{ data.accept?.text }}
25
- </button>
26
- </mat-dialog-actions>
27
- `, isInline: true, dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
30
- type: Component,
31
- args: [{
32
- selector: 'ConfirmDialogComponent',
33
- template: `
34
- <mat-dialog-content>
35
- <div [innerHtml]="data.text"></div>
36
- </mat-dialog-content>
37
- <mat-dialog-actions class="flex flex-row justify-end items-center">
38
- <button mat-button mat-dialog-close [color]="data.reject?.color">
39
- {{ data.reject?.text }}
40
- </button>
41
- <button mat-button [color]="data.accept?.color" [mat-dialog-close]="true">
42
- {{ data.accept?.text }}
43
- </button>
44
- </mat-dialog-actions>
45
- `,
46
- }]
47
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
48
- type: Inject,
49
- args: [MAT_DIALOG_DATA]
50
- }] }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYzMtY29tcG9uZW50cy9zcmMvbGliL2MzLWRpYWxvZy9jb21wb25lbnRzL2MzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBZ0N6RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsU0FBK0MsRUFFL0MsSUFBbUI7UUFGbkIsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFFL0MsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUN6QixDQUFDO0lBRUosU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0FUVSxzQkFBc0IsOENBR3ZCLGVBQWU7a0dBSGQsc0JBQXNCLDhEQWR2Qjs7Ozs7Ozs7Ozs7O0dBWVQ7OzJGQUVVLHNCQUFzQjtrQkFoQmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtpQkFDRjs7MEJBSUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtQ29uZmlnIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgcmVqZWN0Pzoge1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Pzogc3RyaW5nO1xyXG4gIH07XHJcbiAgYWNjZXB0Pzoge1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgfTtcclxuICB3aWR0aD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdDb25maXJtRGlhbG9nQ29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cImRhdGEudGV4dFwiPjwvZGl2PlxyXG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgW2NvbG9yXT1cImRhdGEucmVqZWN0Py5jb2xvclwiPlxyXG4gICAgICAgIHt7IGRhdGEucmVqZWN0Py50ZXh0IH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gW2NvbG9yXT1cImRhdGEuYWNjZXB0Py5jb2xvclwiIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIj5cclxuICAgICAgICB7eyBkYXRhLmFjY2VwdD8udGV4dCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtRGlhbG9nQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb25maXJtRGlhbG9nQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxyXG4gICAgcHVibGljIGRhdGE6IENvbmZpcm1Db25maWdcclxuICApIHt9XHJcblxyXG4gIG9uTm9DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,94 +0,0 @@
1
- import { Component, Inject, ViewChild, ViewContainerRef, signal, } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/dialog";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/button";
7
- import * as i4 from "@angular/material/icon";
8
- import * as i5 from "@angular/material/toolbar";
9
- export class C3DialogEmbedChildComponent {
10
- constructor(dialogRef, data, _cdr) {
11
- this.dialogRef = dialogRef;
12
- this.data = data;
13
- this._cdr = _cdr;
14
- this.createdComponent = signal(null);
15
- }
16
- ngAfterViewInit() {
17
- this.createdComponent.set(this.target.createComponent(this.data.component));
18
- // detect the inputs of the component
19
- if (!this.createdComponent)
20
- this.dialogRef.close(false);
21
- if (this.data.inputs)
22
- this._setInputs(this.data.component, this.data.inputs, this.createdComponent());
23
- this._cdr.detectChanges();
24
- }
25
- _getInputProperties(component) {
26
- const inputs = [];
27
- const declaredInputs = component.prototype?.constructor['ɵcmp']?.declaredInputs;
28
- for (const input of Object.keys(declaredInputs))
29
- inputs.push(input);
30
- return inputs;
31
- }
32
- _setInputs(component, inputs, componentRef) {
33
- const inputProperties = this._getInputProperties(component);
34
- for (const key of inputProperties) {
35
- if (inputs[key]) {
36
- componentRef.setInput(key, inputs[key]);
37
- }
38
- }
39
- return component;
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogEmbedChildComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: C3DialogEmbedChildComponent, selector: "C3DialogEmbedChildComponent", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `<mat-dialog-content>
43
- <mat-toolbar
44
- *ngIf="data.toolbar"
45
- [color]="data.toolbar.color || 'default'"
46
- class="py-1"
47
- >
48
- <span>{{ data.toolbar.title }}</span>
49
- <span class="spacer"></span>
50
- <button
51
- *ngIf="data.toolbar.closeBtn"
52
- mat-icon-button
53
- mat-dialog-close
54
- color="{{ data.toolbar.closeColor }}"
55
- >
56
- <mat-icon>close</mat-icon>
57
- </button>
58
- </mat-toolbar>
59
- <div class="dialog-content">
60
- <ng-template #target></ng-template>
61
- </div>
62
- </mat-dialog-content>`, isInline: true, styles: ["mat-dialog-content{display:flex;flex-direction:column;height:100%}mat-dialog-content .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}mat-dialog-content .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}mat-dialog-content .mat-toolbar span{color:inherit}mat-dialog-content .spacer{flex:1 1 auto;min-width:16px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] }); }
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: C3DialogEmbedChildComponent, decorators: [{
65
- type: Component,
66
- args: [{ selector: 'C3DialogEmbedChildComponent', template: `<mat-dialog-content>
67
- <mat-toolbar
68
- *ngIf="data.toolbar"
69
- [color]="data.toolbar.color || 'default'"
70
- class="py-1"
71
- >
72
- <span>{{ data.toolbar.title }}</span>
73
- <span class="spacer"></span>
74
- <button
75
- *ngIf="data.toolbar.closeBtn"
76
- mat-icon-button
77
- mat-dialog-close
78
- color="{{ data.toolbar.closeColor }}"
79
- >
80
- <mat-icon>close</mat-icon>
81
- </button>
82
- </mat-toolbar>
83
- <div class="dialog-content">
84
- <ng-template #target></ng-template>
85
- </div>
86
- </mat-dialog-content>`, styles: ["mat-dialog-content{display:flex;flex-direction:column;height:100%}mat-dialog-content .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}mat-dialog-content .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}mat-dialog-content .mat-toolbar span{color:inherit}mat-dialog-content .spacer{flex:1 1 auto;min-width:16px}\n"] }]
87
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
88
- type: Inject,
89
- args: [MAT_DIALOG_DATA]
90
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { target: [{
91
- type: ViewChild,
92
- args: ['target', { read: ViewContainerRef }]
93
- }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLWVtYmVkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1kaWFsb2cvY29tcG9uZW50cy9jMy1kaWFsb2ctZW1iZWQtY2hpbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFHTCxTQUFTLEVBRVQsTUFBTSxFQUVOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUF3RHpFLE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsWUFDUyxTQUF1RCxFQUV2RCxJQVNOLEVBQ08sSUFBdUI7UUFaeEIsY0FBUyxHQUFULFNBQVMsQ0FBOEM7UUFFdkQsU0FBSSxHQUFKLElBQUksQ0FTVjtRQUNPLFNBQUksR0FBSixJQUFJLENBQW1CO1FBZmpDLHFCQUFnQixHQUFHLE1BQU0sQ0FBeUIsSUFBSSxDQUFDLENBQUM7SUFnQnJELENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFNUUscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRyxDQUN6QixDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sbUJBQW1CLENBQUksU0FBa0I7UUFDL0MsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sY0FBYyxHQUNsQixTQUFTLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUM7UUFDM0QsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFVBQVUsQ0FDaEIsU0FBa0IsRUFDbEIsTUFBeUMsRUFDekMsWUFBNkI7UUFFN0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELEtBQUssTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDbEMsSUFBSSxNQUFNLENBQUMsR0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQWMsQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQTFEVSwyQkFBMkIsOENBTzVCLGVBQWU7a0dBUGQsMkJBQTJCLGdKQUNULGdCQUFnQiw2QkFyRG5DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt3QkFvQlk7OzJGQWdDWCwyQkFBMkI7a0JBdER2QyxTQUFTOytCQUNFLDZCQUE2QixZQUM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBb0JZOzswQkF1Q25CLE1BQU07MkJBQUMsZUFBZTt5RUFOd0IsTUFBTTtzQkFBdEQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgVHlwZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdDM0RpYWxvZ0VtYmVkQ2hpbGRDb21wb25lbnQnLFxuICB0ZW1wbGF0ZTogYDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC10b29sYmFyXG4gICAgICAqbmdJZj1cImRhdGEudG9vbGJhclwiXG4gICAgICBbY29sb3JdPVwiZGF0YS50b29sYmFyLmNvbG9yIHx8ICdkZWZhdWx0J1wiXG4gICAgICBjbGFzcz1cInB5LTFcIlxuICAgID5cbiAgICAgIDxzcGFuPnt7IGRhdGEudG9vbGJhci50aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic3BhY2VyXCI+PC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImRhdGEudG9vbGJhci5jbG9zZUJ0blwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBtYXQtZGlhbG9nLWNsb3NlXG4gICAgICAgIGNvbG9yPVwie3sgZGF0YS50b29sYmFyLmNsb3NlQ29sb3IgfX1cIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNvbnRlbnRcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGFyZ2V0PjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PmAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIG1hdC1kaWFsb2ctY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAuZGlhbG9nLWNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5tYXQtdG9vbGJhciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zcGFjZXIge1xuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIG1pbi13aWR0aDogMTZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEMzRGlhbG9nRW1iZWRDaGlsZENvbXBvbmVudDxDPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0YXJnZXQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdGFyZ2V0ITogVmlld0NvbnRhaW5lclJlZjtcblxuICBjcmVhdGVkQ29tcG9uZW50ID0gc2lnbmFsPENvbXBvbmVudFJlZjxDPiB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDM0RpYWxvZ0VtYmVkQ2hpbGRDb21wb25lbnQ8Qz4+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhOiB7XG4gICAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz47XG4gICAgICBpbnB1dHM/OiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBDLCB1bmtub3duPj47XG4gICAgICB0b29sYmFyPzoge1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICBjbG9zZUJ0bj86IGJvb2xlYW47XG4gICAgICAgIGNsb3NlQ29sb3I/OiBzdHJpbmc7XG4gICAgICAgIGNvbG9yPzogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9LFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZWRDb21wb25lbnQuc2V0KHRoaXMudGFyZ2V0LmNyZWF0ZUNvbXBvbmVudCh0aGlzLmRhdGEuY29tcG9uZW50KSk7XG5cbiAgICAvLyBkZXRlY3QgdGhlIGlucHV0cyBvZiB0aGUgY29tcG9uZW50XG4gICAgaWYgKCF0aGlzLmNyZWF0ZWRDb21wb25lbnQpIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcblxuICAgIGlmICh0aGlzLmRhdGEuaW5wdXRzKVxuICAgICAgdGhpcy5fc2V0SW5wdXRzKFxuICAgICAgICB0aGlzLmRhdGEuY29tcG9uZW50LFxuICAgICAgICB0aGlzLmRhdGEuaW5wdXRzLFxuICAgICAgICB0aGlzLmNyZWF0ZWRDb21wb25lbnQoKSFcbiAgICAgICk7XG5cbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRQcm9wZXJ0aWVzPEM+KGNvbXBvbmVudDogVHlwZTxDPikge1xuICAgIGNvbnN0IGlucHV0czogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBkZWNsYXJlZElucHV0czogUGFydGlhbDxSZWNvcmQ8a2V5b2YgQywgc3RyaW5nPj4gPVxuICAgICAgY29tcG9uZW50LnByb3RvdHlwZT8uY29uc3RydWN0b3JbJ8m1Y21wJ10/LmRlY2xhcmVkSW5wdXRzO1xuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgT2JqZWN0LmtleXMoZGVjbGFyZWRJbnB1dHMpKSBpbnB1dHMucHVzaChpbnB1dCk7XG5cbiAgICByZXR1cm4gaW5wdXRzO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0SW5wdXRzPEM+KFxuICAgIGNvbXBvbmVudDogVHlwZTxDPixcbiAgICBpbnB1dHM6IFBhcnRpYWw8UmVjb3JkPGtleW9mIEMsIHVua25vd24+PixcbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxDPlxuICApIHtcbiAgICBjb25zdCBpbnB1dFByb3BlcnRpZXMgPSB0aGlzLl9nZXRJbnB1dFByb3BlcnRpZXMoY29tcG9uZW50KTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBpbnB1dFByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChpbnB1dHNba2V5IGFzIGtleW9mIENdKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIGlucHV0c1trZXkgYXMga2V5b2YgQ10pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG59XG4iXX0=