@formio/angular 6.0.0-rc.7 → 6.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 (124) hide show
  1. package/FormioBaseComponent.d.ts +1 -1
  2. package/FormioBaseComponent.d.ts.map +1 -1
  3. package/auth/auth.service.d.ts.map +1 -1
  4. package/components/formbuilder/formbuilder.component.d.ts +2 -2
  5. package/components/formbuilder/formbuilder.component.d.ts.map +1 -1
  6. package/components/formio/formio.component.d.ts +1 -1
  7. package/components/formio/formio.component.d.ts.map +1 -1
  8. package/core.d.ts +1 -1
  9. package/core.d.ts.map +1 -1
  10. package/custom-tags.service.d.ts.map +1 -0
  11. package/esm2022/FormioBaseComponent.mjs +10 -7
  12. package/esm2022/auth/auth.component.mjs +4 -4
  13. package/esm2022/auth/auth.config.mjs +4 -4
  14. package/esm2022/auth/auth.module.mjs +5 -5
  15. package/esm2022/auth/auth.service.mjs +11 -7
  16. package/esm2022/auth/login/login.component.mjs +4 -4
  17. package/esm2022/auth/register/register.component.mjs +4 -4
  18. package/esm2022/auth/resetpass/resetpass.component.mjs +4 -4
  19. package/esm2022/components/alerts/formio.alerts.component.mjs +4 -4
  20. package/esm2022/components/alerts/parse-html-content.pipe.mjs +4 -4
  21. package/esm2022/components/formbuilder/formbuilder.component.mjs +7 -7
  22. package/esm2022/components/formio/formio.component.mjs +7 -7
  23. package/esm2022/components/formioreport/formioreport.component.mjs +6 -6
  24. package/esm2022/components/loader/formio.loader.component.mjs +4 -4
  25. package/esm2022/core.mjs +2 -2
  26. package/esm2022/custom-tags.service.mjs +15 -0
  27. package/esm2022/formio.common.mjs +1 -1
  28. package/esm2022/formio.config.mjs +21 -6
  29. package/esm2022/formio.module.mjs +6 -6
  30. package/esm2022/formio.service.mjs +2 -2
  31. package/esm2022/grid/GridBodyComponent.mjs +4 -4
  32. package/esm2022/grid/GridFooterComponent.mjs +4 -4
  33. package/esm2022/grid/GridHeaderComponent.mjs +4 -4
  34. package/esm2022/grid/form/FormGridBody.component.mjs +4 -4
  35. package/esm2022/grid/form/FormGridFooter.component.mjs +4 -4
  36. package/esm2022/grid/form/FormGridHeader.component.mjs +4 -4
  37. package/esm2022/grid/form/time-since.pipe.mjs +4 -4
  38. package/esm2022/grid/grid.component.mjs +5 -5
  39. package/esm2022/grid/grid.module.mjs +5 -5
  40. package/esm2022/grid/grid.service.mjs +4 -4
  41. package/esm2022/grid/submission/SubmissionGridBody.component.mjs +4 -4
  42. package/esm2022/grid/submission/SubmissionGridFooter.component.mjs +4 -4
  43. package/esm2022/grid/submission/SubmissionGridHeader.component.mjs +5 -5
  44. package/esm2022/index.mjs +2 -5
  45. package/esm2022/manager/create/create.component.mjs +4 -4
  46. package/esm2022/manager/delete/delete.component.mjs +4 -4
  47. package/esm2022/manager/edit/edit.component.mjs +7 -4
  48. package/esm2022/manager/form/form.component.mjs +4 -4
  49. package/esm2022/manager/form-manager.config.mjs +4 -4
  50. package/esm2022/manager/form-manager.module.mjs +5 -5
  51. package/esm2022/manager/form-manager.service.mjs +7 -10
  52. package/esm2022/manager/index/index.component.mjs +4 -4
  53. package/esm2022/manager/submission/delete/delete.component.mjs +4 -4
  54. package/esm2022/manager/submission/edit/edit.component.mjs +4 -4
  55. package/esm2022/manager/submission/index/index.component.mjs +4 -4
  56. package/esm2022/manager/submission/submission/submission.component.mjs +4 -4
  57. package/esm2022/manager/submission/view/view.component.mjs +4 -4
  58. package/esm2022/manager/view/view.component.mjs +7 -6
  59. package/esm2022/resource/create/create.component.mjs +4 -4
  60. package/esm2022/resource/delete/delete.component.mjs +4 -4
  61. package/esm2022/resource/edit/edit.component.mjs +5 -5
  62. package/esm2022/resource/index/index.component.mjs +4 -4
  63. package/esm2022/resource/resource.component.mjs +4 -4
  64. package/esm2022/resource/resource.config.mjs +4 -4
  65. package/esm2022/resource/resource.module.mjs +5 -5
  66. package/esm2022/resource/resource.service.mjs +5 -5
  67. package/esm2022/resource/resources.service.mjs +4 -4
  68. package/esm2022/resource/view/view.component.mjs +5 -5
  69. package/fesm2022/formio-angular-auth.mjs +29 -25
  70. package/fesm2022/formio-angular-auth.mjs.map +1 -1
  71. package/fesm2022/formio-angular-grid.mjs +41 -41
  72. package/fesm2022/formio-angular-grid.mjs.map +1 -1
  73. package/fesm2022/formio-angular-manager.mjs +51 -50
  74. package/fesm2022/formio-angular-manager.mjs.map +1 -1
  75. package/fesm2022/formio-angular-resource.mjs +32 -32
  76. package/fesm2022/formio-angular-resource.mjs.map +1 -1
  77. package/fesm2022/formio-angular.mjs +58 -203
  78. package/fesm2022/formio-angular.mjs.map +1 -1
  79. package/formio.common.d.ts +2 -2
  80. package/formio.common.d.ts.map +1 -1
  81. package/formio.config.d.ts +10 -0
  82. package/formio.config.d.ts.map +1 -1
  83. package/grid/submission/SubmissionGridHeader.component.d.ts +1 -1
  84. package/grid/submission/SubmissionGridHeader.component.d.ts.map +1 -1
  85. package/index.d.ts +1 -4
  86. package/index.d.ts.map +1 -1
  87. package/manager/edit/edit.component.d.ts.map +1 -1
  88. package/manager/form-manager.config.d.ts +3 -1
  89. package/manager/form-manager.config.d.ts.map +1 -1
  90. package/manager/form-manager.service.d.ts +1 -2
  91. package/manager/form-manager.service.d.ts.map +1 -1
  92. package/manager/view/view.component.d.ts.map +1 -1
  93. package/package.json +2 -8
  94. package/custom-component/create-custom-component.d.ts +0 -239
  95. package/custom-component/create-custom-component.d.ts.map +0 -1
  96. package/custom-component/custom-tags.service.d.ts.map +0 -1
  97. package/custom-component/register-custom-component.d.ts +0 -7
  98. package/custom-component/register-custom-component.d.ts.map +0 -1
  99. package/elements.common.d.ts +0 -31
  100. package/elements.common.d.ts.map +0 -1
  101. package/embed/builder.component.d.ts +0 -17
  102. package/embed/builder.component.d.ts.map +0 -1
  103. package/embed/embed.module.d.ts +0 -10
  104. package/embed/embed.module.d.ts.map +0 -1
  105. package/embed/formio-angular-embed.d.ts.map +0 -1
  106. package/embed/formio.component.d.ts +0 -19
  107. package/embed/formio.component.d.ts.map +0 -1
  108. package/embed/formio.config.d.ts +0 -10
  109. package/embed/formio.config.d.ts.map +0 -1
  110. package/embed/index.d.ts +0 -6
  111. package/embed/index.d.ts.map +0 -1
  112. package/esm2022/custom-component/create-custom-component.mjs +0 -144
  113. package/esm2022/custom-component/custom-tags.service.mjs +0 -15
  114. package/esm2022/custom-component/register-custom-component.mjs +0 -23
  115. package/esm2022/elements.common.mjs +0 -2
  116. package/esm2022/embed/builder.component.mjs +0 -44
  117. package/esm2022/embed/embed.module.mjs +0 -36
  118. package/esm2022/embed/formio-angular-embed.mjs +0 -5
  119. package/esm2022/embed/formio.component.mjs +0 -53
  120. package/esm2022/embed/formio.config.mjs +0 -15
  121. package/esm2022/embed/index.mjs +0 -6
  122. package/fesm2022/formio-angular-embed.mjs +0 -140
  123. package/fesm2022/formio-angular-embed.mjs.map +0 -1
  124. /package/{custom-component/custom-tags.service.d.ts → custom-tags.service.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"view.component.d.ts","sourceRoot":"","sources":["../../../../projects/angular-formio/manager/src/view/view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;;AAGzD,qBAGa,wBAAyB,YAAW,MAAM;IAO5C,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,iBAAiB;IAVzB,UAAU,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAsB;IACrD,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAsB;IACnD,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAsB;gBAEtD,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,iBAAiB;IAQhC,QAAQ;IAIR,QAAQ,CAAC,UAAU,EAAE,GAAG;yCAvBb,wBAAwB;2CAAxB,wBAAwB;CAgCpC"}
1
+ {"version":3,"file":"view.component.d.ts","sourceRoot":"","sources":["../../../../projects/angular-formio/manager/src/view/view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;;AAGzD,qBAGa,wBAAyB,YAAW,MAAM;IAO5C,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,iBAAiB;IAVzB,UAAU,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAsB;IACrD,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAsB;IACnD,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAsB;gBAEtD,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,iBAAiB;IAQhC,QAAQ;IAIR,QAAQ,CAAC,UAAU,EAAE,GAAG;yCAvBb,wBAAwB;2CAAxB,wBAAwB;CAiCpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formio/angular",
3
- "version": "6.0.0-rc.7",
3
+ "version": "6.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/formio/angular-formio"
@@ -28,7 +28,7 @@
28
28
  "@angular/core": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0",
29
29
  "@angular/common": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0",
30
30
  "@angular/elements": "^9.0.0 || ^10.0.0 || ^11.0.0|| ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0",
31
- "@formio/js": "^5.0.0-rc.30",
31
+ "formiojs": "^4.18.0",
32
32
  "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0",
33
33
  "lodash": "^4.17.20",
34
34
  "ngx-bootstrap": "^10.2.0"
@@ -54,12 +54,6 @@
54
54
  "esm": "./esm2022/auth/formio-angular-auth.mjs",
55
55
  "default": "./fesm2022/formio-angular-auth.mjs"
56
56
  },
57
- "./embed": {
58
- "types": "./embed/index.d.ts",
59
- "esm2022": "./esm2022/embed/formio-angular-embed.mjs",
60
- "esm": "./esm2022/embed/formio-angular-embed.mjs",
61
- "default": "./fesm2022/formio-angular-embed.mjs"
62
- },
63
57
  "./grid": {
64
58
  "types": "./grid/index.d.ts",
65
59
  "esm2022": "./esm2022/grid/formio-angular-grid.mjs",
@@ -1,239 +0,0 @@
1
- import { BuilderInfo, ExtendedComponentSchema } from '@formio/js';
2
- import { FormioCustomComponentInfo, FormioCustomElement } from '../elements.common';
3
- export declare function createCustomFormioComponent(customComponentOptions: FormioCustomComponentInfo): {
4
- new (component: ExtendedComponentSchema, options: any, data: any): {
5
- id: string;
6
- type: string;
7
- _customAngularElement: FormioCustomElement;
8
- readonly defaultSchema: ExtendedComponentSchema;
9
- readonly emptyValue: any;
10
- component: ExtendedComponentSchema;
11
- elementInfo(): import("@formio/js").ElementInfo;
12
- readonly inputInfo: {
13
- type: string;
14
- component: ExtendedComponentSchema<any>;
15
- changeEvent: string;
16
- attr: any;
17
- content: string;
18
- id: any;
19
- };
20
- renderElement(value: any, index: number): any;
21
- attach(element: HTMLElement): any;
22
- useWrapper(): boolean;
23
- readonly defaultValue: any;
24
- readonly maskOptions: {
25
- label: any;
26
- value: any;
27
- }[];
28
- readonly isMultipleMasksField: boolean;
29
- getMaskByName(maskName: string): any;
30
- setInputMask(input: any, inputMask: any): any;
31
- getMaskOptions(): {
32
- label: any;
33
- value: any;
34
- }[];
35
- readonly remainingWords: number;
36
- setCounter(type: string, element: any, count: number, max: number): void;
37
- updateValueAt(value: any, flags: any, index: string | number): void;
38
- getValueAt(index: string | number): any;
39
- updateValue(value: any, flags: any, index: string | number): any;
40
- attachElement(element: any, index: string | number): void;
41
- readonly widget: any;
42
- createWidget(index: string | number): any;
43
- addFocusBlurEvents(element: any): void;
44
- dataValue: any;
45
- readonly addAnother: any;
46
- renderRow(value: any, index: any): any;
47
- onSelectMaskHandler(event: any): void;
48
- tryAttachMultipleMasksInput(): boolean;
49
- updateMask(input: any, mask: any): void;
50
- addNewValue(value: any): void;
51
- addValue(): void;
52
- render(element: any): any;
53
- originalComponent: any;
54
- refs: Object;
55
- attached: boolean;
56
- rendered: boolean;
57
- data: Object;
58
- error: string;
59
- tooltip: string;
60
- row: any;
61
- pristine: boolean;
62
- parent: any;
63
- root: any;
64
- lastChanged: any;
65
- triggerRedraw: Function;
66
- tooltips: any[];
67
- invalid: boolean;
68
- isBuilt: boolean;
69
- readonly ready: any;
70
- readonly labelInfo: any;
71
- init(): void;
72
- destroy(): void;
73
- readonly shouldDisabled: any;
74
- readonly isInputComponent: boolean;
75
- readonly hasInput: boolean;
76
- readonly key: any;
77
- parentVisible: any;
78
- parentDisabled: any;
79
- visible: any;
80
- currentForm: any;
81
- readonly fullMode: boolean;
82
- readonly builderMode: boolean;
83
- getModifiedSchema(schema: ExtendedComponentSchema, defaultSchema: import("@formio/js").ComponentSchema<any>, recursion: boolean): ExtendedComponentSchema;
84
- readonly schema: ExtendedComponentSchema;
85
- t(text: string, params?: Object): any;
86
- labelIsHidden(): boolean;
87
- readonly transform: any;
88
- getTemplate(names: any, modes: any): any;
89
- checkTemplate(templates: any, names: any, modes: any): any;
90
- checkTemplateMode(templatesByName: any, modes: any): any;
91
- renderTemplate(name: any, data: any, modeOption?: any[]): any;
92
- sanitize(dirty: string): any;
93
- renderString(template: any, data: any): HTMLElement;
94
- performInputMapping(input: any): any;
95
- getBrowserLanguage(): string;
96
- beforeNext(): any;
97
- beforePage(): any;
98
- beforeSubmit(): any;
99
- readonly submissionTimezone: any;
100
- readonly canDisable: boolean;
101
- loadRefs(element: any, refs: any): any;
102
- build(element: any): any;
103
- addShortcut(element: any, shortcut: any): void;
104
- removeShortcut(element: any, shortcut: any): void;
105
- detach(): void;
106
- attachRefreshEvent(refreshData: any): void;
107
- attachRefreshOn(): void;
108
- refresh(value: any): void;
109
- inContext(component: any): boolean;
110
- readonly viewOnly: any;
111
- createViewOnlyElement(): HTMLElement;
112
- readonly defaultViewOnlyValue: "-";
113
- getValueAsString(value: any): string;
114
- getView(value: any): string;
115
- updateItems(...args: any[]): void;
116
- createModal(): HTMLElement;
117
- readonly className: string;
118
- readonly customStyle: string;
119
- getElement(): HTMLElement;
120
- evalContext(additional: any): any;
121
- setPristine(pristine: boolean): void;
122
- removeValue(index: number): void;
123
- iconClass(name: any, spinning: any): any;
124
- readonly name: string;
125
- readonly errorLabel: string;
126
- errorMessage(type: any): any;
127
- setContent(element: any, content: any): boolean;
128
- redraw(): any;
129
- rebuild(): any;
130
- removeEventListeners(): void;
131
- hasClass(element: any, className: string): any;
132
- addClass(element: any, className: string): any;
133
- removeClass(element: any, className: string): any;
134
- hasCondition(): boolean;
135
- conditionallyVisible(data: any): boolean;
136
- checkCondition(row: any, data: Object): boolean;
137
- checkConditions(data: any): any;
138
- readonly logic: any[];
139
- fieldLogic(data: any): any;
140
- applyActions(actions: any[], result: any, data: any, newComponent: any): boolean;
141
- addInputError(message: any, dirty: boolean): void;
142
- clearOnHide(show: boolean): void;
143
- onChange(flags: Object, fromRoot: boolean): void;
144
- readonly wysiwygDefault: {
145
- theme: string;
146
- placeholder: any;
147
- modules: {
148
- clipboard: {
149
- matchVisual: boolean;
150
- };
151
- toolbar: any[];
152
- };
153
- };
154
- addCKE(element: any, settings: Object, onChange: (input: any) => any): any;
155
- addQuill(element: any, settings: Object, onChange: (input: any) => any): any;
156
- addAce(element: any, settings: Object, onChange: (input: any) => any): any;
157
- hasValue(data: Object): boolean;
158
- readonly rootValue: any;
159
- readonly rootPristine: any;
160
- splice(index: string | number): void;
161
- deleteValue(): void;
162
- getValue(): any;
163
- setValue(value: any, flags: any): boolean;
164
- setValueAt(index: number, value: any, flags: any): void;
165
- readonly hasSetValue: boolean;
166
- restoreValue(): void;
167
- normalizeValue(value: any): any;
168
- getIcon(name: any, content: any, styles: any, ref?: string): any;
169
- resetValue(): void;
170
- hasChanged(before: any, after: any): boolean;
171
- updateOnChange(flags: any, changed: any): boolean;
172
- calculateValue(data: Object, flags: any): boolean;
173
- label: any;
174
- getRoot(): import("@formio/js/types/components/_classes/component/component").Component;
175
- invalidMessage(data: any, dirty: boolean, ignoreCondition?: boolean): any;
176
- isValid(data: any, dirty: boolean): boolean;
177
- checkValidity(data: any, dirty: any, rowData: any): boolean;
178
- readonly validationValue: any;
179
- isEmpty(value: any): boolean;
180
- validateMultiple(): boolean;
181
- readonly errors: any[];
182
- setCustomValidity(message: any, dirty: any): void;
183
- shouldSkipValidation(data: any, dirty: any, rowData: any): boolean;
184
- whenReady(): any;
185
- readonly dataReady: any;
186
- asString(value: any): string;
187
- disabled: boolean;
188
- setDisabled(element: any, disabled: any): void;
189
- setLoading(element: any, loading: any): void;
190
- selectOptions(select: any, tag: any, options: any, defaultValue: any): void;
191
- setSelectValue(select: any, value: any): void;
192
- clear(): any;
193
- append(element: HTMLElement): void;
194
- prepend(element: HTMLElement): void;
195
- removeChild(element: HTMLElement): void;
196
- attachLogic(): void;
197
- autofocus(): void;
198
- focus(): void;
199
- readonly shouldDisable: boolean;
200
- readonly info: import("@formio/js").ElementInfo;
201
- element: any;
202
- validators: (keyof import("@formio/js").ValidateOptions)[];
203
- calculatedValue: any;
204
- options: any;
205
- labelElement: any;
206
- eventHandlers: any[];
207
- i18next: any;
208
- events: import("@formio/js/types/eventEmitter").EventEmitter;
209
- defaultMask: any;
210
- inputMasks: any[];
211
- on(event: string, cb: Function, internal: boolean, once?: boolean): any;
212
- once(event: string, cb: Function, internal: boolean): any;
213
- onAny(cb: Function): any;
214
- off(event: string): void;
215
- emit(event: string, data: Object): void;
216
- addEventListener(obj: HTMLElement, type: string, func: Function, persistent?: boolean): any;
217
- removeEventListener(obj: Object, type: any): any;
218
- removeAllEvents(includeExternal: boolean): void;
219
- appendTo(element: HTMLElement, container: HTMLElement): any;
220
- prependTo(element: HTMLElement, container: HTMLElement): any;
221
- removeChildFrom(element: HTMLElement, container: HTMLElement): any;
222
- ce(type: string, attr?: Object, children?: string | HTMLElement | (string | HTMLElement)[]): HTMLElement;
223
- appendChild(element: any, child: any): any;
224
- maskPlaceholder(mask: HTMLElement): string;
225
- text(text: string): Text;
226
- attr(element: HTMLElement, attr: Object): void;
227
- empty(element: HTMLElement): void;
228
- interpolate(string: any, data: any): any;
229
- evaluate(func: any, args: any, ret: any, tokenize?: any): any;
230
- hook(...args: any[]): any;
231
- };
232
- editForm: () => {
233
- components: ExtendedComponentSchema[];
234
- };
235
- schema(): ExtendedComponentSchema;
236
- readonly builderInfo: BuilderInfo;
237
- tableView(value: any, options: any): void;
238
- };
239
- //# sourceMappingURL=create-custom-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-custom-component.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/src/custom-component/create-custom-component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAc,uBAAuB,EAAwB,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAe,MAAM,oBAAoB,CAAC;AAMjG,wBAAgB,2BAA2B,CAAC,sBAAsB,EAAE,yBAAyB;oBAiC3D,uBAAuB,WAAW,GAAG,QAAQ,GAAG;;;+BA5BvD,mBAAmB;;;mBA4BZ,uBAAuB;;;;;;;;;;6BAgChC,GAAG,SAAS,MAAM;wBASvB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0F9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-tags.service.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/src/custom-component/custom-tags.service.ts"],"names":[],"mappings":";AAEA,qBACa,iBAAiB;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAM;IAEpB,YAAY,CAAC,GAAG,EAAE,MAAM;yCAHb,iBAAiB;6CAAjB,iBAAiB;CAM7B"}
@@ -1,7 +0,0 @@
1
- import { Injector, Type } from '@angular/core';
2
- import { FormioCustomComponentInfo } from '../elements.common';
3
- export declare function registerCustomTag(tag: string, injector: Injector): void;
4
- export declare function registerCustomTags(tags: string[], injector: Injector): void;
5
- export declare function registerCustomFormioComponent(options: FormioCustomComponentInfo, angularComponent: Type<any>, injector: Injector): void;
6
- export declare function registerCustomFormioComponentWithClass(options: FormioCustomComponentInfo, angularComponent: Type<any>, formioClass: any, injector: Injector): void;
7
- //# sourceMappingURL=register-custom-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-custom-component.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/src/custom-component/register-custom-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE3E;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,yBAAyB,EAClC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,EAC3B,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAON;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,yBAAyB,EAClC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,EAC3B,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAON"}
@@ -1,31 +0,0 @@
1
- import { ExtendedComponentSchema, BuilderInfo, ValidateOptions } from '@formio/js';
2
- import { EventEmitter } from '@angular/core';
3
- import { NgElement, WithProperties } from '@angular/elements';
4
- export interface FormioCustomComponentInfo extends BuilderInfo {
5
- type: string;
6
- selector: string;
7
- emptyValue?: any;
8
- extraValidators?: (keyof ValidateOptions)[];
9
- fieldOptions?: string[];
10
- template?: string;
11
- changeEvent?: string;
12
- editForm?: () => {
13
- components: ExtendedComponentSchema[];
14
- };
15
- }
16
- export type FormioCustomElement = NgElement & WithProperties<{
17
- value: any;
18
- } & ExtendedComponentSchema>;
19
- export interface FormioEvent {
20
- eventName: string;
21
- data?: {
22
- [key: string]: any;
23
- };
24
- }
25
- export interface FormioCustomComponent<T> {
26
- value: T;
27
- valueChange: EventEmitter<T>;
28
- disabled: boolean;
29
- formioEvent?: EventEmitter<FormioEvent>;
30
- }
31
- //# sourceMappingURL=elements.common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elements.common.d.ts","sourceRoot":"","sources":["../../projects/angular-formio/src/elements.common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG9D,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,EAAE,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM;QAAE,UAAU,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,cAAc,CAAC;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,GAAG,uBAAuB,CAAC,CAAC;AAEvG,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;CACzC"}
@@ -1,17 +0,0 @@
1
- import { ElementRef, AfterViewInit, EventEmitter } from '@angular/core';
2
- import { Formio } from '@formio/js/lib/cjs/Embed';
3
- import { FormioAppConfig } from './formio.config';
4
- import * as i0 from "@angular/core";
5
- export declare class FormioBuilder implements AfterViewInit {
6
- appConfig: FormioAppConfig;
7
- element: ElementRef;
8
- form?: Object;
9
- options?: Object;
10
- ready: EventEmitter<Formio>;
11
- error: EventEmitter<any>;
12
- constructor(appConfig: FormioAppConfig);
13
- ngAfterViewInit(): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<FormioBuilder, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<FormioBuilder, "formio-builder", never, { "form": { "alias": "form"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "ready": "ready"; "error": "error"; }, never, never, false, never>;
16
- }
17
- //# sourceMappingURL=builder.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.component.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/embed/src/builder.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAoB,aAAa,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;;AAElD,qBAIa,aAAc,YAAW,aAAa;IAM5B,SAAS,EAAE,eAAe;IALxB,OAAO,EAAE,UAAU,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAM;IACrB,KAAK,uBAA8B;IACnC,KAAK,oBAA2B;gBACvB,SAAS,EAAE,eAAe;IAI7C,eAAe;yCAVN,aAAa;2CAAb,aAAa;CAezB"}
@@ -1,10 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./formio.component";
3
- import * as i2 from "./builder.component";
4
- import * as i3 from "@angular/common";
5
- export declare class FormioEmbedModule {
6
- static ɵfac: i0.ɵɵFactoryDeclaration<FormioEmbedModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<FormioEmbedModule, [typeof i1.FormioComponent, typeof i2.FormioBuilder], [typeof i3.CommonModule], [typeof i1.FormioComponent, typeof i2.FormioBuilder]>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<FormioEmbedModule>;
9
- }
10
- //# sourceMappingURL=embed.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed.module.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/embed/src/embed.module.ts"],"names":[],"mappings":";;;;AAMA,qBAgBa,iBAAiB;yCAAjB,iBAAiB;0CAAjB,iBAAiB;0CAAjB,iBAAiB;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"formio-angular-embed.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/embed/src/formio-angular-embed.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -1,19 +0,0 @@
1
- import { ElementRef, AfterViewInit, EventEmitter } from '@angular/core';
2
- import { Formio } from '@formio/js/lib/cjs/Embed';
3
- import { FormioAppConfig } from './formio.config';
4
- import * as i0 from "@angular/core";
5
- export declare class FormioComponent implements AfterViewInit {
6
- appConfig: FormioAppConfig;
7
- src?: string;
8
- form?: Object;
9
- submission?: Object;
10
- options?: Object;
11
- ready: EventEmitter<Formio>;
12
- error: EventEmitter<any>;
13
- element: ElementRef;
14
- constructor(appConfig: FormioAppConfig);
15
- ngAfterViewInit(): void;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<FormioComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<FormioComponent, "formio", never, { "src": { "alias": "src"; "required": false; }; "form": { "alias": "form"; "required": false; }; "submission": { "alias": "submission"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "ready": "ready"; "error": "error"; }, never, never, false, never>;
18
- }
19
- //# sourceMappingURL=formio.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formio.component.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/embed/src/formio.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAE,aAAa,EAAiB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;;AAElD,qBAIa,eAAgB,YAAW,aAAa;IAQ9B,SAAS,EAAE,eAAe;IAPpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAM;IACrB,KAAK,uBAA8B;IACnC,KAAK,oBAA2B;IACrB,OAAO,EAAE,UAAU,CAAC;gBACtB,SAAS,EAAE,eAAe;IAI7C,eAAe,IAAI,IAAI;yCAZd,eAAe;2CAAf,eAAe;CAoB3B"}
@@ -1,10 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class FormioAppConfig {
3
- appUrl: string;
4
- apiUrl: string;
5
- icons?: string;
6
- formOnly?: boolean;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<FormioAppConfig, never>;
8
- static ɵprov: i0.ɵɵInjectableDeclaration<FormioAppConfig>;
9
- }
10
- //# sourceMappingURL=formio.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formio.config.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/embed/src/formio.config.ts"],"names":[],"mappings":";AAEA,qBACa,eAAe;IAC1B,MAAM,SAAM;IACZ,MAAM,SAAM;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;yCAJR,eAAe;6CAAf,eAAe;CAK3B"}
package/embed/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Formio } from '@formio/js/lib/cjs/Embed';
2
- export { FormioComponent } from './formio.component';
3
- export { FormioBuilder } from './builder.component';
4
- export { FormioEmbedModule } from './embed.module';
5
- export { Formio };
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../projects/angular-formio/embed/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,144 +0,0 @@
1
- // @ts-nocheck
2
- import { Components, Utils as FormioUtils } from '@formio/js';
3
- import { clone, isNil, isArray } from 'lodash';
4
- const BaseInputComponent = Components.components.input;
5
- const TextfieldComponent = Components.components.textfield;
6
- export function createCustomFormioComponent(customComponentOptions) {
7
- return class CustomComponent extends BaseInputComponent {
8
- component;
9
- static editForm = customComponentOptions.editForm || TextfieldComponent.editForm;
10
- id = FormioUtils.getRandomComponentId();
11
- type = customComponentOptions.type;
12
- _customAngularElement;
13
- static schema() {
14
- return BaseInputComponent.schema({
15
- ...customComponentOptions.schema,
16
- type: customComponentOptions.type,
17
- });
18
- }
19
- get defaultSchema() {
20
- return CustomComponent.schema();
21
- }
22
- get emptyValue() {
23
- return customComponentOptions.emptyValue || null;
24
- }
25
- static get builderInfo() {
26
- return {
27
- title: customComponentOptions.title,
28
- group: customComponentOptions.group,
29
- icon: customComponentOptions.icon,
30
- weight: customComponentOptions.weight,
31
- documentation: customComponentOptions.documentation,
32
- schema: CustomComponent.schema(),
33
- };
34
- }
35
- constructor(component, options, data) {
36
- super(component, {
37
- ...options,
38
- sanitizeConfig: {
39
- addTags: [customComponentOptions.selector],
40
- },
41
- }, data);
42
- this.component = component;
43
- if (customComponentOptions.extraValidators) {
44
- this.validators = this.validators.concat(customComponentOptions.extraValidators);
45
- }
46
- }
47
- elementInfo() {
48
- const info = super.elementInfo();
49
- info.type = customComponentOptions.selector;
50
- info.changeEvent = customComponentOptions.changeEvent || 'valueChange';
51
- info.attr = {
52
- ...info.attr,
53
- class: info.attr.class.replace('form-control', 'form-control-custom-field') // remove the form-control class as the custom angular component may look different
54
- };
55
- return info;
56
- }
57
- get inputInfo() {
58
- const info = {
59
- id: this.key,
60
- ...this.elementInfo()
61
- };
62
- return info;
63
- }
64
- renderElement(value, index) {
65
- const info = this.inputInfo;
66
- return this.renderTemplate(customComponentOptions.template || 'input', {
67
- input: info,
68
- value,
69
- index
70
- });
71
- }
72
- attach(element) {
73
- let superAttach = super.attach(element);
74
- this._customAngularElement = element.querySelector(customComponentOptions.selector);
75
- // Bind the custom options and the validations to the Angular component's inputs (flattened)
76
- if (this._customAngularElement) {
77
- // To make sure we have working input in IE...
78
- // IE doesn't render it properly if it's not visible on the screen
79
- // due to the whole structure applied via innerHTML to the parent
80
- // so we need to use appendChild
81
- if (!this._customAngularElement.getAttribute('ng-version')) {
82
- this._customAngularElement.removeAttribute('ref');
83
- const newCustomElement = document.createElement(customComponentOptions.selector);
84
- newCustomElement.setAttribute('ref', 'input');
85
- Object.keys(this.inputInfo.attr).forEach((attr) => {
86
- newCustomElement.setAttribute(attr, this.inputInfo.attr[attr]);
87
- });
88
- this._customAngularElement.appendChild(newCustomElement);
89
- this._customAngularElement = newCustomElement;
90
- superAttach = super.attach(element);
91
- }
92
- // Bind customOptions
93
- for (const key in this.component.customOptions) {
94
- if (this.component.customOptions.hasOwnProperty(key)) {
95
- this._customAngularElement[key] = this.component.customOptions[key];
96
- }
97
- }
98
- // Bind validate options
99
- for (const key in this.component.validate) {
100
- if (this.component.validate.hasOwnProperty(key)) {
101
- this._customAngularElement[key] = this.component.validate[key];
102
- }
103
- }
104
- // Bind options explicitly set
105
- const fieldOptions = customComponentOptions.fieldOptions;
106
- if (isArray(fieldOptions) && fieldOptions.length > 0) {
107
- for (const key in fieldOptions) {
108
- if (fieldOptions.hasOwnProperty(key)) {
109
- this._customAngularElement[fieldOptions[key]] = this.component[fieldOptions[key]];
110
- }
111
- }
112
- }
113
- // Attach event listener for emit event
114
- this._customAngularElement.addEventListener('formioEvent', (event) => {
115
- this.emit(event.detail.eventName, {
116
- ...event.detail.data,
117
- component: this.component
118
- });
119
- });
120
- // Ensure we bind the value (if it isn't a multiple-value component with no wrapper)
121
- if (!this._customAngularElement.value && !this.component.disableMultiValueWrapper) {
122
- this.restoreValue();
123
- }
124
- }
125
- return superAttach;
126
- }
127
- // Add extra option to support multiple value (e.g. datagrid) with single angular component (disableMultiValueWrapper)
128
- useWrapper() {
129
- return this.component.hasOwnProperty('multiple') && this.component.multiple && !this.component.disableMultiValueWrapper;
130
- }
131
- get defaultValue() {
132
- let defaultValue = this.emptyValue;
133
- // handle falsy default value
134
- if (!isNil(this.component.defaultValue)) {
135
- defaultValue = this.component.defaultValue;
136
- }
137
- if (this.component.customDefaultValue && !this.options.preview) {
138
- defaultValue = this.evaluate(this.component.customDefaultValue, { value: '' }, 'value');
139
- }
140
- return clone(defaultValue);
141
- }
142
- };
143
- }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWN1c3RvbS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWZvcm1pby9zcmMvY3VzdG9tLWNvbXBvbmVudC9jcmVhdGUtY3VzdG9tLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsT0FBTyxFQUFlLFVBQVUsRUFBMkIsS0FBSyxJQUFJLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0MsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztBQUN2RCxNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBRTNELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxzQkFBaUQ7SUFDM0YsT0FBTyxNQUFNLGVBQWdCLFNBQVEsa0JBQWtCO1FBZ0NsQztRQS9CbkIsTUFBTSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBQ2pGLEVBQUUsR0FBRyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDO1FBQ25DLHFCQUFxQixDQUFzQjtRQUUzQyxNQUFNLENBQUMsTUFBTTtZQUNYLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUMvQixHQUFHLHNCQUFzQixDQUFDLE1BQU07Z0JBQ2hDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxJQUFJO2FBQ2xDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLGFBQWE7WUFDZixPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxVQUFVO1lBQ1osT0FBTyxz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QUksQ0FBQyxVQUFVLENBQUM7WUFFbkMsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDdkMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO2FBQzVDO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUNqQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFDYixPQUFPLENBQ1IsQ0FBQzthQUNIO1lBRUQsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLW5vY2hlY2tcbmltcG9ydCB7IEJ1aWxkZXJJbmZvLCBDb21wb25lbnRzLCBFeHRlbmRlZENvbXBvbmVudFNjaGVtYSwgVXRpbHMgYXMgRm9ybWlvVXRpbHMgfSBmcm9tICdAZm9ybWlvL2pzJztcbmltcG9ydCB7IEZvcm1pb0N1c3RvbUNvbXBvbmVudEluZm8sIEZvcm1pb0N1c3RvbUVsZW1lbnQsIEZvcm1pb0V2ZW50IH0gZnJvbSAnLi4vZWxlbWVudHMuY29tbW9uJztcbmltcG9ydCB7IGNsb25lLCBpc05pbCwgaXNBcnJheSB9IGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IEJhc2VJbnB1dENvbXBvbmVudCA9IENvbXBvbmVudHMuY29tcG9uZW50cy5pbnB1dDtcbmNvbnN0IFRleHRmaWVsZENvbXBvbmVudCA9IENvbXBvbmVudHMuY29tcG9uZW50cy50ZXh0ZmllbGQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDdXN0b21Gb3JtaW9Db21wb25lbnQoY3VzdG9tQ29tcG9uZW50T3B0aW9uczogRm9ybWlvQ3VzdG9tQ29tcG9uZW50SW5mbykge1xuICByZXR1cm4gY2xhc3MgQ3VzdG9tQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IHtcbiAgICBzdGF0aWMgZWRpdEZvcm0gPSBjdXN0b21Db21wb25lbnRPcHRpb25zLmVkaXRGb3JtIHx8IFRleHRmaWVsZENvbXBvbmVudC5lZGl0Rm9ybTtcbiAgICBpZCA9IEZvcm1pb1V0aWxzLmdldFJhbmRvbUNvbXBvbmVudElkKCk7XG4gICAgdHlwZSA9IGN1c3RvbUNvbXBvbmVudE9wdGlvbnMudHlwZTtcbiAgICBfY3VzdG9tQW5ndWxhckVsZW1lbnQ6IEZvcm1pb0N1c3RvbUVsZW1lbnQ7XG5cbiAgICBzdGF0aWMgc2NoZW1hKCkge1xuICAgICAgcmV0dXJuIEJhc2VJbnB1dENvbXBvbmVudC5zY2hlbWEoe1xuICAgICAgICAuLi5jdXN0b21Db21wb25lbnRPcHRpb25zLnNjaGVtYSxcbiAgICAgICAgdHlwZTogY3VzdG9tQ29tcG9uZW50T3B0aW9ucy50eXBlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHRTY2hlbWEoKSB7XG4gICAgICByZXR1cm4gQ3VzdG9tQ29tcG9uZW50LnNjaGVtYSgpO1xuICAgIH1cblxuICAgIGdldCBlbXB0eVZhbHVlKCkge1xuICAgICAgcmV0dXJuIGN1c3RvbUNvbXBvbmVudE9wdGlvbnMuZW1wdHlWYWx1ZSB8fCBudWxsO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgYnVpbGRlckluZm8oKTogQnVpbGRlckluZm8ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IGN1c3RvbUNvbXBvbmVudE9wdGlvbnMudGl0bGUsXG4gICAgICAgIGdyb3VwOiBjdXN0b21Db21wb25lbnRPcHRpb25zLmdyb3VwLFxuICAgICAgICBpY29uOiBjdXN0b21Db21wb25lbnRPcHRpb25zLmljb24sXG4gICAgICAgIHdlaWdodDogY3VzdG9tQ29tcG9uZW50T3B0aW9ucy53ZWlnaHQsXG4gICAgICAgIGRvY3VtZW50YXRpb246IGN1c3RvbUNvbXBvbmVudE9wdGlvbnMuZG9jdW1lbnRhdGlvbixcbiAgICAgICAgc2NoZW1hOiBDdXN0b21Db21wb25lbnQuc2NoZW1hKCksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wb25lbnQ6IEV4dGVuZGVkQ29tcG9uZW50U2NoZW1hLCBvcHRpb25zOiBhbnksIGRhdGE6IGFueSkge1xuICAgICAgc3VwZXIoY29tcG9uZW50LCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNhbml0aXplQ29uZmlnOiB7XG4gICAgICAgICAgYWRkVGFnczogW2N1c3RvbUNvbXBvbmVudE9wdGlvbnMuc2VsZWN0b3JdLFxuICAgICAgICB9LFxuICAgICAgfSwgZGF0YSk7XG5cbiAgICAgIGlmIChjdXN0b21Db21wb25lbnRPcHRpb25zLmV4dHJhVmFsaWRhdG9ycykge1xuICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSB0aGlzLnZhbGlkYXRvcnMuY29uY2F0KGN1c3RvbUNvbXBvbmVudE9wdGlvbnMuZXh0cmFWYWxpZGF0b3JzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbGVtZW50SW5mbygpIHtcbiAgICAgIGNvbnN0IGluZm8gPSBzdXBlci5lbGVtZW50SW5mbygpO1xuICAgICAgaW5mby50eXBlID0gY3VzdG9tQ29tcG9uZW50T3B0aW9ucy5zZWxlY3RvcjtcbiAgICAgIGluZm8uY2hhbmdlRXZlbnQgPSBjdXN0b21Db21wb25lbnRPcHRpb25zLmNoYW5nZUV2ZW50IHx8ICd2YWx1ZUNoYW5nZSc7XG4gICAgICBpbmZvLmF0dHIgPSB7XG4gICAgICAgIC4uLmluZm8uYXR0cixcbiAgICAgICAgY2xhc3M6IGluZm8uYXR0ci5jbGFzcy5yZXBsYWNlKCdmb3JtLWNvbnRyb2wnLCAnZm9ybS1jb250cm9sLWN1c3RvbS1maWVsZCcpIC8vIHJlbW92ZSB0aGUgZm9ybS1jb250cm9sIGNsYXNzIGFzIHRoZSBjdXN0b20gYW5ndWxhciBjb21wb25lbnQgbWF5IGxvb2sgZGlmZmVyZW50XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0SW5mbygpIHtcbiAgICAgIGNvbnN0IGluZm8gPSB7XG4gICAgICAgIGlkOiB0aGlzLmtleSxcbiAgICAgICAgLi4udGhpcy5lbGVtZW50SW5mbygpXG4gICAgICB9XG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICByZW5kZXJFbGVtZW50KHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmlucHV0SW5mbztcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKGN1c3RvbUNvbXBvbmVudE9wdGlvbnMudGVtcGxhdGUgfHwgJ2lucHV0Jywge1xuICAgICAgICBpbnB1dDogaW5mbyxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGluZGV4XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBhdHRhY2goZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgIGxldCBzdXBlckF0dGFjaCA9IHN1cGVyLmF0dGFjaChlbGVtZW50KTtcblxuICAgICAgdGhpcy5fY3VzdG9tQW5ndWxhckVsZW1lbnQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoY3VzdG9tQ29tcG9uZW50T3B0aW9ucy5zZWxlY3Rvcik7XG5cbiAgICAgIC8vIEJpbmQgdGhlIGN1c3RvbSBvcHRpb25zIGFuZCB0aGUgdmFsaWRhdGlvbnMgdG8gdGhlIEFuZ3VsYXIgY29tcG9uZW50J3MgaW5wdXRzIChmbGF0dGVuZWQpXG4gICAgICBpZiAodGhpcy5fY3VzdG9tQW5ndWxhckVsZW1lbnQpIHtcbiAgICAgICAgLy8gVG8gbWFrZSBzdXJlIHdlIGhhdmUgd29ya2luZyBpbnB1dCBpbiBJRS4uLlxuICAgICAgICAvLyBJRSBkb2Vzbid0IHJlbmRlciBpdCBwcm9wZXJseSBpZiBpdCdzIG5vdCB2aXNpYmxlIG9uIHRoZSBzY3JlZW5cbiAgICAgICAgLy8gZHVlIHRvIHRoZSB3aG9sZSBzdHJ1Y3R1cmUgYXBwbGllZCB2aWEgaW5uZXJIVE1MIHRvIHRoZSBwYXJlbnRcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byB1c2UgYXBwZW5kQ2hpbGRcbiAgICAgICAgaWYgKCF0aGlzLl9jdXN0b21Bbmd1bGFyRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ25nLXZlcnNpb24nKSkge1xuICAgICAgICAgIHRoaXMuX2N1c3RvbUFuZ3VsYXJFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgncmVmJyk7XG5cbiAgICAgICAgICBjb25zdCBuZXdDdXN0b21FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChjdXN0b21Db21wb25lbnRPcHRpb25zLnNlbGVjdG9yKSBhcyBGb3JtaW9DdXN0b21FbGVtZW50O1xuXG4gICAgICAgICAgbmV3Q3VzdG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlZicsICdpbnB1dCcpO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRJbmZvLmF0dHIpLmZvckVhY2goKGF0dHI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbmV3Q3VzdG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0ciwgdGhpcy5pbnB1dEluZm8uYXR0clthdHRyXSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLl9jdXN0b21Bbmd1bGFyRWxlbWVudC5hcHBlbmRDaGlsZChuZXdDdXN0b21FbGVtZW50KTtcbiAgICAgICAgICB0aGlzLl9jdXN0b21Bbmd1bGFyRWxlbWVudCA9IG5ld0N1c3RvbUVsZW1lbnQ7XG5cbiAgICAgICAgICBzdXBlckF0dGFjaCA9IHN1cGVyLmF0dGFjaChlbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJpbmQgY3VzdG9tT3B0aW9uc1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNvbXBvbmVudC5jdXN0b21PcHRpb25zKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmN1c3RvbU9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgdGhpcy5fY3VzdG9tQW5ndWxhckVsZW1lbnRba2V5XSA9IHRoaXMuY29tcG9uZW50LmN1c3RvbU9wdGlvbnNba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQmluZCB2YWxpZGF0ZSBvcHRpb25zXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29tcG9uZW50LnZhbGlkYXRlKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50LnZhbGlkYXRlLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbUFuZ3VsYXJFbGVtZW50W2tleV0gPSB0aGlzLmNvbXBvbmVudC52YWxpZGF0ZVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBCaW5kIG9wdGlvbnMgZXhwbGljaXRseSBzZXRcbiAgICAgICAgY29uc3QgZmllbGRPcHRpb25zID0gY3VzdG9tQ29tcG9uZW50T3B0aW9ucy5maWVsZE9wdGlvbnM7XG4gICAgICAgIGlmIChpc0FycmF5KGZpZWxkT3B0aW9ucykgJiYgZmllbGRPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZE9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZE9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICB0aGlzLl9jdXN0b21Bbmd1bGFyRWxlbWVudFtmaWVsZE9wdGlvbnNba2V5XV0gPSB0aGlzLmNvbXBvbmVudFtmaWVsZE9wdGlvbnNba2V5XV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXR0YWNoIGV2ZW50IGxpc3RlbmVyIGZvciBlbWl0IGV2ZW50XG4gICAgICAgIHRoaXMuX2N1c3RvbUFuZ3VsYXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Zvcm1pb0V2ZW50JywgKGV2ZW50OiBDdXN0b21FdmVudDxGb3JtaW9FdmVudD4pID0+IHtcbiAgICAgICAgICB0aGlzLmVtaXQoZXZlbnQuZGV0YWlsLmV2ZW50TmFtZSwge1xuICAgICAgICAgICAgLi4uZXZlbnQuZGV0YWlsLmRhdGEsXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEVuc3VyZSB3ZSBiaW5kIHRoZSB2YWx1ZSAoaWYgaXQgaXNuJ3QgYSBtdWx0aXBsZS12YWx1ZSBjb21wb25lbnQgd2l0aCBubyB3cmFwcGVyKVxuICAgICAgICBpZiAoIXRoaXMuX2N1c3RvbUFuZ3VsYXJFbGVtZW50LnZhbHVlICYmICF0aGlzLmNvbXBvbmVudC5kaXNhYmxlTXVsdGlWYWx1ZVdyYXBwZXIpIHtcbiAgICAgICAgICB0aGlzLnJlc3RvcmVWYWx1ZSgpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdXBlckF0dGFjaDtcbiAgICB9XG5cbiAgICAvLyBBZGQgZXh0cmEgb3B0aW9uIHRvIHN1cHBvcnQgbXVsdGlwbGUgdmFsdWUgKGUuZy4gZGF0YWdyaWQpIHdpdGggc2luZ2xlIGFuZ3VsYXIgY29tcG9uZW50IChkaXNhYmxlTXVsdGlWYWx1ZVdyYXBwZXIpXG4gICAgdXNlV3JhcHBlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5oYXNPd25Qcm9wZXJ0eSgnbXVsdGlwbGUnKSAmJiB0aGlzLmNvbXBvbmVudC5tdWx0aXBsZSAmJiAhdGhpcy5jb21wb25lbnQuZGlzYWJsZU11bHRpVmFsdWVXcmFwcGVyO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0VmFsdWUoKSB7XG4gICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5lbXB0eVZhbHVlO1xuXG4gICAgICAvLyBoYW5kbGUgZmFsc3kgZGVmYXVsdCB2YWx1ZVxuICAgICAgaWYgKCFpc05pbCh0aGlzLmNvbXBvbmVudC5kZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuY29tcG9uZW50LmRlZmF1bHRWYWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmN1c3RvbURlZmF1bHRWYWx1ZSAmJiAhdGhpcy5vcHRpb25zLnByZXZpZXcpIHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy5ldmFsdWF0ZShcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5jdXN0b21EZWZhdWx0VmFsdWUsXG4gICAgICAgICAgeyB2YWx1ZTogJycgfSxcbiAgICAgICAgICAndmFsdWUnXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjbG9uZShkZWZhdWx0VmFsdWUpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- class CustomTagsService {
4
- tags = [];
5
- addCustomTag(tag) {
6
- this.tags.push(tag);
7
- }
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CustomTagsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CustomTagsService });
10
- }
11
- export { CustomTagsService };
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CustomTagsService, decorators: [{
13
- type: Injectable
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZm9ybWlvL3NyYy9jdXN0b20tY29tcG9uZW50L2N1c3RvbS10YWdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFDYSxpQkFBaUI7SUFDNUIsSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUVwQixZQUFZLENBQUMsR0FBVztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO3VHQUxVLGlCQUFpQjsyR0FBakIsaUJBQWlCOztTQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1c3RvbVRhZ3NTZXJ2aWNlIHtcbiAgdGFnczogc3RyaW5nW10gPSBbXTtcblxuICBhZGRDdXN0b21UYWcodGFnOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhZ3MucHVzaCh0YWcpO1xuICB9XG59XG4iXX0=