@ecodev/natural 62.1.2 → 63.0.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 (183) hide show
  1. package/fesm2022/ecodev-natural-vanilla.mjs +1193 -0
  2. package/fesm2022/ecodev-natural-vanilla.mjs.map +1 -0
  3. package/fesm2022/ecodev-natural.mjs +436 -425
  4. package/fesm2022/ecodev-natural.mjs.map +1 -1
  5. package/lib/classes/network-activity.service.d.ts +54 -0
  6. package/lib/classes/validators.d.ts +1 -1
  7. package/lib/modules/columns-picker/columns-picker.component.d.ts +2 -2
  8. package/lib/modules/common/services/seo.provider.d.ts +2 -2
  9. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -1
  10. package/lib/modules/file/abstract-file.d.ts +6 -3
  11. package/lib/modules/file/component/file.component.d.ts +2 -2
  12. package/lib/modules/file/file-drop.directive.d.ts +2 -3
  13. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
  14. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -3
  15. package/lib/modules/icon/icon.module.d.ts +2 -2
  16. package/lib/modules/panels/panels.service.d.ts +1 -2
  17. package/lib/modules/relations/relations.component.d.ts +3 -3
  18. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -3
  19. package/lib/modules/search/group/group.component.d.ts +2 -3
  20. package/lib/modules/search/input/input.component.d.ts +5 -5
  21. package/lib/modules/search/search/search.component.d.ts +2 -2
  22. package/lib/modules/select/abstract-select.component.d.ts +3 -3
  23. package/lib/modules/select/select/select.component.d.ts +1 -1
  24. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
  25. package/lib/modules/table-button/table-button.component.d.ts +4 -2
  26. package/package.json +16 -14
  27. package/public-api.d.ts +1 -0
  28. package/src/lib/_natural.theme.scss +1 -2
  29. package/vanilla/index.d.ts +5 -0
  30. package/vanilla/package.json +3 -0
  31. package/vanilla/public-api.d.ts +11 -0
  32. package/vanilla/src/lib/classes/crypto.d.ts +8 -0
  33. package/vanilla/src/lib/classes/data-source.d.ts +32 -0
  34. package/vanilla/src/lib/classes/query-variable-manager-utils.d.ts +2 -0
  35. package/vanilla/src/lib/classes/query-variable-manager.d.ts +91 -0
  36. package/vanilla/src/lib/classes/signing.d.ts +7 -0
  37. package/vanilla/src/lib/classes/utility.d.ts +77 -0
  38. package/vanilla/src/lib/modules/search/classes/graphql-doctrine.types.d.ts +83 -0
  39. package/vanilla/src/lib/modules/search/classes/utils.d.ts +17 -0
  40. package/vanilla/src/lib/modules/search/types/dropdown-component.d.ts +20 -0
  41. package/vanilla/src/lib/modules/search/types/facet.d.ts +75 -0
  42. package/vanilla/src/lib/modules/search/types/values.d.ts +32 -0
  43. package/vanilla/src/lib/services/abstract-model.service.d.ts +244 -0
  44. package/vanilla/src/lib/services/debounce.service.d.ts +52 -0
  45. package/vanilla/src/lib/types/types.d.ts +100 -0
  46. package/esm2022/ecodev-natural.mjs +0 -5
  47. package/esm2022/lib/classes/abstract-detail.mjs +0 -229
  48. package/esm2022/lib/classes/abstract-editable-list.mjs +0 -99
  49. package/esm2022/lib/classes/abstract-list.mjs +0 -461
  50. package/esm2022/lib/classes/abstract-navigable-list.mjs +0 -133
  51. package/esm2022/lib/classes/apollo-utils.mjs +0 -59
  52. package/esm2022/lib/classes/crypto.mjs +0 -23
  53. package/esm2022/lib/classes/cumulative-changes.mjs +0 -50
  54. package/esm2022/lib/classes/data-source.mjs +0 -71
  55. package/esm2022/lib/classes/providers.mjs +0 -13
  56. package/esm2022/lib/classes/query-variable-manager-utils.mjs +0 -14
  57. package/esm2022/lib/classes/query-variable-manager.mjs +0 -172
  58. package/esm2022/lib/classes/rxjs.mjs +0 -54
  59. package/esm2022/lib/classes/signing.mjs +0 -38
  60. package/esm2022/lib/classes/tld.mjs +0 -1476
  61. package/esm2022/lib/classes/utility.mjs +0 -234
  62. package/esm2022/lib/classes/validators.mjs +0 -179
  63. package/esm2022/lib/directives/http-prefix.directive.mjs +0 -47
  64. package/esm2022/lib/modules/alert/alert.service.mjs +0 -53
  65. package/esm2022/lib/modules/alert/confirm.component.mjs +0 -16
  66. package/esm2022/lib/modules/alert/public-api.mjs +0 -6
  67. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +0 -203
  68. package/esm2022/lib/modules/avatar/public-api.mjs +0 -6
  69. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +0 -63
  70. package/esm2022/lib/modules/avatar/sources/gravatar.mjs +0 -29
  71. package/esm2022/lib/modules/avatar/sources/image.mjs +0 -13
  72. package/esm2022/lib/modules/avatar/sources/initials.mjs +0 -39
  73. package/esm2022/lib/modules/avatar/sources/source.mjs +0 -16
  74. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +0 -145
  75. package/esm2022/lib/modules/columns-picker/public-api.mjs +0 -5
  76. package/esm2022/lib/modules/columns-picker/types.mjs +0 -2
  77. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +0 -63
  78. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +0 -93
  79. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +0 -72
  80. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +0 -24
  81. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +0 -17
  82. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +0 -24
  83. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +0 -140
  84. package/esm2022/lib/modules/common/public-api.mjs +0 -14
  85. package/esm2022/lib/modules/common/services/memory-storage.mjs +0 -110
  86. package/esm2022/lib/modules/common/services/seo.provider.mjs +0 -23
  87. package/esm2022/lib/modules/common/services/seo.service.mjs +0 -235
  88. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +0 -84
  89. package/esm2022/lib/modules/detail-header/public-api.mjs +0 -5
  90. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +0 -72
  91. package/esm2022/lib/modules/dialog-trigger/public-api.mjs +0 -5
  92. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +0 -100
  93. package/esm2022/lib/modules/dropdown-components/public-api.mjs +0 -14
  94. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +0 -39
  95. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +0 -173
  96. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +0 -134
  97. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +0 -80
  98. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +0 -48
  99. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +0 -110
  100. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +0 -64
  101. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +0 -175
  102. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +0 -62
  103. package/esm2022/lib/modules/dropdown-components/types.mjs +0 -41
  104. package/esm2022/lib/modules/dropdown-components/utils.mjs +0 -35
  105. package/esm2022/lib/modules/file/abstract-file.mjs +0 -230
  106. package/esm2022/lib/modules/file/component/file.component.mjs +0 -172
  107. package/esm2022/lib/modules/file/file-drop.directive.mjs +0 -111
  108. package/esm2022/lib/modules/file/file-select.directive.mjs +0 -26
  109. package/esm2022/lib/modules/file/file.service.mjs +0 -43
  110. package/esm2022/lib/modules/file/public-api.mjs +0 -9
  111. package/esm2022/lib/modules/file/types.mjs +0 -2
  112. package/esm2022/lib/modules/file/utils.mjs +0 -129
  113. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +0 -30
  114. package/esm2022/lib/modules/fixed-button/public-api.mjs +0 -5
  115. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +0 -56
  116. package/esm2022/lib/modules/fixed-button-detail/public-api.mjs +0 -5
  117. package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +0 -18
  118. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +0 -2
  119. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +0 -2
  120. package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +0 -14
  121. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +0 -398
  122. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +0 -243
  123. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +0 -38
  124. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +0 -22
  125. package/esm2022/lib/modules/hierarchic-selector/public-api.mjs +0 -10
  126. package/esm2022/lib/modules/icon/icon.directive.mjs +0 -96
  127. package/esm2022/lib/modules/icon/icon.module.mjs +0 -33
  128. package/esm2022/lib/modules/icon/public-api.mjs +0 -6
  129. package/esm2022/lib/modules/logger/error-handler.mjs +0 -87
  130. package/esm2022/lib/modules/logger/error.module.mjs +0 -22
  131. package/esm2022/lib/modules/logger/public-api.mjs +0 -6
  132. package/esm2022/lib/modules/matomo/matomo.service.mjs +0 -96
  133. package/esm2022/lib/modules/matomo/public-api.mjs +0 -5
  134. package/esm2022/lib/modules/panels/abstract-panel.mjs +0 -76
  135. package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +0 -12
  136. package/esm2022/lib/modules/panels/panels.component.mjs +0 -27
  137. package/esm2022/lib/modules/panels/panels.module.mjs +0 -10
  138. package/esm2022/lib/modules/panels/panels.service.mjs +0 -329
  139. package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +0 -75
  140. package/esm2022/lib/modules/panels/public-api.mjs +0 -11
  141. package/esm2022/lib/modules/panels/types.mjs +0 -3
  142. package/esm2022/lib/modules/relations/public-api.mjs +0 -5
  143. package/esm2022/lib/modules/relations/relations.component.mjs +0 -254
  144. package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +0 -111
  145. package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +0 -14
  146. package/esm2022/lib/modules/search/classes/transformers.mjs +0 -142
  147. package/esm2022/lib/modules/search/classes/url.mjs +0 -53
  148. package/esm2022/lib/modules/search/classes/utils.mjs +0 -25
  149. package/esm2022/lib/modules/search/dropdown-container/dropdown-container-animations.mjs +0 -44
  150. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +0 -87
  151. package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +0 -24
  152. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +0 -90
  153. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +0 -45
  154. package/esm2022/lib/modules/search/group/group.component.mjs +0 -53
  155. package/esm2022/lib/modules/search/input/input.component.mjs +0 -365
  156. package/esm2022/lib/modules/search/public-api.mjs +0 -7
  157. package/esm2022/lib/modules/search/search/search.component.mjs +0 -102
  158. package/esm2022/lib/modules/search/types/dropdown-component.mjs +0 -2
  159. package/esm2022/lib/modules/search/types/facet.mjs +0 -2
  160. package/esm2022/lib/modules/search/types/values.mjs +0 -2
  161. package/esm2022/lib/modules/select/abstract-select.component.mjs +0 -232
  162. package/esm2022/lib/modules/select/public-api.mjs +0 -7
  163. package/esm2022/lib/modules/select/select/select.component.mjs +0 -310
  164. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +0 -57
  165. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +0 -155
  166. package/esm2022/lib/modules/sidenav/public-api.mjs +0 -9
  167. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +0 -15
  168. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +0 -90
  169. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +0 -11
  170. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +0 -50
  171. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +0 -196
  172. package/esm2022/lib/modules/stamp/public-api.mjs +0 -5
  173. package/esm2022/lib/modules/stamp/stamp.component.mjs +0 -23
  174. package/esm2022/lib/modules/table-button/public-api.mjs +0 -5
  175. package/esm2022/lib/modules/table-button/table-button.component.mjs +0 -78
  176. package/esm2022/lib/services/abstract-model.service.mjs +0 -526
  177. package/esm2022/lib/services/debounce.service.mjs +0 -149
  178. package/esm2022/lib/services/enum.service.mjs +0 -64
  179. package/esm2022/lib/services/link-mutation.service.mjs +0 -154
  180. package/esm2022/lib/services/persistence.service.mjs +0 -115
  181. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +0 -63
  182. package/esm2022/lib/types/types.mjs +0 -2
  183. package/esm2022/public-api.mjs +0 -46
@@ -1,84 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { NaturalIconDirective } from '../icon/icon.directive';
3
- import { MatIconModule } from '@angular/material/icon';
4
- import { RouterLink } from '@angular/router';
5
- import { MatButtonModule } from '@angular/material/button';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/button";
8
- import * as i2 from "@angular/material/icon";
9
- export class NaturalDetailHeaderComponent {
10
- /**
11
- * Base URL used to build links, defaults to '/'
12
- */
13
- currentBaseUrl;
14
- /**
15
- * Must be set to get proper links when used in panels
16
- */
17
- isPanel = false;
18
- /**
19
- * If given will show icon before title
20
- */
21
- icon = '';
22
- /**
23
- * Title shown if model has no name, or empty name.
24
- *
25
- * Typically should be the human name for the object type, eg: 'Product'
26
- */
27
- label = '';
28
- /**
29
- * Label of the root of the breadcrumb, defaults to the value of `label`.
30
- *
31
- * Typically should be the plural form of the object type, eg: 'Products'
32
- */
33
- rootLabel = '';
34
- /**
35
- * Title shown if model has no id.
36
- *
37
- * Typically should be similar to 'New product'.
38
- */
39
- newLabel = '';
40
- model;
41
- breadcrumbs = [];
42
- listRoute = [];
43
- listFragment;
44
- link;
45
- getRootLink() {
46
- return [this.currentBaseUrl || '/'].concat(this.listRoute);
47
- }
48
- getLink(id) {
49
- if (this.link) {
50
- return this.getRootLink().concat(this.link(id));
51
- }
52
- return this.getRootLink().concat([id]);
53
- }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDetailHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalDetailHeaderComponent, isStandalone: true, selector: "natural-detail-header", inputs: { currentBaseUrl: "currentBaseUrl", isPanel: "isPanel", icon: "icon", label: "label", rootLabel: "rootLabel", newLabel: "newLabel", model: "model", breadcrumbs: "breadcrumbs", listRoute: "listRoute", listFragment: "listFragment", link: "link" }, ngImport: i0, template: "<div class=\"breadcrumb\">\n @if (rootLabel || label) {\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n }\n @for (parent of breadcrumbs; track parent.id) {\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n }\n</div>\n\n<div class=\"body\">\n @if (icon) {\n <div style=\"width: 30px\">\n <mat-icon [naturalIcon]=\"icon\" />\n </div>\n }\n @if (!model.id) {\n <div class=\"mat-headline-5 nat-no-margin newLabel\">{{ newLabel }}</div>\n }\n @if (model.id) {\n <div class=\"mat-headline-5 nat-no-margin label\">{{ model.name || model.fullName || label }}</div>\n }\n <div>\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body mat-icon{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] });
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDetailHeaderComponent, decorators: [{
58
- type: Component,
59
- args: [{ selector: 'natural-detail-header', standalone: true, imports: [MatButtonModule, RouterLink, MatIconModule, NaturalIconDirective], template: "<div class=\"breadcrumb\">\n @if (rootLabel || label) {\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n }\n @for (parent of breadcrumbs; track parent.id) {\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n }\n</div>\n\n<div class=\"body\">\n @if (icon) {\n <div style=\"width: 30px\">\n <mat-icon [naturalIcon]=\"icon\" />\n </div>\n }\n @if (!model.id) {\n <div class=\"mat-headline-5 nat-no-margin newLabel\">{{ newLabel }}</div>\n }\n @if (model.id) {\n <div class=\"mat-headline-5 nat-no-margin label\">{{ model.name || model.fullName || label }}</div>\n }\n <div>\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body mat-icon{display:none}}\n"] }]
60
- }], propDecorators: { currentBaseUrl: [{
61
- type: Input
62
- }], isPanel: [{
63
- type: Input
64
- }], icon: [{
65
- type: Input
66
- }], label: [{
67
- type: Input
68
- }], rootLabel: [{
69
- type: Input
70
- }], newLabel: [{
71
- type: Input
72
- }], model: [{
73
- type: Input,
74
- args: [{ required: true }]
75
- }], breadcrumbs: [{
76
- type: Input
77
- }], listRoute: [{
78
- type: Input
79
- }], listFragment: [{
80
- type: Input
81
- }], link: [{
82
- type: Input
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGV0YWlsLWhlYWRlci9kZXRhaWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyw0QkFBNEI7SUFDckM7O09BRUc7SUFDYSxjQUFjLENBQVU7SUFFeEM7O09BRUc7SUFDYSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWhDOztPQUVHO0lBQ2EsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMxQjs7OztPQUlHO0lBQ2EsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUUzQjs7OztPQUlHO0lBQ2EsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUUvQjs7OztPQUlHO0lBQ2EsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNFLEtBQUssQ0FBVztJQUNoQyxXQUFXLEdBQXFCLEVBQUUsQ0FBQztJQUNuQyxTQUFTLEdBQVUsRUFBRSxDQUFDO0lBQ3RCLFlBQVksQ0FBcUI7SUFDakMsSUFBSSxDQUF5QjtJQUV0QyxXQUFXO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sT0FBTyxDQUFDLEVBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBbkRRLDRCQUE0QjsyRkFBNUIsNEJBQTRCLCtVQ2R6QyxrNkJBOEJBLDBoQkRsQmMsZUFBZSw0TUFBRSxVQUFVLG1PQUFFLGFBQWEsb0xBQUUsb0JBQW9COzsyRkFFakUsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNJLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQzs4QkFNM0QsY0FBYztzQkFBN0IsS0FBSztnQkFLVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBTVUsS0FBSztzQkFBcEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQzBCLEtBQUs7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaXRlcmFsLCBOYW1lT3JGdWxsTmFtZX0gZnJvbSAnLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsSWNvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vaWNvbi9pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1kZXRhaWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgUm91dGVyTGluaywgTWF0SWNvbk1vZHVsZSwgTmF0dXJhbEljb25EaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGV0YWlsSGVhZGVyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBCYXNlIFVSTCB1c2VkIHRvIGJ1aWxkIGxpbmtzLCBkZWZhdWx0cyB0byAnLydcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY3VycmVudEJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNdXN0IGJlIHNldCB0byBnZXQgcHJvcGVyIGxpbmtzIHdoZW4gdXNlZCBpbiBwYW5lbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNQYW5lbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBzaG93IGljb24gYmVmb3JlIHRpdGxlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGljb24gPSAnJztcbiAgICAvKipcbiAgICAgKiBUaXRsZSBzaG93biBpZiBtb2RlbCBoYXMgbm8gbmFtZSwgb3IgZW1wdHkgbmFtZS5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgdGhlIGh1bWFuIG5hbWUgZm9yIHRoZSBvYmplY3QgdHlwZSwgZWc6ICdQcm9kdWN0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIHJvb3Qgb2YgdGhlIGJyZWFkY3J1bWIsIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgbGFiZWxgLlxuICAgICAqXG4gICAgICogVHlwaWNhbGx5IHNob3VsZCBiZSB0aGUgcGx1cmFsIGZvcm0gb2YgdGhlIG9iamVjdCB0eXBlLCBlZzogJ1Byb2R1Y3RzJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb290TGFiZWwgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFRpdGxlIHNob3duIGlmIG1vZGVsIGhhcyBubyBpZC5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgc2ltaWxhciB0byAnTmV3IHByb2R1Y3QnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuZXdMYWJlbCA9ICcnO1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbW9kZWwhOiBMaXRlcmFsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBicmVhZGNydW1iczogTmFtZU9yRnVsbE5hbWVbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaXN0Um91dGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGxpc3RGcmFnbWVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaW5rPzogKGlkOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gICAgcHVibGljIGdldFJvb3RMaW5rKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmN1cnJlbnRCYXNlVXJsIHx8ICcvJ10uY29uY2F0KHRoaXMubGlzdFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGluayhpZDogc3RyaW5nKTogYW55W10ge1xuICAgICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290TGluaygpLmNvbmNhdCh0aGlzLmxpbmsoaWQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvb3RMaW5rKCkuY29uY2F0KFtpZF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJicmVhZGNydW1iXCI+XG4gICAgQGlmIChyb290TGFiZWwgfHwgbGFiZWwpIHtcbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiaXNQYW5lbCA/IFtdIDogZ2V0Um9vdExpbmsoKVwiIFtmcmFnbWVudF09XCJsaXN0RnJhZ21lbnRcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtYnV0dG9uPnt7XG4gICAgICAgICAgICByb290TGFiZWwgfHwgbGFiZWxcbiAgICAgICAgfX08L2E+XG4gICAgfVxuICAgIEBmb3IgKHBhcmVudCBvZiBicmVhZGNydW1iczsgdHJhY2sgcGFyZW50LmlkKSB7XG4gICAgICAgIC9cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiaXNQYW5lbCA/IFtdIDogZ2V0TGluayhwYXJlbnQuaWQpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWJ1dHRvbj5cbiAgICAgICAgICAgIHt7IHBhcmVudD8uZnVsbE5hbWUgfHwgcGFyZW50Py5uYW1lIH19PC9hXG4gICAgICAgID5cbiAgICB9XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICBAaWYgKGljb24pIHtcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW25hdHVyYWxJY29uXT1cImljb25cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmICghbW9kZWwuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1oZWFkbGluZS01IG5hdC1uby1tYXJnaW4gbmV3TGFiZWxcIj57eyBuZXdMYWJlbCB9fTwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1vZGVsLmlkKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtaGVhZGxpbmUtNSBuYXQtbm8tbWFyZ2luIGxhYmVsXCI+e3sgbW9kZWwubmFtZSB8fCBtb2RlbC5mdWxsTmFtZSB8fCBsYWJlbCB9fTwvZGl2PlxuICAgIH1cbiAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of natural
3
- */
4
- export * from './detail-header.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2RldGFpbC1oZWFkZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5hdHVyYWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2RldGFpbC1oZWFkZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -1,72 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
- import * as i0 from "@angular/core";
5
- export class NaturalDialogTriggerComponent {
6
- dialog = inject(MatDialog);
7
- route = inject(ActivatedRoute);
8
- router = inject(Router);
9
- dialogRef;
10
- triggerConfig;
11
- constructor() {
12
- // Data from activated route
13
- this.triggerConfig = this.route.snapshot.data.trigger;
14
- // Get data relative to dialog service configuration
15
- const { data, ...config } = this.triggerConfig.dialogConfig;
16
- const dialogConfig = {
17
- ...config,
18
- data: {
19
- data: data,
20
- // Set data accessible into component instantiated by the dialog service
21
- activatedRoute: this.route,
22
- },
23
- };
24
- this.dialogRef = this.dialog.open(this.triggerConfig.component, dialogConfig);
25
- // Redirect on closing (if applicable)
26
- this.dialogRef.beforeClosed().subscribe(exitValue => this.redirect(exitValue));
27
- }
28
- /**
29
- * Called when router leaves route, and so on, closes the modal with undefined value to prevent a new redirection
30
- */
31
- ngOnDestroy() {
32
- if (this.dialogRef) {
33
- this.dialogRef.close(-1); // -1 = no redirection
34
- }
35
- }
36
- /**
37
- * Redirects on modal closing under following rules/conditions
38
- *
39
- * If -1 : no redirection
40
- * If undefined, null or empty string : uses the router provided redirection route or fallbacks on parent route if router don't provide
41
- * If a value is provided, should be of type any[] and it's used for redirection.
42
- */
43
- redirect(exitValue) {
44
- const isEmptyExitValue = exitValue == null || exitValue === ''; // undefined, null or ''
45
- if (exitValue === -1) {
46
- // if -1, don't redirect
47
- return;
48
- }
49
- else if (!isEmptyExitValue) {
50
- // If value provided, redirect to that route
51
- this.router.navigate(exitValue);
52
- }
53
- else if (isEmptyExitValue && this.triggerConfig.afterClosedRoute) {
54
- // If value is not provided (null) and router context specified default redirection route, use it
55
- this.router.navigate(this.triggerConfig.afterClosedRoute);
56
- }
57
- else if (isEmptyExitValue) {
58
- // If neither of component or router provides redirection, go to parent (care : parent can't have empty path : ''),
59
- this.router.navigate(['.'], { relativeTo: this.route.parent });
60
- }
61
- }
62
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDialogTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NaturalDialogTriggerComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDialogTriggerComponent, decorators: [{
66
- type: Component,
67
- args: [{
68
- template: '',
69
- standalone: true,
70
- }]
71
- }], ctorParameters: () => [] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQWdDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQWEsTUFBTSxpQkFBaUIsQ0FBQzs7QUFvQm5FLE1BQU0sT0FBTyw2QkFBNkI7SUFDckIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEIsU0FBUyxDQUF5RDtJQUVsRSxhQUFhLENBQXdDO0lBRXRFO1FBQ0ksNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQWdELENBQUM7UUFFL0Ysb0RBQW9EO1FBQ3BELE1BQU0sRUFBQyxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBeUQ7WUFDdkUsR0FBRyxNQUFNO1lBQ1QsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLHdFQUF3RTtnQkFDeEUsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQzdCO1NBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBSS9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxTQUFnRDtRQUM1RCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUV4RixJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25CLHdCQUF3QjtZQUN4QixPQUFPO1FBQ1gsQ0FBQzthQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLDRDQUE0QztZQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFrQixDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLElBQUksZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pFLGlHQUFpRztZQUNqRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUF5QixDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixtSEFBbUg7WUFDbkgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNMLENBQUM7dUdBbEVRLDZCQUE2QjsyRkFBN0IsNkJBQTZCLHdFQUg1QixFQUFFOzsyRkFHSCw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7Q29tcG9uZW50LCBpbmplY3QsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUm91dGluZ0RhdGE8VCwgRD4gPSB7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+O1xuICAgIGFmdGVyQ2xvc2VkUm91dGU/OiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ107XG4gICAgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8RD47XG59O1xuXG5leHBvcnQgdHlwZSBOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxEPiA9IHtcbiAgICBkYXRhPzogUmVhZG9ubHk8RD4gfCBudWxsO1xuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG5leHBvcnQgdHlwZSBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzID0gUm91dGVyTGlua1sncm91dGVyTGluayddIHwgbnVsbCB8IHVuZGVmaW5lZCB8ICcnIHwgLTE7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGlhbG9nVHJpZ2dlckNvbXBvbmVudDxULCBEPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJpZ2dlckNvbmZpZzogTmF0dXJhbERpYWxvZ1RyaWdnZXJSb3V0aW5nRGF0YTxULCBEPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gRGF0YSBmcm9tIGFjdGl2YXRlZCByb3V0ZVxuICAgICAgICB0aGlzLnRyaWdnZXJDb25maWcgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEudHJpZ2dlciBhcyBOYXR1cmFsRGlhbG9nVHJpZ2dlclJvdXRpbmdEYXRhPFQsIEQ+O1xuXG4gICAgICAgIC8vIEdldCBkYXRhIHJlbGF0aXZlIHRvIGRpYWxvZyBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgY29uc3Qge2RhdGEsIC4uLmNvbmZpZ30gPSB0aGlzLnRyaWdnZXJDb25maWcuZGlhbG9nQ29uZmlnO1xuICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxEPj4gPSB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAvLyBTZXQgZGF0YSBhY2Nlc3NpYmxlIGludG8gY29tcG9uZW50IGluc3RhbnRpYXRlZCBieSB0aGUgZGlhbG9nIHNlcnZpY2VcbiAgICAgICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZTogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPFxuICAgICAgICAgICAgVCxcbiAgICAgICAgICAgIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUHJvdmlkZWREYXRhPEQ+LFxuICAgICAgICAgICAgTmF0dXJhbERpYWxvZ1RyaWdnZXJSZWRpcmVjdGlvblZhbHVlc1xuICAgICAgICA+KHRoaXMudHJpZ2dlckNvbmZpZy5jb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICAgICAgLy8gUmVkaXJlY3Qgb24gY2xvc2luZyAoaWYgYXBwbGljYWJsZSlcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKGV4aXRWYWx1ZSA9PiB0aGlzLnJlZGlyZWN0KGV4aXRWYWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHJvdXRlciBsZWF2ZXMgcm91dGUsIGFuZCBzbyBvbiwgY2xvc2VzIHRoZSBtb2RhbCB3aXRoIHVuZGVmaW5lZCB2YWx1ZSB0byBwcmV2ZW50IGEgbmV3IHJlZGlyZWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKC0xKTsgLy8gLTEgPSBubyByZWRpcmVjdGlvblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVkaXJlY3RzIG9uIG1vZGFsIGNsb3NpbmcgdW5kZXIgZm9sbG93aW5nIHJ1bGVzL2NvbmRpdGlvbnNcbiAgICAgKlxuICAgICAqIElmIC0xIDogbm8gcmVkaXJlY3Rpb25cbiAgICAgKiBJZiB1bmRlZmluZWQsIG51bGwgb3IgZW1wdHkgc3RyaW5nIDogdXNlcyB0aGUgcm91dGVyIHByb3ZpZGVkIHJlZGlyZWN0aW9uIHJvdXRlIG9yIGZhbGxiYWNrcyBvbiBwYXJlbnQgcm91dGUgaWYgcm91dGVyIGRvbid0IHByb3ZpZGVcbiAgICAgKiBJZiBhIHZhbHVlIGlzIHByb3ZpZGVkLCBzaG91bGQgYmUgb2YgdHlwZSBhbnlbXSBhbmQgaXQncyB1c2VkIGZvciByZWRpcmVjdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVkaXJlY3QoZXhpdFZhbHVlOiBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzRW1wdHlFeGl0VmFsdWUgPSBleGl0VmFsdWUgPT0gbnVsbCB8fCBleGl0VmFsdWUgPT09ICcnOyAvLyB1bmRlZmluZWQsIG51bGwgb3IgJydcblxuICAgICAgICBpZiAoZXhpdFZhbHVlID09PSAtMSkge1xuICAgICAgICAgICAgLy8gaWYgLTEsIGRvbid0IHJlZGlyZWN0XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHlFeGl0VmFsdWUpIHtcbiAgICAgICAgICAgIC8vIElmIHZhbHVlIHByb3ZpZGVkLCByZWRpcmVjdCB0byB0aGF0IHJvdXRlXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShleGl0VmFsdWUgYXMgYW55W10pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRW1wdHlFeGl0VmFsdWUgJiYgdGhpcy50cmlnZ2VyQ29uZmlnLmFmdGVyQ2xvc2VkUm91dGUpIHtcbiAgICAgICAgICAgIC8vIElmIHZhbHVlIGlzIG5vdCBwcm92aWRlZCAobnVsbCkgYW5kIHJvdXRlciBjb250ZXh0IHNwZWNpZmllZCBkZWZhdWx0IHJlZGlyZWN0aW9uIHJvdXRlLCB1c2UgaXRcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMudHJpZ2dlckNvbmZpZy5hZnRlckNsb3NlZFJvdXRlIGFzIGFueVtdKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0VtcHR5RXhpdFZhbHVlKSB7XG4gICAgICAgICAgICAvLyBJZiBuZWl0aGVyIG9mIGNvbXBvbmVudCBvciByb3V0ZXIgcHJvdmlkZXMgcmVkaXJlY3Rpb24sIGdvIHRvIHBhcmVudCAoY2FyZSA6IHBhcmVudCBjYW4ndCBoYXZlIGVtcHR5IHBhdGggOiAnJyksXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGUucGFyZW50fSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of natural
3
- */
4
- export * from './dialog-trigger.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2RpYWxvZy10cmlnZ2VyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuYXR1cmFsXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2ctdHJpZ2dlci5jb21wb25lbnQnO1xuIl19
@@ -1,100 +0,0 @@
1
- import { Directive, Inject } from '@angular/core';
2
- import { BehaviorSubject, merge } from 'rxjs';
3
- import { NATURAL_DROPDOWN_DATA } from '../search/dropdown-container/dropdown.service';
4
- import { FormControl, FormGroup, Validators } from '@angular/forms';
5
- import { possibleDiscreteOperators } from './types';
6
- import { startWith } from 'rxjs/operators';
7
- import * as i0 from "@angular/core";
8
- export class AbstractAssociationSelectComponent {
9
- configuration;
10
- renderedValue = new BehaviorSubject('');
11
- requireValueCtrl = false;
12
- operators = possibleDiscreteOperators;
13
- operatorCtrl = new FormControl('is', { nonNullable: true });
14
- valueCtrl = new FormControl();
15
- form = new FormGroup({
16
- operator: this.operatorCtrl,
17
- value: this.valueCtrl,
18
- });
19
- constructor(data) {
20
- this.configuration = data.configuration;
21
- // Immediately initValidators and everytime the operator change later
22
- this.operatorCtrl.valueChanges.pipe(startWith(null)).subscribe(() => this.initValidators());
23
- merge(this.operatorCtrl.valueChanges, this.valueCtrl.valueChanges).subscribe(() => {
24
- const rendered = this.getRenderedValue();
25
- this.renderedValue.next(rendered);
26
- });
27
- this.reloadCondition(data.condition);
28
- }
29
- isValid() {
30
- return this.form.valid;
31
- }
32
- isDirty() {
33
- return this.form.dirty;
34
- }
35
- initValidators() {
36
- const whitelist = ['is', 'isnot'];
37
- this.requireValueCtrl = whitelist.includes(this.operatorCtrl.value);
38
- const validators = this.requireValueCtrl ? [Validators.required] : [];
39
- this.valueCtrl.setValidators(validators);
40
- this.valueCtrl.updateValueAndValidity();
41
- }
42
- reloadCondition(condition) {
43
- if (!condition) {
44
- return;
45
- }
46
- const operatorKey = this.conditionToOperatorKey(condition);
47
- this.operatorCtrl.setValue(operatorKey);
48
- this.reloadValue(condition).subscribe(value => {
49
- this.valueCtrl.setValue(value);
50
- this.renderedValue.next(this.getRenderedValue());
51
- });
52
- }
53
- getRenderedValue() {
54
- const operator = this.operators.find(v => v.key === this.operatorCtrl.value);
55
- if (!operator || !this.isValid()) {
56
- return '';
57
- }
58
- const selection = this.renderValueWithoutOperator();
59
- return [operator.label, selection].filter(v => v).join(' ');
60
- }
61
- conditionToOperatorKey(condition) {
62
- if (condition.have && !condition.have.not) {
63
- return 'is';
64
- }
65
- else if (condition.have?.not) {
66
- return 'isnot';
67
- }
68
- else if (condition.empty?.not) {
69
- return 'any';
70
- }
71
- else if (condition.empty && !condition.empty.not) {
72
- return 'none';
73
- }
74
- return 'is';
75
- }
76
- operatorKeyToCondition(key, values) {
77
- switch (key) {
78
- case 'is':
79
- return { have: { values: values } };
80
- case 'isnot':
81
- return { have: { values: values, not: true } };
82
- case 'any':
83
- return { empty: { not: true } };
84
- case 'none':
85
- return { empty: { not: false } };
86
- default:
87
- throw new Error('Unsupported operator key: ' + key);
88
- }
89
- }
90
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: AbstractAssociationSelectComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }], target: i0.ɵɵFactoryTarget.Directive });
91
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: AbstractAssociationSelectComponent, isStandalone: true, ngImport: i0 });
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: AbstractAssociationSelectComponent, decorators: [{
94
- type: Directive,
95
- args: [{ standalone: true }]
96
- }], ctorParameters: () => [{ type: undefined, decorators: [{
97
- type: Inject,
98
- args: [NATURAL_DROPDOWN_DATA]
99
- }] }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYXNzb2NpYXRpb24tc2VsZWN0LWNvbXBvbmVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL2Fic3RyYWN0LWFzc29jaWF0aW9uLXNlbGVjdC1jb21wb25lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSwrQ0FBK0MsQ0FBQztBQUV6RyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBZSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQStCLHlCQUF5QixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHekMsTUFBTSxPQUFnQixrQ0FBa0M7SUFDcEMsYUFBYSxDQUFJO0lBQ2pCLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUV6RCxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEIsU0FBUyxHQUFHLHlCQUF5QixDQUFDO0lBQ3RDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBK0IsSUFBSSxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDeEYsU0FBUyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDOUIsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDO1FBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtRQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVM7S0FDeEIs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a0M7OzJGQUFsQyxrQ0FBa0M7a0JBRHZELFNBQVM7bUJBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDOzswQkFjTCxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZH0gZnJvbSAnLi4vc2VhcmNoL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge05BVFVSQUxfRFJPUERPV05fREFUQSwgTmF0dXJhbERyb3Bkb3duRGF0YX0gZnJvbSAnLi4vc2VhcmNoL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uL3NlYXJjaC90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtQb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JLZXlzLCBwb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JzfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7c3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe3N0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QXNzb2NpYXRpb25TZWxlY3RDb21wb25lbnQ8Qz4gaW1wbGVtZW50cyBEcm9wZG93bkNvbXBvbmVudCB7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IEM7XG4gICAgcHVibGljIHJlYWRvbmx5IHJlbmRlcmVkVmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gICAgcHVibGljIHJlcXVpcmVWYWx1ZUN0cmwgPSBmYWxzZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JzID0gcG9zc2libGVEaXNjcmV0ZU9wZXJhdG9ycztcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JDdHJsID0gbmV3IEZvcm1Db250cm9sPFBvc3NpYmxlRGlzY3JldGVPcGVyYXRvcktleXM+KCdpcycsIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUN0cmwgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvckN0cmwsXG4gICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlQ3RybCxcbiAgICB9KTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihASW5qZWN0KE5BVFVSQUxfRFJPUERPV05fREFUQSkgZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YTxDPikge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBkYXRhLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgICAgLy8gSW1tZWRpYXRlbHkgaW5pdFZhbGlkYXRvcnMgYW5kIGV2ZXJ5dGltZSB0aGUgb3BlcmF0b3IgY2hhbmdlIGxhdGVyXG4gICAgICAgIHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5pdFZhbGlkYXRvcnMoKSk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5vcGVyYXRvckN0cmwudmFsdWVDaGFuZ2VzLCB0aGlzLnZhbHVlQ3RybC52YWx1ZUNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZCA9IHRoaXMuZ2V0UmVuZGVyZWRWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZFZhbHVlLm5leHQocmVuZGVyZWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbG9hZENvbmRpdGlvbihkYXRhLmNvbmRpdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVsb2FkIHRoZSB2YWx1ZSBmcm9tIEFQSSAoYG9wZXJhdG9yQ3RybGAgc2hvdWxkIG5vdCBiZSB0b3VjaGVkKVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWxvYWRWYWx1ZShjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQpOiBPYnNlcnZhYmxlPHVua25vd24+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlclZhbHVlV2l0aG91dE9wZXJhdG9yKCk6IHN0cmluZztcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRDb25kaXRpb24oKTogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZDtcblxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmRpcnR5O1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdoaXRlbGlzdDogUG9zc2libGVEaXNjcmV0ZU9wZXJhdG9yS2V5c1tdID0gWydpcycsICdpc25vdCddO1xuICAgICAgICB0aGlzLnJlcXVpcmVWYWx1ZUN0cmwgPSB3aGl0ZWxpc3QuaW5jbHVkZXModGhpcy5vcGVyYXRvckN0cmwudmFsdWUpO1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gdGhpcy5yZXF1aXJlVmFsdWVDdHJsID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW107XG5cbiAgICAgICAgdGhpcy52YWx1ZUN0cmwuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICAgICAgdGhpcy52YWx1ZUN0cmwudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVsb2FkQ29uZGl0aW9uKGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9wZXJhdG9yS2V5ID0gdGhpcy5jb25kaXRpb25Ub09wZXJhdG9yS2V5KGNvbmRpdGlvbik7XG4gICAgICAgIHRoaXMub3BlcmF0b3JDdHJsLnNldFZhbHVlKG9wZXJhdG9yS2V5KTtcblxuICAgICAgICB0aGlzLnJlbG9hZFZhbHVlKGNvbmRpdGlvbikuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRWYWx1ZS5uZXh0KHRoaXMuZ2V0UmVuZGVyZWRWYWx1ZSgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFJlbmRlcmVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHYgPT4gdi5rZXkgPT09IHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlKTtcbiAgICAgICAgaWYgKCFvcGVyYXRvciB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMucmVuZGVyVmFsdWVXaXRob3V0T3BlcmF0b3IoKTtcblxuICAgICAgICByZXR1cm4gW29wZXJhdG9yLmxhYmVsLCBzZWxlY3Rpb25dLmZpbHRlcih2ID0+IHYpLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uZGl0aW9uVG9PcGVyYXRvcktleShjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQpOiBQb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JLZXlzIHtcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5oYXZlICYmICFjb25kaXRpb24uaGF2ZS5ub3QpIHtcbiAgICAgICAgICAgIHJldHVybiAnaXMnO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmRpdGlvbi5oYXZlPy5ub3QpIHtcbiAgICAgICAgICAgIHJldHVybiAnaXNub3QnO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmRpdGlvbi5lbXB0eT8ubm90KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLmVtcHR5ICYmICFjb25kaXRpb24uZW1wdHkubm90KSB7XG4gICAgICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICdpcyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yS2V5VG9Db25kaXRpb24oa2V5OiBQb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JLZXlzLCB2YWx1ZXM6IHN0cmluZ1tdKTogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdpcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtoYXZlOiB7dmFsdWVzOiB2YWx1ZXN9fTtcbiAgICAgICAgICAgIGNhc2UgJ2lzbm90JzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge2hhdmU6IHt2YWx1ZXM6IHZhbHVlcywgbm90OiB0cnVlfX07XG4gICAgICAgICAgICBjYXNlICdhbnknOlxuICAgICAgICAgICAgICAgIHJldHVybiB7ZW1wdHk6IHtub3Q6IHRydWV9fTtcbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7ZW1wdHk6IHtub3Q6IGZhbHNlfX07XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgb3BlcmF0b3Iga2V5OiAnICsgKGtleSBhcyBzdHJpbmcpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,14 +0,0 @@
1
- /*
2
- * Public API Surface of natural-search dropdown components
3
- */
4
- export { TypeSelectComponent, } from './type-select/type-select.component';
5
- export { TypeNaturalSelectComponent, } from './type-natural-select/type-natural-select.component';
6
- export { TypeNumberComponent } from './type-number/type-number.component';
7
- export { TypeHierarchicSelectorComponent, } from './type-hierarchic-selector/type-hierarchic-selector.component';
8
- export { TypeDateComponent } from './type-date/type-date.component';
9
- export { TypeDateRangeComponent } from './type-date-range/type-date-range.component';
10
- export { TypeTextComponent, InvalidWithValueStateMatcher } from './type-text/type-text.component';
11
- export { TypeBooleanComponent } from './type-boolean/type-boolean.component';
12
- export { TypeOptionsComponent, } from './type-options/type-options.component';
13
- export { possibleComparableOperators } from './types';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFHSCxtQkFBbUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBRUgsMEJBQTBCLEdBQzdCLE1BQU0scURBQXFELENBQUM7QUFFN0QsT0FBTyxFQUErQixtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXRHLE9BQU8sRUFFSCwrQkFBK0IsR0FDbEMsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQTZCLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFOUYsT0FBTyxFQUFrQyxzQkFBc0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXBILE9BQU8sRUFBQyxpQkFBaUIsRUFBRSw0QkFBNEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRWhHLE9BQU8sRUFBZ0Msb0JBQW9CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRyxPQUFPLEVBR0gsb0JBQW9CLEdBQ3ZCLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFDLDJCQUEyQixFQUFxQyxNQUFNLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmF0dXJhbC1zZWFyY2ggZHJvcGRvd24gY29tcG9uZW50c1xuICovXG5leHBvcnQge1xuICAgIHR5cGUgVHlwZVNlbGVjdENvbmZpZ3VyYXRpb24sXG4gICAgdHlwZSBUeXBlU2VsZWN0SXRlbSxcbiAgICBUeXBlU2VsZWN0Q29tcG9uZW50LFxufSBmcm9tICcuL3R5cGUtc2VsZWN0L3R5cGUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgdHlwZSBUeXBlU2VsZWN0TmF0dXJhbENvbmZpZ3VyYXRpb24sXG4gICAgVHlwZU5hdHVyYWxTZWxlY3RDb21wb25lbnQsXG59IGZyb20gJy4vdHlwZS1uYXR1cmFsLXNlbGVjdC90eXBlLW5hdHVyYWwtc2VsZWN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7dHlwZSBUeXBlTnVtYmVyQ29uZmlndXJhdGlvbiwgVHlwZU51bWJlckNvbXBvbmVudH0gZnJvbSAnLi90eXBlLW51bWJlci90eXBlLW51bWJlci5jb21wb25lbnQnO1xuXG5leHBvcnQge1xuICAgIHR5cGUgVHlwZUhpZXJhcmNoaWNTZWxlY3RvckNvbmZpZ3VyYXRpb24sXG4gICAgVHlwZUhpZXJhcmNoaWNTZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi90eXBlLWhpZXJhcmNoaWMtc2VsZWN0b3IvdHlwZS1oaWVyYXJjaGljLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7dHlwZSBUeXBlRGF0ZUNvbmZpZ3VyYXRpb24sIFR5cGVEYXRlQ29tcG9uZW50fSBmcm9tICcuL3R5cGUtZGF0ZS90eXBlLWRhdGUuY29tcG9uZW50JztcblxuZXhwb3J0IHt0eXBlIFR5cGVEYXRlUmFuZ2VDb25maWd1cmF0aW9uLCBUeXBlRGF0ZVJhbmdlQ29tcG9uZW50fSBmcm9tICcuL3R5cGUtZGF0ZS1yYW5nZS90eXBlLWRhdGUtcmFuZ2UuY29tcG9uZW50JztcblxuZXhwb3J0IHtUeXBlVGV4dENvbXBvbmVudCwgSW52YWxpZFdpdGhWYWx1ZVN0YXRlTWF0Y2hlcn0gZnJvbSAnLi90eXBlLXRleHQvdHlwZS10ZXh0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7dHlwZSBUeXBlQm9vbGVhbkNvbmZpZ3VyYXRpb24sIFR5cGVCb29sZWFuQ29tcG9uZW50fSBmcm9tICcuL3R5cGUtYm9vbGVhbi90eXBlLWJvb2xlYW4uY29tcG9uZW50JztcbmV4cG9ydCB7XG4gICAgdHlwZSBUeXBlT3B0aW9uc0NvbmZpZ3VyYXRpb24sXG4gICAgdHlwZSBUeXBlT3B0aW9uLFxuICAgIFR5cGVPcHRpb25zQ29tcG9uZW50LFxufSBmcm9tICcuL3R5cGUtb3B0aW9ucy90eXBlLW9wdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCB7cG9zc2libGVDb21wYXJhYmxlT3BlcmF0b3JzLCB0eXBlIFBvc3NpYmxlQ29tcGFyYWJsZU9wZXJ0b3JLZXlzfSBmcm9tICcuL3R5cGVzJztcbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, inject } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { NATURAL_DROPDOWN_DATA } from '../../search/dropdown-container/dropdown.service';
5
- import { TypeOptionsComponent } from '../type-options/type-options.component';
6
- import { MatButtonToggleModule } from '@angular/material/button-toggle';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "@angular/material/button-toggle";
10
- export class TypeBooleanComponent extends TypeOptionsComponent {
11
- constructor() {
12
- const data = inject(NATURAL_DROPDOWN_DATA);
13
- // Set up options from hardcoded conditions with custom labels from config
14
- const configuration = {
15
- options: [
16
- {
17
- display: data.configuration.displayWhenActive,
18
- condition: { equal: { value: true } },
19
- },
20
- {
21
- display: data.configuration.displayWhenInactive,
22
- condition: { equal: { value: false } },
23
- },
24
- ],
25
- };
26
- const typeOptionsData = {
27
- ...data,
28
- ...{ configuration: configuration },
29
- };
30
- super(typeOptionsData);
31
- }
32
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeBooleanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeBooleanComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }] });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeBooleanComponent, decorators: [{
36
- type: Component,
37
- args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, CommonModule, MatButtonToggleModule], template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n" }]
38
- }], ctorParameters: () => [] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1ib29sZWFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1ib29sZWFuL3R5cGUtYm9vbGVhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtb3B0aW9ucy90eXBlLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMscUJBQXFCLEVBQXNCLE1BQU0sa0RBQWtELENBQUM7QUFFNUcsT0FBTyxFQUFDLG9CQUFvQixFQUEyQixNQUFNLHdDQUF3QyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBWXRFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDMUQ7UUFDSSxNQUFNLElBQUksR0FBRyxNQUFNLENBQWdELHFCQUFxQixDQUFDLENBQUM7UUFFMUYsMEVBQTBFO1FBQzFFLE1BQU0sYUFBYSxHQUE2QjtZQUM1QyxPQUFPLEVBQUU7Z0JBQ0w7b0JBQ0ksT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCO29CQUM3QyxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUM7aUJBQ3BDO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQjtvQkFDL0MsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDO2lCQUNyQzthQUNKO1NBQ0osQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFrRDtZQUNuRSxHQUFHLElBQUk7WUFDUCxHQUFHLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQztTQUNwQyxDQUFDO1FBRUYsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBeEJRLG9CQUFvQjsyRkFBcEIsb0JBQW9CLCtGQ2xCakMsa1BBS0EsMkNEV2MsV0FBVyxzSUFBRSxtQkFBbUIsaU5BQUUsWUFBWSw4QkFBRSxxQkFBcUI7OzJGQUV0RSxvQkFBb0I7a0JBTGhDLFNBQVM7aUNBRU0sSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDb21wb25lbnQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge05BVFVSQUxfRFJPUERPV05fREFUQSwgTmF0dXJhbERyb3Bkb3duRGF0YX0gZnJvbSAnLi4vLi4vc2VhcmNoL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlYXJjaC90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtUeXBlT3B0aW9uc0NvbXBvbmVudCwgVHlwZU9wdGlvbnNDb25maWd1cmF0aW9ufSBmcm9tICcuLi90eXBlLW9wdGlvbnMvdHlwZS1vcHRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5cbmV4cG9ydCB0eXBlIFR5cGVCb29sZWFuQ29uZmlndXJhdGlvbiA9IHtcbiAgICBkaXNwbGF5V2hlbkFjdGl2ZTogc3RyaW5nO1xuICAgIGRpc3BsYXlXaGVuSW5hY3RpdmU6IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi4vdHlwZS1vcHRpb25zL3R5cGUtb3B0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZUJvb2xlYW5Db21wb25lbnQgZXh0ZW5kcyBUeXBlT3B0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpbmplY3Q8TmF0dXJhbERyb3Bkb3duRGF0YTxUeXBlQm9vbGVhbkNvbmZpZ3VyYXRpb24+PihOQVRVUkFMX0RST1BET1dOX0RBVEEpO1xuXG4gICAgICAgIC8vIFNldCB1cCBvcHRpb25zIGZyb20gaGFyZGNvZGVkIGNvbmRpdGlvbnMgd2l0aCBjdXN0b20gbGFiZWxzIGZyb20gY29uZmlnXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IFR5cGVPcHRpb25zQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGRhdGEuY29uZmlndXJhdGlvbi5kaXNwbGF5V2hlbkFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiB7ZXF1YWw6IHt2YWx1ZTogdHJ1ZX19LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBkYXRhLmNvbmZpZ3VyYXRpb24uZGlzcGxheVdoZW5JbmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiB7ZXF1YWw6IHt2YWx1ZTogZmFsc2V9fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCB0eXBlT3B0aW9uc0RhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGE8VHlwZU9wdGlvbnNDb25maWd1cmF0aW9uPiA9IHtcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAuLi57Y29uZmlndXJhdGlvbjogY29uZmlndXJhdGlvbn0sXG4gICAgICAgIH07XG5cbiAgICAgICAgc3VwZXIodHlwZU9wdGlvbnNEYXRhKTtcbiAgICB9XG59XG4iLCI8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCI+XG4gICAgQGZvciAob3B0aW9uIG9mIGNvbmZpZ3VyYXRpb24ub3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uLmRpc3BsYXkgfX08L21hdC1idXR0b24tdG9nZ2xlPlxuICAgIH1cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4iXX0=
@@ -1,173 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
3
- import { DateAdapter, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';
4
- import { BehaviorSubject, merge } from 'rxjs';
5
- import { NATURAL_DROPDOWN_DATA } from '../../search/dropdown-container/dropdown.service';
6
- import { possibleComparableOperators } from '../types';
7
- import { dateMax, dateMin, serialize } from '../utils';
8
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
- import { MatCheckboxModule } from '@angular/material/checkbox';
10
- import { MatDatepickerModule } from '@angular/material/datepicker';
11
- import { MatInputModule } from '@angular/material/input';
12
- import { MatSelectModule } from '@angular/material/select';
13
- import { MatFormFieldModule } from '@angular/material/form-field';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@angular/forms";
16
- import * as i2 from "@angular/material/form-field";
17
- import * as i3 from "@angular/material/select";
18
- import * as i4 from "@angular/material/core";
19
- import * as i5 from "@angular/material/input";
20
- import * as i6 from "@angular/material/datepicker";
21
- import * as i7 from "@angular/material/checkbox";
22
- export class TypeDateComponent {
23
- dateAdapter = inject(DateAdapter);
24
- dateFormats = inject(MAT_DATE_FORMATS);
25
- renderedValue = new BehaviorSubject('');
26
- configuration;
27
- operatorCtrl = new FormControl('equal', { nonNullable: true });
28
- valueCtrl = new FormControl(null);
29
- todayCtrl = new FormControl(false);
30
- operators = possibleComparableOperators;
31
- form = new FormGroup({
32
- operator: this.operatorCtrl,
33
- value: this.valueCtrl,
34
- today: this.todayCtrl,
35
- });
36
- defaults = {
37
- min: null,
38
- max: null,
39
- };
40
- constructor() {
41
- const data = inject(NATURAL_DROPDOWN_DATA);
42
- this.configuration = { ...this.defaults, ...data.configuration };
43
- this.todayCtrl.valueChanges.pipe(takeUntilDestroyed()).subscribe(isToday => {
44
- if (isToday) {
45
- this.valueCtrl.setValue(this.dateAdapter.today());
46
- this.valueCtrl.disable();
47
- }
48
- else {
49
- this.valueCtrl.enable();
50
- }
51
- });
52
- merge(this.operatorCtrl.valueChanges, this.valueCtrl.valueChanges, this.todayCtrl.valueChanges)
53
- .pipe(takeUntilDestroyed())
54
- .subscribe(() => this.renderedValue.next(this.getRenderedValue()));
55
- this.initValidators();
56
- this.reloadCondition(data.condition);
57
- }
58
- getCondition() {
59
- if (!this.valueCtrl.value) {
60
- return {};
61
- }
62
- const condition = {};
63
- let operator = this.operatorCtrl.value;
64
- let date;
65
- let dayAfter;
66
- if (this.todayCtrl.value) {
67
- date = 'today';
68
- dayAfter = 'tomorrow';
69
- }
70
- else {
71
- date = serialize(this.dateAdapter, this.valueCtrl.value);
72
- dayAfter = serialize(this.dateAdapter, this.getDayAfter(this.valueCtrl.value));
73
- }
74
- if (operator === 'equal') {
75
- condition.greaterOrEqual = { value: date };
76
- condition.less = { value: dayAfter };
77
- }
78
- else {
79
- // Transparently adapt exclusive/inclusive ranges
80
- if (date !== 'today') {
81
- if (operator === 'greater') {
82
- operator = 'greaterOrEqual';
83
- date = dayAfter;
84
- }
85
- else if (operator === 'lessOrEqual') {
86
- operator = 'less';
87
- date = dayAfter;
88
- }
89
- }
90
- condition[operator] = { value: date };
91
- }
92
- return condition;
93
- }
94
- isValid() {
95
- return this.form.valid;
96
- }
97
- isDirty() {
98
- return this.form.dirty;
99
- }
100
- reloadCondition(condition) {
101
- if (!condition) {
102
- return;
103
- }
104
- // Special case for '='
105
- if (condition.greaterOrEqual && condition.less) {
106
- this.operatorCtrl.setValue('equal');
107
- this.setTodayOrDate(condition.greaterOrEqual.value);
108
- return;
109
- }
110
- for (const operator of this.operators) {
111
- const reloadedOperator = condition[operator.key];
112
- if (reloadedOperator) {
113
- this.operatorCtrl.setValue(operator.key);
114
- this.setTodayOrDate(reloadedOperator.value);
115
- }
116
- }
117
- }
118
- setTodayOrDate(value) {
119
- if (value === 'today') {
120
- this.valueCtrl.setValue(this.dateAdapter.today());
121
- this.todayCtrl.setValue(true);
122
- }
123
- else {
124
- this.valueCtrl.setValue(this.dateAdapter.deserialize(value));
125
- this.todayCtrl.setValue(false);
126
- }
127
- }
128
- initValidators() {
129
- const validators = [Validators.required];
130
- if (this.configuration.min) {
131
- validators.push(dateMin(this.dateAdapter, this.configuration.min));
132
- }
133
- if (this.configuration.max) {
134
- validators.push(dateMax(this.dateAdapter, this.configuration.max));
135
- }
136
- this.valueCtrl.setValidators(validators);
137
- }
138
- getDayAfter(date) {
139
- return this.dateAdapter.addCalendarDays(this.dateAdapter.clone(date), 1);
140
- }
141
- getRenderedValue() {
142
- const operator = this.operators.find(v => v.key === this.operatorCtrl.value);
143
- let value = '';
144
- if (this.todayCtrl.value) {
145
- value = $localize `Aujourd'hui`;
146
- }
147
- else if (this.valueCtrl.value) {
148
- value = this.dateAdapter.format(this.valueCtrl.value, this.dateFormats.display.dateInput);
149
- }
150
- if (operator && value) {
151
- return operator.label + ' ' + value;
152
- }
153
- else {
154
- return '';
155
- }
156
- }
157
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
158
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: TypeDateComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matIconSuffix />\n <mat-datepicker #value />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (valueCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-checkbox [formControl]=\"todayCtrl\" i18n>Aujourd'hui</mat-checkbox>\n</form>\n", styles: ["form{display:grid;grid:auto auto/4em auto;grid-gap:0 1em}form>mat-checkbox{grid-column-start:2;margin-bottom:.3em}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] });
159
- }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: TypeDateComponent, decorators: [{
161
- type: Component,
162
- args: [{ standalone: true, imports: [
163
- FormsModule,
164
- ReactiveFormsModule,
165
- MatFormFieldModule,
166
- MatSelectModule,
167
- MatOptionModule,
168
- MatInputModule,
169
- MatDatepickerModule,
170
- MatCheckboxModule,
171
- ], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matIconSuffix />\n <mat-datepicker #value />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (valueCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-checkbox [formControl]=\"todayCtrl\" i18n>Aujourd'hui</mat-checkbox>\n</form>\n", styles: ["form{display:grid;grid:auto auto/4em auto;grid-gap:0 1em}form>mat-checkbox{grid-column-start:2;margin-bottom:.3em}\n"] }]
172
- }], ctorParameters: () => [] });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1kYXRlL3R5cGUtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtZGF0ZS90eXBlLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFlLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pILE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFDLHFCQUFxQixFQUFzQixNQUFNLGtEQUFrRCxDQUFDO0FBRTVHLE9BQU8sRUFBQywyQkFBMkIsRUFBZ0MsTUFBTSxVQUFVLENBQUM7QUFDcEYsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2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QUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBRUQsSUFBSSxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7WUFDcEIsT0FBTyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDTCxDQUFDO3VHQTNKUSxpQkFBaUI7MkZBQWpCLGlCQUFpQix3RUNwQzlCLGd5Q0FxQ0EsNktEWFEsV0FBVyx3M0JBQ1gsbUJBQW1CLGtXQUNuQixrQkFBa0Isd2dCQUNsQixlQUFlLG1yQkFDZixlQUFlLDhCQUNmLGNBQWMsMFdBQ2QsbUJBQW1CLGlnQkFDbkIsaUJBQWlCOzsyRkFHWixpQkFBaUI7a0JBZjdCLFNBQVM7aUNBR00sSUFBSSxXQUNQO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1hdE9wdGlvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWVyZ2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkLCBTY2FsYXJ9IGZyb20gJy4uLy4uL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtOQVRVUkFMX0RST1BET1dOX0RBVEEsIE5hdHVyYWxEcm9wZG93bkRhdGF9IGZyb20gJy4uLy4uL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQge0Ryb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi8uLi9zZWFyY2gvdHlwZXMvZHJvcGRvd24tY29tcG9uZW50JztcbmltcG9ydCB7cG9zc2libGVDb21wYXJhYmxlT3BlcmF0b3JzLCBQb3NzaWJsZUNvbXBhcmFibGVPcGVydG9yS2V5c30gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtkYXRlTWF4LCBkYXRlTWluLCBzZXJpYWxpemV9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge01hdENoZWNrYm94TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQge01hdERhdGVwaWNrZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbmV4cG9ydCB0eXBlIFR5cGVEYXRlQ29uZmlndXJhdGlvbjxEID0gRGF0ZT4gPSB7XG4gICAgbWluPzogRCB8IG51bGw7XG4gICAgbWF4PzogRCB8IG51bGw7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHlwZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdHlwZS1kYXRlLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUeXBlRGF0ZUNvbXBvbmVudDxEID0gYW55PiBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGRhdGVBZGFwdGVyID0gaW5qZWN0PERhdGVBZGFwdGVyPEQ+PihEYXRlQWRhcHRlcik7XG4gICAgcHJpdmF0ZSBkYXRlRm9ybWF0cyA9IGluamVjdChNQVRfREFURV9GT1JNQVRTKTtcblxuICAgIHB1YmxpYyByZWFkb25seSByZW5kZXJlZFZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogUmVxdWlyZWQ8VHlwZURhdGVDb25maWd1cmF0aW9uPEQ+PjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JDdHJsID0gbmV3IEZvcm1Db250cm9sPFBvc3NpYmxlQ29tcGFyYWJsZU9wZXJ0b3JLZXlzPignZXF1YWwnLCB7bm9uTnVsbGFibGU6IHRydWV9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDdHJsID0gbmV3IEZvcm1Db250cm9sPEQgfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9kYXlDdHJsID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JzID0gcG9zc2libGVDb21wYXJhYmxlT3BlcmF0b3JzO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3JDdHJsLFxuICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZUN0cmwsXG4gICAgICAgIHRvZGF5OiB0aGlzLnRvZGF5Q3RybCxcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdHM6IFJlcXVpcmVkPFR5cGVEYXRlQ29uZmlndXJhdGlvbjxEPj4gPSB7XG4gICAgICAgIG1pbjogbnVsbCxcbiAgICAgICAgbWF4OiBudWxsLFxuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBpbmplY3Q8TmF0dXJhbERyb3Bkb3duRGF0YTxUeXBlRGF0ZUNvbmZpZ3VyYXRpb248RD4+PihOQVRVUkFMX0RST1BET1dOX0RBVEEpO1xuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLmRlZmF1bHRzLCAuLi5kYXRhLmNvbmZpZ3VyYXRpb259O1xuXG4gICAgICAgIHRoaXMudG9kYXlDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoaXNUb2RheSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNUb2RheSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbHVlKHRoaXMuZGF0ZUFkYXB0ZXIudG9kYXkoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZUN0cmwuZGlzYWJsZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ3RybC5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5vcGVyYXRvckN0cmwudmFsdWVDaGFuZ2VzLCB0aGlzLnZhbHVlQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMudG9kYXlDdHJsLnZhbHVlQ2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcmVkVmFsdWUubmV4dCh0aGlzLmdldFJlbmRlcmVkVmFsdWUoKSkpO1xuXG4gICAgICAgIHRoaXMuaW5pdFZhbGlkYXRvcnMoKTtcbiAgICAgICAgdGhpcy5yZWxvYWRDb25kaXRpb24oZGF0YS5jb25kaXRpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb25kaXRpb24oKTogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZUN0cmwudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCA9IHt9O1xuICAgICAgICBsZXQgb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZTtcbiAgICAgICAgbGV0IGRhdGU6IHN0cmluZztcbiAgICAgICAgbGV0IGRheUFmdGVyOiBzdHJpbmc7XG5cbiAgICAgICAgaWYgKHRoaXMudG9kYXlDdHJsLnZhbHVlKSB7XG4gICAgICAgICAgICBkYXRlID0gJ3RvZGF5JztcbiAgICAgICAgICAgIGRheUFmdGVyID0gJ3RvbW9ycm93JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGUgPSBzZXJpYWxpemUodGhpcy5kYXRlQWRhcHRlciwgdGhpcy52YWx1ZUN0cmwudmFsdWUpO1xuICAgICAgICAgICAgZGF5QWZ0ZXIgPSBzZXJpYWxpemUodGhpcy5kYXRlQWRhcHRlciwgdGhpcy5nZXREYXlBZnRlcih0aGlzLnZhbHVlQ3RybC52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wZXJhdG9yID09PSAnZXF1YWwnKSB7XG4gICAgICAgICAgICBjb25kaXRpb24uZ3JlYXRlck9yRXF1YWwgPSB7dmFsdWU6IGRhdGV9O1xuICAgICAgICAgICAgY29uZGl0aW9uLmxlc3MgPSB7dmFsdWU6IGRheUFmdGVyfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRyYW5zcGFyZW50bHkgYWRhcHQgZXhjbHVzaXZlL2luY2x1c2l2ZSByYW5nZXNcbiAgICAgICAgICAgIGlmIChkYXRlICE9PSAndG9kYXknKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSAnZ3JlYXRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnZ3JlYXRlck9yRXF1YWwnO1xuICAgICAgICAgICAgICAgICAgICBkYXRlID0gZGF5QWZ0ZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gJ2xlc3NPckVxdWFsJykge1xuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdsZXNzJztcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGRheUFmdGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uZGl0aW9uW29wZXJhdG9yXSA9IHt2YWx1ZTogZGF0ZX07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmRpcnR5O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVsb2FkQ29uZGl0aW9uKGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgJz0nXG4gICAgICAgIGlmIChjb25kaXRpb24uZ3JlYXRlck9yRXF1YWwgJiYgY29uZGl0aW9uLmxlc3MpIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JDdHJsLnNldFZhbHVlKCdlcXVhbCcpO1xuICAgICAgICAgICAgdGhpcy5zZXRUb2RheU9yRGF0ZShjb25kaXRpb24uZ3JlYXRlck9yRXF1YWwudmFsdWUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG9wZXJhdG9yIG9mIHRoaXMub3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCByZWxvYWRlZE9wZXJhdG9yID0gY29uZGl0aW9uW29wZXJhdG9yLmtleV07XG4gICAgICAgICAgICBpZiAocmVsb2FkZWRPcGVyYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlcmF0b3JDdHJsLnNldFZhbHVlKG9wZXJhdG9yLmtleSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRUb2RheU9yRGF0ZShyZWxvYWRlZE9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VG9kYXlPckRhdGUodmFsdWU6IFNjYWxhcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPT09ICd0b2RheScpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbHVlKHRoaXMuZGF0ZUFkYXB0ZXIudG9kYXkoKSk7XG4gICAgICAgICAgICB0aGlzLnRvZGF5Q3RybC5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbHVlKHRoaXMuZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICAgICAgICAgIHRoaXMudG9kYXlDdHJsLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24ubWluKSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goZGF0ZU1pbih0aGlzLmRhdGVBZGFwdGVyLCB0aGlzLmNvbmZpZ3VyYXRpb24ubWluKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLm1heCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGRhdGVNYXgodGhpcy5kYXRlQWRhcHRlciwgdGhpcy5jb25maWd1cmF0aW9uLm1heCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZUN0cmwuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERheUFmdGVyKGRhdGU6IEQpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJEYXlzKHRoaXMuZGF0ZUFkYXB0ZXIuY2xvbmUoZGF0ZSksIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVuZGVyZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzLmZpbmQodiA9PiB2LmtleSA9PT0gdGhpcy5vcGVyYXRvckN0cmwudmFsdWUpO1xuXG4gICAgICAgIGxldCB2YWx1ZSA9ICcnO1xuICAgICAgICBpZiAodGhpcy50b2RheUN0cmwudmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gJGxvY2FsaXplYEF1am91cmQnaHVpYDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlQ3RybC52YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLnZhbHVlQ3RybC52YWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5kaXNwbGF5LmRhdGVJbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3BlcmF0b3IgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBvcGVyYXRvci5sYWJlbCArICcgJyArIHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJNYXRoZW1hdGljYWwgb3BlcmF0b3IgPCA+ID1cIj5PcMOpcmF0ZXVyPC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJvcGVyYXRvckN0cmxcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIHBhbmVsV2lkdGg9XCJcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2Ygb3BlcmF0b3JzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG4+RGF0ZTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ2YWx1ZUN0cmxcIlxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwidmFsdWVcIlxuICAgICAgICAgICAgW21heF09XCJjb25maWd1cmF0aW9uLm1heFwiXG4gICAgICAgICAgICBbbWluXT1cImNvbmZpZ3VyYXRpb24ubWluXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgW2Zvcl09XCJ2YWx1ZVwiIG1hdEljb25TdWZmaXggLz5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICN2YWx1ZSAvPlxuICAgICAgICBAaWYgKHZhbHVlQ3RybC5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgICAgIDxtYXQtZXJyb3I+PCB7eyBjb25maWd1cmF0aW9uLm1pbiB9fTwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodmFsdWVDdHJsLmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgICAgICAgPG1hdC1lcnJvcj4+IHt7IGNvbmZpZ3VyYXRpb24ubWF4IH19PC9tYXQtZXJyb3I+XG4gICAgICAgIH1cbiAgICAgICAgQGlmICh2YWx1ZUN0cmwuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIDxtYXQtZXJyb3I+KjwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtY2hlY2tib3ggW2Zvcm1Db250cm9sXT1cInRvZGF5Q3RybFwiIGkxOG4+QXVqb3VyZCdodWk8L21hdC1jaGVja2JveD5cbjwvZm9ybT5cbiJdfQ==