geonetwork-ui 2.4.1-dev.a28bdabc1 → 2.4.1-dev.bf3be28aa

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 (42) hide show
  1. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +4 -4
  2. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +10 -57
  3. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +23 -36
  4. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +3 -4
  5. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +3 -3
  6. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -40
  7. package/esm2022/translations/de.json +0 -2
  8. package/esm2022/translations/en.json +0 -2
  9. package/esm2022/translations/es.json +0 -2
  10. package/esm2022/translations/fr.json +0 -2
  11. package/esm2022/translations/it.json +0 -2
  12. package/esm2022/translations/nl.json +0 -2
  13. package/esm2022/translations/pt.json +0 -2
  14. package/fesm2022/geonetwork-ui.mjs +38 -150
  15. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  16. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +5 -16
  17. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  18. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +4 -4
  19. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  20. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +1 -1
  21. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  22. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  23. package/libs/util/shared/src/lib/links/link-utils.d.ts +1 -2
  24. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +3 -3
  27. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +7 -38
  28. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +3 -62
  29. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.html +1 -1
  30. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +19 -31
  31. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +9 -11
  32. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -3
  33. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +2 -2
  34. package/src/libs/util/shared/src/lib/links/link-utils.ts +1 -51
  35. package/translations/de.json +0 -2
  36. package/translations/en.json +0 -2
  37. package/translations/es.json +0 -2
  38. package/translations/fr.json +0 -2
  39. package/translations/it.json +0 -2
  40. package/translations/nl.json +0 -2
  41. package/translations/pt.json +0 -2
  42. package/translations/sk.json +0 -2
@@ -9,11 +9,11 @@ export const selectRecordChangedSinceSave = createSelector(selectEditorState, (s
9
9
  export const selectEditorConfig = createSelector(selectEditorState, (state) => state.editorConfig);
10
10
  export const selectCurrentPage = createSelector(selectEditorState, (state) => state.currentPage);
11
11
  export const selectRecordSections = createSelector(selectEditorState, (state) => {
12
- const currentPageConfig = state.editorConfig.pages[state.currentPage];
13
- if (!currentPageConfig) {
12
+ const currentPage = state.editorConfig.pages[state.currentPage];
13
+ if (!currentPage) {
14
14
  return [];
15
15
  }
16
- return currentPageConfig.sections.map((section) => ({
16
+ return currentPage.sections.map((section) => ({
17
17
  ...section,
18
18
  fieldsWithValues: section.fields.map((fieldConfig) => ({
19
19
  config: fieldConfig,
@@ -24,4 +24,4 @@ export const selectRecordSections = createSelector(selectEditorState, (state) =>
24
24
  export const selectHasRecordChanged = createSelector(selectEditorState, (state) => state.hasRecordChanged);
25
25
  export const selectIsPublished = createSelector(selectEditorState, (state) => state.isPublished);
26
26
  export const selectCanEditRecord = createSelector(selectEditorState, (state) => state.canEditRecord);
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi8rc3RhdGUvZWRpdG9yLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLGtCQUFrQixDQUFBO0FBR2xFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUM1QixxQkFBcUIsQ0FBYyxrQkFBa0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQ3hDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQzNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQ2pELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ3hDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxjQUFjLENBQ3hELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDL0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDOUMsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDM0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FDN0MsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDMUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGNBQWMsQ0FDaEQsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3JFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sRUFBK0IsQ0FBQTtJQUN4QyxDQUFDO0lBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELEdBQUcsT0FBTztRQUNWLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUk7U0FDakQsQ0FBQyxDQUFDO0tBQ0osQ0FBQyxDQUE4QixDQUFBO0FBQ2xDLENBQUMsQ0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUNsRCxpQkFBaUIsRUFDakIsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQy9DLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQzdDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQzFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQy9DLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQzVDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBFRElUT1JfRkVBVFVSRV9LRVksIEVkaXRvclN0YXRlIH0gZnJvbSAnLi9lZGl0b3IucmVkdWNlcidcbmltcG9ydCB7IEVkaXRvclNlY3Rpb25XaXRoVmFsdWVzIH0gZnJvbSAnLi9lZGl0b3IubW9kZWxzJ1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0RWRpdG9yU3RhdGUgPVxuICBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8RWRpdG9yU3RhdGU+KEVESVRPUl9GRUFUVVJFX0tFWSlcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUucmVjb3JkXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRTb3VyY2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLnJlY29yZFNvdXJjZVxuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVjb3JkU2F2aW5nID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5zYXZpbmdcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZFNhdmVFcnJvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuc2F2ZUVycm9yXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRDaGFuZ2VkU2luY2VTYXZlID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5jaGFuZ2VkU2luY2VTYXZlXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RFZGl0b3JDb25maWcgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmVkaXRvckNvbmZpZ1xuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q3VycmVudFBhZ2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmN1cnJlbnRQYWdlXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRTZWN0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlQ29uZmlnID0gc3RhdGUuZWRpdG9yQ29uZmlnLnBhZ2VzW3N0YXRlLmN1cnJlbnRQYWdlXVxuICAgIGlmICghY3VycmVudFBhZ2VDb25maWcpIHtcbiAgICAgIHJldHVybiBbXSBhcyBFZGl0b3JTZWN0aW9uV2l0aFZhbHVlc1tdXG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UGFnZUNvbmZpZy5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+ICh7XG4gICAgICAuLi5zZWN0aW9uLFxuICAgICAgZmllbGRzV2l0aFZhbHVlczogc2VjdGlvbi5maWVsZHMubWFwKChmaWVsZENvbmZpZykgPT4gKHtcbiAgICAgICAgY29uZmlnOiBmaWVsZENvbmZpZyxcbiAgICAgICAgdmFsdWU6IHN0YXRlLnJlY29yZD8uW2ZpZWxkQ29uZmlnLm1vZGVsXSA/PyBudWxsLFxuICAgICAgfSkpLFxuICAgIH0pKSBhcyBFZGl0b3JTZWN0aW9uV2l0aFZhbHVlc1tdXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhhc1JlY29yZENoYW5nZWQgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmhhc1JlY29yZENoYW5nZWRcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdElzUHVibGlzaGVkID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5pc1B1Ymxpc2hlZFxuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q2FuRWRpdFJlY29yZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuY2FuRWRpdFJlY29yZFxuKVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi8rc3RhdGUvZWRpdG9yLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLGtCQUFrQixDQUFBO0FBR2xFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUM1QixxQkFBcUIsQ0FBYyxrQkFBa0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQ3hDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQzNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQ2pELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ3hDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxjQUFjLENBQ3hELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDL0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDOUMsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDM0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FDN0MsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDMUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGNBQWMsQ0FDaEQsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMvRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxFQUErQixDQUFBO0lBQ3hDLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsT0FBTztRQUNWLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sRUFBRSxXQUFXO1lBQ25CLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUk7U0FDakQsQ0FBQyxDQUFDO0tBQ0osQ0FBQyxDQUE4QixDQUFBO0FBQ2xDLENBQUMsQ0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUNsRCxpQkFBaUIsRUFDakIsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQy9DLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQzdDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQzFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQy9DLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQzVDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBFRElUT1JfRkVBVFVSRV9LRVksIEVkaXRvclN0YXRlIH0gZnJvbSAnLi9lZGl0b3IucmVkdWNlcidcbmltcG9ydCB7IEVkaXRvclNlY3Rpb25XaXRoVmFsdWVzIH0gZnJvbSAnLi9lZGl0b3IubW9kZWxzJ1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0RWRpdG9yU3RhdGUgPVxuICBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8RWRpdG9yU3RhdGU+KEVESVRPUl9GRUFUVVJFX0tFWSlcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUucmVjb3JkXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRTb3VyY2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLnJlY29yZFNvdXJjZVxuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVjb3JkU2F2aW5nID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5zYXZpbmdcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZFNhdmVFcnJvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuc2F2ZUVycm9yXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRDaGFuZ2VkU2luY2VTYXZlID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5jaGFuZ2VkU2luY2VTYXZlXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RFZGl0b3JDb25maWcgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmVkaXRvckNvbmZpZ1xuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q3VycmVudFBhZ2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmN1cnJlbnRQYWdlXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRTZWN0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gc3RhdGUuZWRpdG9yQ29uZmlnLnBhZ2VzW3N0YXRlLmN1cnJlbnRQYWdlXVxuICAgIGlmICghY3VycmVudFBhZ2UpIHtcbiAgICAgIHJldHVybiBbXSBhcyBFZGl0b3JTZWN0aW9uV2l0aFZhbHVlc1tdXG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UGFnZS5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+ICh7XG4gICAgICAuLi5zZWN0aW9uLFxuICAgICAgZmllbGRzV2l0aFZhbHVlczogc2VjdGlvbi5maWVsZHMubWFwKChmaWVsZENvbmZpZykgPT4gKHtcbiAgICAgICAgY29uZmlnOiBmaWVsZENvbmZpZyxcbiAgICAgICAgdmFsdWU6IHN0YXRlLnJlY29yZD8uW2ZpZWxkQ29uZmlnLm1vZGVsXSA/PyBudWxsLFxuICAgICAgfSkpLFxuICAgIH0pKSBhcyBFZGl0b3JTZWN0aW9uV2l0aFZhbHVlc1tdXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhhc1JlY29yZENoYW5nZWQgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmhhc1JlY29yZENoYW5nZWRcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdElzUHVibGlzaGVkID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5pc1B1Ymxpc2hlZFxuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q2FuRWRpdFJlY29yZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuY2FuRWRpdFJlY29yZFxuKVxuIl19
@@ -1,14 +1,13 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { MatRadioModule } from '@angular/material/radio';
5
5
  import { MatTooltipModule } from '@angular/material/tooltip';
6
6
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
7
- import { ButtonComponent, DropdownSelectorComponent, TextInputComponent, UrlInputComponent, } from '../../../../../../../libs/ui/inputs/src';
7
+ import { ButtonComponent, TextInputComponent, UrlInputComponent, } from '../../../../../../../libs/ui/inputs/src';
8
8
  import { TranslateModule } from '@ngx-translate/core';
9
9
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
10
10
  import { iconoirCloudUpload } from '@ng-icons/iconoir';
11
- import { getLayers } from '../../../../../../../libs/util/shared/src';
12
11
  import * as i0 from "@angular/core";
13
12
  import * as i1 from "@angular/common";
14
13
  import * as i2 from "@angular/forms";
@@ -16,14 +15,10 @@ import * as i3 from "@angular/material/tooltip";
16
15
  import * as i4 from "@angular/material/radio";
17
16
  import * as i5 from "@ngx-translate/core";
18
17
  export class OnlineServiceResourceInputComponent {
19
- constructor(cdr) {
20
- this.cdr = cdr;
18
+ constructor() {
21
19
  this.disabled = false;
22
- this.modifyMode = false;
23
20
  this.urlChange = new EventEmitter();
24
21
  this.identifierSubmit = new EventEmitter();
25
- this.errorMessage = false;
26
- this.layers = undefined;
27
22
  this.protocolOptions = [
28
23
  {
29
24
  label: 'OGC API',
@@ -55,51 +50,12 @@ export class OnlineServiceResourceInputComponent {
55
50
  },
56
51
  ];
57
52
  }
58
- get activeLayerSuggestion() {
59
- return !['wps', 'GPFDL', 'esriRest', 'other'].includes(this.service.accessServiceProtocol);
60
- }
61
53
  ngOnChanges() {
62
54
  this.selectedProtocol =
63
55
  this.protocolOptions.find((option) => option.value === this.service.accessServiceProtocol)?.value ?? 'other';
64
56
  }
65
- ngOnInit() {
66
- if (this.service.url) {
67
- this.url = this.service.url.toString();
68
- }
69
- }
70
- handleUrlValueChange(url) {
71
- this.url = url;
72
- this.service.url = new URL(url);
73
- this.resetLayersSuggestion();
74
- this.urlChange.emit(this.url);
75
- }
76
- async handleUploadClick(url) {
57
+ handleUrlChange(url) {
77
58
  this.url = url;
78
- try {
79
- const layers = await getLayers(url, this.service.accessServiceProtocol);
80
- this.layers = layers.map((l) => {
81
- return {
82
- label: l.title ? `${l.title} ${l.name ? `(${l.name})` : ''}` : l.name,
83
- value: l.name || l.title,
84
- };
85
- });
86
- if (this.layers.length === 0) {
87
- throw new Error('No layers found');
88
- }
89
- }
90
- catch (e) {
91
- this.errorMessage = true;
92
- this.layers = undefined;
93
- }
94
- this.cdr.detectChanges();
95
- }
96
- handleSelectValue(val) {
97
- this.service.identifierInService = val;
98
- }
99
- resetLayersSuggestion() {
100
- this.errorMessage = false;
101
- this.layers = undefined;
102
- this.service.identifierInService = null;
103
59
  }
104
60
  submitIdentifier(identifier) {
105
61
  if (!identifier)
@@ -113,18 +69,17 @@ export class OnlineServiceResourceInputComponent {
113
69
  ? `${baseKey}.wps`
114
70
  : baseKey;
115
71
  }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint", disabled: "disabled", modifyMode: "modifyMode" }, outputs: { urlChange: "urlChange", identifierSubmit: "identifierSubmit" }, providers: [
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint", disabled: "disabled" }, outputs: { urlChange: "urlChange", identifierSubmit: "identifierSubmit" }, providers: [
118
74
  provideIcons({ iconoirCloudUpload }),
119
75
  provideNgIconsConfig({
120
76
  size: '1.5em',
121
77
  }),
122
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetLayersSuggestion()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (url && errorMessage) ||\n (modifyMode && layers === undefined)\n \"\n ></gn-ui-text-input>\n <gn-ui-dropdown-selector\n class=\"border-b border-gray-300 pb-4\"\n [showTitle]=\"false\"\n [title]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [choices]=\"layers || []\"\n *ngIf=\"activeLayerSuggestion && layers !== undefined\"\n [selected]=\"service.identifierInService\"\n (selectValue)=\"handleSelectValue($event)\"\n >\n </gn-ui-dropdown-selector>\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && layers) ||\n !activeLayerSuggestion ||\n (url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (valueChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"false\"\n >\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </gn-ui-url-input>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n ></gn-ui-text-input>\n\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService || !url\"\n type=\"primary\"\n >\n <span class=\"text-white font-bold\" translate\n >editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
123
79
  }
124
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
125
81
  type: Component,
126
82
  args: [{ selector: 'gn-ui-online-service-resource-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
127
- DropdownSelectorComponent,
128
83
  ButtonComponent,
129
84
  CommonModule,
130
85
  FormsModule,
@@ -139,18 +94,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
139
94
  provideNgIconsConfig({
140
95
  size: '1.5em',
141
96
  }),
142
- ], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetLayersSuggestion()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (url && errorMessage) ||\n (modifyMode && layers === undefined)\n \"\n ></gn-ui-text-input>\n <gn-ui-dropdown-selector\n class=\"border-b border-gray-300 pb-4\"\n [showTitle]=\"false\"\n [title]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [choices]=\"layers || []\"\n *ngIf=\"activeLayerSuggestion && layers !== undefined\"\n [selected]=\"service.identifierInService\"\n (selectValue)=\"handleSelectValue($event)\"\n >\n </gn-ui-dropdown-selector>\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && layers) ||\n !activeLayerSuggestion ||\n (url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n" }]
143
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { service: [{
97
+ ], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (valueChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"false\"\n >\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </gn-ui-url-input>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n ></gn-ui-text-input>\n\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService || !url\"\n type=\"primary\"\n >\n <span class=\"text-white font-bold\" translate\n >editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n" }]
98
+ }], propDecorators: { service: [{
144
99
  type: Input
145
100
  }], protocolHint: [{
146
101
  type: Input
147
102
  }], disabled: [{
148
103
  type: Input
149
- }], modifyMode: [{
150
- type: Input
151
104
  }], urlChange: [{
152
105
  type: Output
153
106
  }], identifierSubmit: [{
154
107
  type: Output
155
108
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wsZUFBZSxFQUVmLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixD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TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBEcm9wZG93bkNob2ljZSxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVcmxJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyQ2xvdWRVcGxvYWQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IGdldExheWVycyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pckNsb3VkVXBsb2FkIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBASW5wdXQoKSBzZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICBASW5wdXQoKSBwcm90b2NvbEhpbnQ/OiBzdHJpbmdcbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2VcbiAgQElucHV0KCkgbW9kaWZ5TW9kZT8gPSBmYWxzZVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgaWRlbnRpZmllclN1Ym1pdDogRXZlbnRFbWl0dGVyPHtcbiAgICB1cmw6IHN0cmluZ1xuICAgIGlkZW50aWZpZXI6IHN0cmluZ1xuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGVycm9yTWVzc2FnZSA9IGZhbHNlXG4gIHNlbGVjdGVkUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICB1cmw6IHN0cmluZ1xuICBsYXllcnM6IERyb3Bkb3duQ2hvaWNlW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICBwcm90b2NvbE9wdGlvbnM6IHtcbiAgICBsYWJlbDogc3RyaW5nXG4gICAgdmFsdWU6IFNlcnZpY2VQcm90b2NvbFxuICB9W10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPR0MgQVBJJyxcbiAgICAgIHZhbHVlOiAnb2djRmVhdHVyZXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXRlMnLFxuICAgICAgdmFsdWU6ICd3ZnMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVMnLFxuICAgICAgdmFsdWU6ICd3bXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVRTJyxcbiAgICAgIHZhbHVlOiAnd210cycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dQUycsXG4gICAgICB2YWx1ZTogJ3dwcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0VTUkkgUkVTVCcsXG4gICAgICB2YWx1ZTogJ2VzcmlSZXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2UucHJvdG9jb2wub3RoZXInKSxcbiAgICAgIHZhbHVlOiAnb3RoZXInLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGFjdGl2ZUxheWVyU3VnZ2VzdGlvbigpIHtcbiAgICByZXR1cm4gIVsnd3BzJywgJ0dQRkRMJywgJ2VzcmlSZXN0JywgJ290aGVyJ10uaW5jbHVkZXMoXG4gICAgICB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID1cbiAgICAgIHRoaXMucHJvdG9jb2xPcHRpb25zLmZpbmQoXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgICAgKT8udmFsdWUgPz8gJ290aGVyJ1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZS51cmwpIHtcbiAgICAgIHRoaXMudXJsID0gdGhpcy5zZXJ2aWNlLnVybC50b1N0cmluZygpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlVXJsVmFsdWVDaGFuZ2UodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVybCA9IHVybFxuICAgIHRoaXMuc2VydmljZS51cmwgPSBuZXcgVVJMKHVybClcbiAgICB0aGlzLnJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXG4gICAgdGhpcy51cmxDaGFuZ2UuZW1pdCh0aGlzLnVybClcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVVwbG9hZENsaWNrKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy51cmwgPSB1cmxcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYXllcnMgPSBhd2FpdCBnZXRMYXllcnModXJsLCB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sKVxuICAgICAgdGhpcy5sYXllcnMgPSBsYXllcnMubWFwKChsKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWw6IGwudGl0bGUgPyBgJHtsLnRpdGxlfSAke2wubmFtZSA/IGAoJHtsLm5hbWV9KWAgOiAnJ31gIDogbC5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBsLm5hbWUgfHwgbC50aXRsZSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKHRoaXMubGF5ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGxheWVycyBmb3VuZCcpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0cnVlXG4gICAgICB0aGlzLmxheWVycyA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgaGFuZGxlU2VsZWN0VmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSA9IHZhbFxuICB9XG5cbiAgcmVzZXRMYXllcnNTdWdnZXN0aW9uKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2VcbiAgICB0aGlzLmxheWVycyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbnVsbFxuICB9XG5cbiAgc3VibWl0SWRlbnRpZmllcihpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICBpZiAoIWlkZW50aWZpZXIpIHJldHVyblxuICAgIHRoaXMuaWRlbnRpZmllclN1Ym1pdC5lbWl0KHsgdXJsOiB0aGlzLnVybCwgaWRlbnRpZmllciB9KVxuICAgIHRoaXMuc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbnVsbFxuICB9XG5cbiAgZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUtleSA9XG4gICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlcidcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dwcydcbiAgICAgID8gYCR7YmFzZUtleX0ud3BzYFxuICAgICAgOiBiYXNlS2V5XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5wcm90b2NvbFxuICA8L2gzPlxuICA8c3BhblxuICAgICpuZ0lmPVwicHJvdG9jb2xIaW50XCJcbiAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbS0yIGduLXVpLWljb24tc21hbGxcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3RvY29sSGludFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICA+XG4gICAgaGVscFxuICA8L3NwYW4+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNCBoLVs0OHB4XVwiPlxuICA8bWF0LXJhZGlvLWdyb3VwXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC1bOHB4XVwiXG4gICAgWyhuZ01vZGVsKV09XCJzZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAoY2hhbmdlKT1cInJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXCJcbiAgPlxuICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcHJvdG9jb2xPcHRpb24gb2YgcHJvdG9jb2xPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJwcm90b2NvbE9wdGlvbi52YWx1ZVwiXG4gICAgPlxuICAgICAge3sgcHJvdG9jb2xPcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1yYWRpby1idXR0b24+XG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gIDxnbi11aS11cmwtaW5wdXRcbiAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgKHVwbG9hZENsaWNrKT1cImhhbmRsZVVwbG9hZENsaWNrKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVVcmxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFt2YWx1ZV09XCJ1cmxcIlxuICAgIFtzaG93VmFsaWRhdGVCdXR0b25dPVwiYWN0aXZlTGF5ZXJTdWdnZXN0aW9uXCJcbiAgPlxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiYWN0aXZlTGF5ZXJTdWdnZXN0aW9uXCI+XG4gICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pckNsb3VkVXBsb2FkXCI+PC9uZy1pY29uPlxuICAgIDwvbmctY29udGVudD5cbiAgPC9nbi11aS11cmwtaW5wdXQ+XG5cbiAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtcmVkLTUwMCBwbC00XCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiB0cmFuc2xhdGU+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5lcnJvclxuICA8L3A+XG5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBjbGFzcz1cImdyb3cgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFsodmFsdWUpXT1cInNlcnZpY2UuaWRlbnRpZmllckluU2VydmljZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImdldElkZW50aWZpZXJQbGFjZWhvbGRlcigpIHwgdHJhbnNsYXRlXCJcbiAgICBkYXRhLWN5PVwiaWRlbnRpZmllci1pbi1zZXJ2aWNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICpuZ0lmPVwiXG4gICAgICAhYWN0aXZlTGF5ZXJTdWdnZXN0aW9uIHx8XG4gICAgICAodXJsICYmIGVycm9yTWVzc2FnZSkgfHxcbiAgICAgIChtb2RpZnlNb2RlICYmIGxheWVycyA9PT0gdW5kZWZpbmVkKVxuICAgIFwiXG4gID48L2duLXVpLXRleHQtaW5wdXQ+XG4gIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgIFt0aXRsZV09XCJcbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnNlbGVjdC5sYWJlbCdcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICBcIlxuICAgIFtjaG9pY2VzXT1cImxheWVycyB8fCBbXVwiXG4gICAgKm5nSWY9XCJhY3RpdmVMYXllclN1Z2dlc3Rpb24gJiYgbGF5ZXJzICE9PSB1bmRlZmluZWRcIlxuICAgIFtzZWxlY3RlZF09XCJzZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIChzZWxlY3RWYWx1ZSk9XCJoYW5kbGVTZWxlY3RWYWx1ZSgkZXZlbnQpXCJcbiAgPlxuICA8L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8Z24tdWktYnV0dG9uXG4gICAgKGJ1dHRvbkNsaWNrKT1cInN1Ym1pdElkZW50aWZpZXIoc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAqbmdJZj1cIlxuICAgICAgIW1vZGlmeU1vZGUgJiZcbiAgICAgICgoYWN0aXZlTGF5ZXJTdWdnZXN0aW9uICYmIGxheWVycykgfHxcbiAgICAgICAgIWFjdGl2ZUxheWVyU3VnZ2VzdGlvbiB8fFxuICAgICAgICAodXJsICYmIGVycm9yTWVzc2FnZSkpXG4gICAgXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIiB0cmFuc2xhdGU+XG4gICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnN1Ym1pdDwvc3BhblxuICAgID5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBS2hFLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLHlDQUF5QyxDQUFBO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsa0JBQWtC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c0JBQWhCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgU2VydmljZVByb3RvY29sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBCdXR0b25Db21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pckNsb3VkVXBsb2FkIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pckNsb3VkVXBsb2FkIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2VydmljZTogT21pdDxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbiwgJ3VybCc+XG4gIEBJbnB1dCgpIHByb3RvY29sSGludD86IHN0cmluZ1xuICBASW5wdXQoKSBkaXNhYmxlZD8gPSBmYWxzZVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgaWRlbnRpZmllclN1Ym1pdDogRXZlbnRFbWl0dGVyPHtcbiAgICB1cmw6IHN0cmluZ1xuICAgIGlkZW50aWZpZXI6IHN0cmluZ1xuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIHNlbGVjdGVkUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICB1cmw6IHN0cmluZ1xuXG4gIHByb3RvY29sT3B0aW9uczoge1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICB2YWx1ZTogU2VydmljZVByb3RvY29sXG4gIH1bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ09HQyBBUEknLFxuICAgICAgdmFsdWU6ICdvZ2NGZWF0dXJlcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dGUycsXG4gICAgICB2YWx1ZTogJ3dmcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dNUycsXG4gICAgICB2YWx1ZTogJ3dtcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dNVFMnLFxuICAgICAgdmFsdWU6ICd3bXRzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV1BTJyxcbiAgICAgIHZhbHVlOiAnd3BzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnRVNSSSBSRVNUJyxcbiAgICAgIHZhbHVlOiAnZXNyaVJlc3QnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IG1hcmtlcignZWRpdG9yLnJlY29yZC5vbmxpbmVSZXNvdXJjZS5wcm90b2NvbC5vdGhlcicpLFxuICAgICAgdmFsdWU6ICdvdGhlcicsXG4gICAgfSxcbiAgXVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9XG4gICAgICB0aGlzLnByb3RvY29sT3B0aW9ucy5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHRoaXMuc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2xcbiAgICAgICk/LnZhbHVlID8/ICdvdGhlcidcbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRoaXMudXJsID0gdXJsXG4gIH1cblxuICBzdWJtaXRJZGVudGlmaWVyKGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIGlmICghaWRlbnRpZmllcikgcmV0dXJuXG4gICAgdGhpcy5pZGVudGlmaWVyU3VibWl0LmVtaXQoeyB1cmw6IHRoaXMudXJsLCBpZGVudGlmaWVyIH0pXG4gICAgdGhpcy5zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2UgPSBudWxsXG4gIH1cblxuICBnZXRJZGVudGlmaWVyUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlS2V5ID1cbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnBsYWNlaG9sZGVyJ1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd3BzJ1xuICAgICAgPyBgJHtiYXNlS2V5fS53cHNgXG4gICAgICA6IGJhc2VLZXlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuXCI+XG4gIDxoMyBjbGFzcz1cInRleHQtWzE2cHhdIGZvbnQtYm9sZCB0ZXh0LW1haW4gbWItWzEycHhdXCIgdHJhbnNsYXRlPlxuICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LnByb3RvY29sXG4gIDwvaDM+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJwcm90b2NvbEhpbnRcIlxuICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtLTIgZ24tdWktaWNvbi1zbWFsbFwiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdG9jb2xIaW50XCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gID5cbiAgICBoZWxwXG4gIDwvc3Bhbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC00IGgtWzQ4cHhdXCI+XG4gIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJleGFtcGxlLXJhZGlvLWdyb3VwLWxhYmVsXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLVs4cHhdXCJcbiAgICBbKG5nTW9kZWwpXT1cInNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICA+XG4gICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBwcm90b2NvbE9wdGlvbiBvZiBwcm90b2NvbE9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cInByb3RvY29sT3B0aW9uLnZhbHVlXCJcbiAgICA+XG4gICAgICB7eyBwcm90b2NvbE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTRcIj5cbiAgPGduLXVpLXVybC1pbnB1dFxuICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlVXJsQ2hhbmdlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3ZhbHVlXT1cInVybFwiXG4gICAgW3Nob3dWYWxpZGF0ZUJ1dHRvbl09XCJmYWxzZVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pckNsb3VkVXBsb2FkXCI+PC9uZy1pY29uPlxuICA8L2duLXVpLXVybC1pbnB1dD5cblxuICA8Z24tdWktdGV4dC1pbnB1dFxuICAgIGNsYXNzPVwiZ3JvdyBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgcGItNFwiXG4gICAgWyh2YWx1ZSldPVwic2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGVcIlxuICAgIGRhdGEtY3k9XCJpZGVudGlmaWVyLWluLXNlcnZpY2VcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gID48L2duLXVpLXRleHQtaW5wdXQ+XG5cbiAgPGduLXVpLWJ1dHRvblxuICAgIChidXR0b25DbGljayk9XCJzdWJtaXRJZGVudGlmaWVyKHNlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlIHx8ICF1cmxcIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIiB0cmFuc2xhdGVcbiAgICAgID5lZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnN1Ym1pdDwvc3BhblxuICAgID5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -5,56 +5,43 @@ import { AVAILABLE_LICENSES } from '../../../../fields.config';
5
5
  import * as i0 from "@angular/core";
6
6
  export class FormFieldLicenseComponent {
7
7
  constructor() {
8
- this.recordLicences = [];
9
- this.recordLicencesChange = new EventEmitter();
10
- this.choices = AVAILABLE_LICENSES.map((license) => ({
11
- label: marker(`editor.record.form.license.${license}`),
12
- value: license,
13
- }));
8
+ this.recordConstraints = [];
9
+ this.recordConstraintsChange = new EventEmitter();
14
10
  }
15
11
  ngOnInit() {
16
- if (this.recordLicences.length === 0) {
17
- this.selectedLicence = 'unknown';
18
- }
19
- else {
20
- this.selectedLicence = this.recordLicences.find((constraint) => {
21
- return this.choices.find((licence) => {
22
- return licence.value === constraint.text;
23
- });
24
- })?.text;
25
- }
12
+ // get the licence from the record constraints if it is one of the open data licence list
13
+ this.selectedLicence = this.recordConstraints.find((constraint) => {
14
+ return this.licenceOptions.find((licence) => {
15
+ return licence.value === constraint.text;
16
+ });
17
+ })?.text;
18
+ // otherwise pre-select the first licence option
26
19
  if (this.selectedLicence === undefined) {
27
- this.choices = [
28
- {
29
- value: this.recordLicences[0].text,
30
- label: this.recordLicences[0].text,
31
- },
32
- ...this.choices,
33
- ];
34
- this.selectedLicence = this.recordLicences[0].text;
20
+ this.selectedLicence = this.licenceOptions[0].value; // cannot select 'etalab' as default as this would toggle the OpenData Toggle
21
+ this.recordConstraintsChange.emit([{ text: this.selectedLicence }]);
35
22
  }
36
23
  }
24
+ get licenceOptions() {
25
+ return AVAILABLE_LICENSES.map((license) => ({
26
+ label: marker(`editor.record.form.license.${license}`),
27
+ value: license,
28
+ }));
29
+ }
37
30
  handleLicenceSelection(licenceValue) {
38
31
  this.selectedLicence = licenceValue;
39
- if (licenceValue === 'unknown') {
40
- this.recordLicencesChange.emit([]);
41
- return;
42
- }
43
- else {
44
- this.recordLicencesChange.emit([{ text: licenceValue }]);
45
- }
32
+ this.recordConstraintsChange.emit([{ text: licenceValue }]);
46
33
  }
47
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldLicenseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldLicenseComponent, isStandalone: true, selector: "gn-ui-form-field-license", inputs: { label: "label", recordLicences: "recordLicences" }, outputs: { recordLicencesChange: "recordLicencesChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedLicence\"\n (selectValue)=\"handleLicenceSelection($event)\"\n [extraBtnClass]=\"'input-as-button gn-ui-text-input'\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: [":host{display:grid}gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldLicenseComponent, isStandalone: true, selector: "gn-ui-form-field-license", inputs: { label: "label", recordConstraints: "recordConstraints" }, outputs: { recordConstraintsChange: "recordConstraintsChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"licenceOptions\"\n [selected]=\"selectedLicence\"\n (selectValue)=\"handleLicenceSelection($event)\"\n [extraBtnClass]=\"'input-as-button gn-ui-text-input'\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: [":host{display:grid}gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
36
  }
50
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldLicenseComponent, decorators: [{
51
38
  type: Component,
52
- args: [{ selector: 'gn-ui-form-field-license', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DropdownSelectorComponent], template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedLicence\"\n (selectValue)=\"handleLicenceSelection($event)\"\n [extraBtnClass]=\"'input-as-button gn-ui-text-input'\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: [":host{display:grid}gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"] }]
39
+ args: [{ selector: 'gn-ui-form-field-license', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DropdownSelectorComponent], template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"licenceOptions\"\n [selected]=\"selectedLicence\"\n (selectValue)=\"handleLicenceSelection($event)\"\n [extraBtnClass]=\"'input-as-button gn-ui-text-input'\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: [":host{display:grid}gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"] }]
53
40
  }], propDecorators: { label: [{
54
41
  type: Input
55
- }], recordLicences: [{
42
+ }], recordConstraints: [{
56
43
  type: Input
57
- }], recordLicencesChange: [{
44
+ }], recordConstraintsChange: [{
58
45
  type: Output
59
46
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1saWNlbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1saWNlbnNlL2Zvcm0tZmllbGQtbGljZW5zZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtbGljZW5zZS9mb3JtLWZpZWxkLWxpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQWU5RCxNQUFNLE9BQU8seUJBQXlCO0lBUnRDO1FBVVcsbUJBQWMsR0FBaUIsRUFBRSxDQUFBO1FBQ2hDLHlCQUFvQixHQUM1QixJQUFJLFlBQVksRUFBRSxDQUFBO1FBRXBCLFlBQU8sR0FBYyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEQsS0FBSyxFQUFFLE1BQU0sQ0FBQyw4QkFBOEIsT0FBTyxFQUFFLENBQUM7WUFDdEQsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUMsQ0FBQTtLQW9DSjtJQWhDQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQTtRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDN0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUNuQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQTtnQkFDMUMsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUE7UUFDVixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUc7Z0JBQ2I7b0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtpQkFDbkM7Z0JBQ0QsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNoQixDQUFBO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLFlBQW9CO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFBO1FBQ25DLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDbEMsT0FBTTtRQUNSLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO0lBQ0gsQ0FBQzsrR0E1Q1UseUJBQXlCO21HQUF6Qix5QkFBeUIsNk1DMUJ0QyxpVkFXQSxrSURhWSx5QkFBeUI7OzRGQUV4Qix5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLHlCQUF5QixDQUFDOzhCQUczQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IENvbnN0cmFpbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQVZBSUxBQkxFX0xJQ0VOU0VTIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcblxudHlwZSBMaWNlbmNlID0ge1xuICBsYWJlbDogc3RyaW5nXG4gIHZhbHVlOiBzdHJpbmdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1saWNlbnNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZExpY2Vuc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nXG4gIEBJbnB1dCgpIHJlY29yZExpY2VuY2VzOiBDb25zdHJhaW50W10gPSBbXVxuICBAT3V0cHV0KCkgcmVjb3JkTGljZW5jZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDb25zdHJhaW50W10+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBjaG9pY2VzOiBMaWNlbmNlW10gPSBBVkFJTEFCTEVfTElDRU5TRVMubWFwKChsaWNlbnNlKSA9PiAoe1xuICAgIGxhYmVsOiBtYXJrZXIoYGVkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLiR7bGljZW5zZX1gKSxcbiAgICB2YWx1ZTogbGljZW5zZSxcbiAgfSkpXG5cbiAgc2VsZWN0ZWRMaWNlbmNlOiBzdHJpbmdcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRMaWNlbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMaWNlbmNlID0gJ3Vua25vd24nXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMaWNlbmNlID0gdGhpcy5yZWNvcmRMaWNlbmNlcy5maW5kKChjb25zdHJhaW50KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNob2ljZXMuZmluZCgobGljZW5jZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBsaWNlbmNlLnZhbHVlID09PSBjb25zdHJhaW50LnRleHRcbiAgICAgICAgfSlcbiAgICAgIH0pPy50ZXh0XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMaWNlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2hvaWNlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLnJlY29yZExpY2VuY2VzWzBdLnRleHQsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucmVjb3JkTGljZW5jZXNbMF0udGV4dCxcbiAgICAgICAgfSxcbiAgICAgICAgLi4udGhpcy5jaG9pY2VzLFxuICAgICAgXVxuICAgICAgdGhpcy5zZWxlY3RlZExpY2VuY2UgPSB0aGlzLnJlY29yZExpY2VuY2VzWzBdLnRleHRcbiAgICB9XG4gIH1cblxuICBoYW5kbGVMaWNlbmNlU2VsZWN0aW9uKGxpY2VuY2VWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZExpY2VuY2UgPSBsaWNlbmNlVmFsdWVcbiAgICBpZiAobGljZW5jZVZhbHVlID09PSAndW5rbm93bicpIHtcbiAgICAgIHRoaXMucmVjb3JkTGljZW5jZXNDaGFuZ2UuZW1pdChbXSlcbiAgICAgIHJldHVyblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY29yZExpY2VuY2VzQ2hhbmdlLmVtaXQoW3sgdGV4dDogbGljZW5jZVZhbHVlIH1dKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLThcIj5cbiAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgW3RpdGxlXT1cImxhYmVsXCJcbiAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCJcbiAgICBbY2hvaWNlc109XCJjaG9pY2VzXCJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRMaWNlbmNlXCJcbiAgICAoc2VsZWN0VmFsdWUpPVwiaGFuZGxlTGljZW5jZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICBbZXh0cmFCdG5DbGFzc109XCInaW5wdXQtYXMtYnV0dG9uIGduLXVpLXRleHQtaW5wdXQnXCJcbiAgPlxuICA8L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuPC9kaXY+XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1saWNlbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1saWNlbnNlL2Zvcm0tZmllbGQtbGljZW5zZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtbGljZW5zZS9mb3JtLWZpZWxkLWxpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQWU5RCxNQUFNLE9BQU8seUJBQXlCO0lBUnRDO1FBVVcsc0JBQWlCLEdBQWlCLEVBQUUsQ0FBQTtRQUNuQyw0QkFBdUIsR0FDL0IsSUFBSSxZQUFZLEVBQUUsQ0FBQTtLQTZCckI7SUF6QkMsUUFBUTtRQUNOLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzFDLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFBO1lBQzFDLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFBO1FBQ1IsZ0RBQWdEO1FBQ2hELElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBLENBQUMsNkVBQTZFO1lBQ2pJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLEtBQUssRUFBRSxNQUFNLENBQUMsOEJBQThCLE9BQU8sRUFBRSxDQUFDO1lBQ3RELEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsWUFBb0I7UUFDekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUE7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUM3RCxDQUFDOytHQWhDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix5TkMxQnRDLHdWQVdBLGtJRGFZLHlCQUF5Qjs7NEZBRXhCLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMseUJBQXlCLENBQUM7OEJBRzNCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksdUJBQXVCO3NCQUFoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBDb25zdHJhaW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IEFWQUlMQUJMRV9MSUNFTlNFUyB9IGZyb20gJy4uLy4uLy4uLy4uL2ZpZWxkcy5jb25maWcnXG5cbnR5cGUgTGljZW5jZSA9IHtcbiAgbGFiZWw6IHN0cmluZ1xuICB2YWx1ZTogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtbGljZW5zZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWxpY2Vuc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLWxpY2Vuc2UuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Ryb3Bkb3duU2VsZWN0b3JDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZ1xuICBASW5wdXQoKSByZWNvcmRDb25zdHJhaW50czogQ29uc3RyYWludFtdID0gW11cbiAgQE91dHB1dCgpIHJlY29yZENvbnN0cmFpbnRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q29uc3RyYWludFtdPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgc2VsZWN0ZWRMaWNlbmNlOiBzdHJpbmdcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBnZXQgdGhlIGxpY2VuY2UgZnJvbSB0aGUgcmVjb3JkIGNvbnN0cmFpbnRzIGlmIGl0IGlzIG9uZSBvZiB0aGUgb3BlbiBkYXRhIGxpY2VuY2UgbGlzdFxuICAgIHRoaXMuc2VsZWN0ZWRMaWNlbmNlID0gdGhpcy5yZWNvcmRDb25zdHJhaW50cy5maW5kKChjb25zdHJhaW50KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5saWNlbmNlT3B0aW9ucy5maW5kKChsaWNlbmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBsaWNlbmNlLnZhbHVlID09PSBjb25zdHJhaW50LnRleHRcbiAgICAgIH0pXG4gICAgfSk/LnRleHRcbiAgICAvLyBvdGhlcndpc2UgcHJlLXNlbGVjdCB0aGUgZmlyc3QgbGljZW5jZSBvcHRpb25cbiAgICBpZiAodGhpcy5zZWxlY3RlZExpY2VuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZExpY2VuY2UgPSB0aGlzLmxpY2VuY2VPcHRpb25zWzBdLnZhbHVlIC8vIGNhbm5vdCBzZWxlY3QgJ2V0YWxhYicgYXMgZGVmYXVsdCBhcyB0aGlzIHdvdWxkIHRvZ2dsZSB0aGUgT3BlbkRhdGEgVG9nZ2xlXG4gICAgICB0aGlzLnJlY29yZENvbnN0cmFpbnRzQ2hhbmdlLmVtaXQoW3sgdGV4dDogdGhpcy5zZWxlY3RlZExpY2VuY2UgfV0pXG4gICAgfVxuICB9XG5cbiAgZ2V0IGxpY2VuY2VPcHRpb25zKCk6IExpY2VuY2VbXSB7XG4gICAgcmV0dXJuIEFWQUlMQUJMRV9MSUNFTlNFUy5tYXAoKGxpY2Vuc2UpID0+ICh7XG4gICAgICBsYWJlbDogbWFya2VyKGBlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS4ke2xpY2Vuc2V9YCksXG4gICAgICB2YWx1ZTogbGljZW5zZSxcbiAgICB9KSlcbiAgfVxuXG4gIGhhbmRsZUxpY2VuY2VTZWxlY3Rpb24obGljZW5jZVZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkTGljZW5jZSA9IGxpY2VuY2VWYWx1ZVxuICAgIHRoaXMucmVjb3JkQ29uc3RyYWludHNDaGFuZ2UuZW1pdChbeyB0ZXh0OiBsaWNlbmNlVmFsdWUgfV0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC04XCI+XG4gIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgIFt0aXRsZV09XCJsYWJlbFwiXG4gICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXG4gICAgW2Nob2ljZXNdPVwibGljZW5jZU9wdGlvbnNcIlxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZExpY2VuY2VcIlxuICAgIChzZWxlY3RWYWx1ZSk9XCJoYW5kbGVMaWNlbmNlU2VsZWN0aW9uKCRldmVudClcIlxuICAgIFtleHRyYUJ0bkNsYXNzXT1cIidpbnB1dC1hcy1idXR0b24gZ24tdWktdGV4dC1pbnB1dCdcIlxuICA+XG4gIDwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG48L2Rpdj5cbiJdfQ==
@@ -49,7 +49,6 @@ export class FormFieldOnlineResourcesComponent {
49
49
  type: 'service',
50
50
  accessServiceProtocol: 'ogcFeatures',
51
51
  identifierInService: '',
52
- url: undefined,
53
52
  };
54
53
  this.MAX_UPLOAD_SIZE_MB = MAX_UPLOAD_SIZE_MB;
55
54
  }
@@ -172,7 +171,7 @@ export class FormFieldOnlineResourcesComponent {
172
171
  });
173
172
  }
174
173
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, deps: [{ token: i1.NotificationsService }, { token: i2.TranslateService }, { token: i3.PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
175
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'; else urlInput\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [modifyMode]=\"true\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <ng-template #urlInput>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </ng-template>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses", "disabled"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint", "disabled", "modifyMode"], outputs: ["urlChange", "identifierSubmit"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (urlChange)=\"handleServiceUrlChange($event)\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses", "disabled"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint", "disabled"], outputs: ["urlChange", "identifierSubmit"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
176
175
  }
177
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, decorators: [{
178
177
  type: Component,
@@ -187,7 +186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
187
186
  TextInputComponent,
188
187
  TextAreaComponent,
189
188
  TranslateModule,
190
- ], template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'; else urlInput\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [modifyMode]=\"true\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <ng-template #urlInput>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </ng-template>\n </div>\n </ng-template>\n</div>\n" }]
189
+ ], template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (urlChange)=\"handleServiceUrlChange($event)\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n</div>\n" }]
191
190
  }], ctorParameters: () => [{ type: i1.NotificationsService }, { type: i2.TranslateService }, { type: i3.PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialog }], propDecorators: { metadataUuid: [{
192
191
  type: Input
193
192
  }], value: [{
@@ -198,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
198
197
  type: ViewChild,
199
198
  args: ['dialogTemplate']
200
199
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFPaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsb0JB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bmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZUVuZHBvaW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHtcbiAgRmlsZUlucHV0Q29tcG9uZW50LFxuICBTd2l0Y2hUb2dnbGVDb21wb25lbnQsXG4gIFN3aXRjaFRvZ2dsZU9wdGlvbixcbiAgVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcbmltcG9ydCB7IE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL29ubGluZS1yZXNvdXJjZS1jYXJkL29ubGluZS1yZXNvdXJjZS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50J1xuXG50eXBlIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9XG4gIHwgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBTZXJ2aWNlRW5kcG9pbnRcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN3aXRjaFRvZ2dsZUNvbXBvbmVudCxcbiAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUob25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVSZXNvdXJjZT4pIHtcbiAgICB0aGlzLmFsbFJlc291cmNlcyA9IG9ubGluZVJlc291cmNlc1xuICAgIHRoaXMubm90TGlua1Jlc291cmNlcyA9IG9ubGluZVJlc291cmNlcy5maWx0ZXIoXG4gICAgICAocmVzKTogcmVzIGlzIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9PiByZXMudHlwZSAhPT0gJ2xpbmsnXG4gICAgKVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PE9ubGluZVJlc291cmNlPj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9ubGluZVJlc291cmNlPlxuXG4gIHR5cGVPcHRpb25zOiBTd2l0Y2hUb2dnbGVPcHRpb25bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UudG9nZ2xlLmRhdGFzZXQnKSxcbiAgICAgIHZhbHVlOiAnZG93bmxvYWQnLFxuICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS50b2dnbGUuc2VydmljZScpLFxuICAgICAgdmFsdWU6ICdzZXJ2aWNlJyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIF1cbiAgc2VsZWN0ZWRUeXBlOiAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnID0gJ2Rvd25sb2FkJ1xuXG4gIHByaXZhdGUgYWxsUmVzb3VyY2VzOiBPbmxpbmVSZXNvdXJjZVtdID0gW11cbiAgbm90TGlua1Jlc291cmNlczogT25saW5lTm90TGlua1Jlc291cmNlW10gPSBbXVxuICB1cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICB1cGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGxcbiAgbmV3U2VydmljZSA9IDxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbj57XG4gICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogJ29nY0ZlYXR1cmVzJyxcbiAgICBpZGVudGlmaWVySW5TZXJ2aWNlOiAnJyxcbiAgICB1cmw6IHVuZGVmaW5lZCxcbiAgfVxuXG4gIHByb3RlY3RlZCBNQVhfVVBMT0FEX1NJWkVfTUIgPSBNQVhfVVBMT0FEX1NJWkVfTUJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge31cblxuICBvblNlbGVjdGVkVHlwZUNoYW5nZShzZWxlY3RlZFR5cGU6IHVua25vd24pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHNlbGVjdGVkVHlwZSBhcyAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnXG4gIH1cblxuICBoYW5kbGVGaWxlQ2hhbmdlKGZpbGU6IEZpbGUpIHtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMFxuICAgIHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VcbiAgICAgIC5hdHRhY2hGaWxlVG9SZWNvcmQodGhpcy5tZXRhZGF0YVV1aWQsIGZpbGUpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwcm9ncmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBldmVudC5wcm9ncmVzc1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc291cmNlOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5hdHRhY2htZW50LnVybCksXG4gICAgICAgICAgICAgIG5hbWU6IGV2ZW50LmF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgICAgICAgICAgIHNpemVCeXRlczogZXZlbnQuc2l6ZUJ5dGVzLCAvLyBXQVJOSU5HOiB0aGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhhdCBzaXplQnl0ZXMgaXMgc2V0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMuYWxsUmVzb3VyY2VzLCBuZXdSZXNvdXJjZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURvd25sb2FkVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKVxuICAgICAgY29uc3QgbmV3TGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uID0ge1xuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICB1cmw6IG5ldyBVUkwodXJsKSxcbiAgICAgICAgbmFtZSxcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbLi4udGhpcy5hbGxSZXNvdXJjZXMsIG5ld0xpbmtdKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSBhcyBFcnJvcilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZXJ2aWNlVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFtcbiAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLm5ld1NlcnZpY2UsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlSWRlbnRpZmllclN1Ym1pdChwYXlsb2FkOiB7IHVybDogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLmFsbFJlc291cmNlcyxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5uZXdTZXJ2aWNlLFxuICAgICAgICB1cmw6IG5ldyBVUkwocGF5bG9hZC51cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlU2VydmljZU1vZGlmeShcbiAgICBvbGRTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICBuZXdTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApIHtcbiAgICBvbGRTZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IG5ld1NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgb2xkU2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbmV3U2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXG4gICAgb2xkU2VydmljZS51cmwgPSBuZXdTZXJ2aWNlLnVybFxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBub3RMaW5rcyA9IGl0ZW1zIGFzIE9ubGluZU5vdExpbmtSZXNvdXJjZVtdXG4gICAgY29uc3QgbmV3UmVzb3VyY2VzID0gW1xuICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAuLi5ub3RMaW5rcyxcbiAgICBdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1Jlc291cmNlcylcbiAgfVxuXG4gIGhhbmRsZVJlc291cmNlTW9kaWZ5KHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5FZGl0RGlhbG9nKHJlc291cmNlLCBpbmRleClcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IudGl0bGUnXG4gICAgICAgICksXG4gICAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IuYm9keSdcbiAgICAgICAgKX0gJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICAgIGNsb3NlTWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci5jbG9zZU1lc3NhZ2UnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZXJyb3JcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG9wZW5FZGl0RGlhbG9nKHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByZXNvdXJjZUNvcHkgPSB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKE1vZGFsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5kaWFsb2dUaXRsZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJvZHk6IHRoaXMuZGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgYm9keUNvbnRleHQ6IHJlc291cmNlQ29weSxcbiAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNvbmZpcm0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYW5jZWxUZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuY2FuY2VsJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5ld05vdExpbmtzID0gWy4uLnRoaXMubm90TGlua1Jlc291cmNlc11cbiAgICAgICAgbmV3Tm90TGlua3Muc3BsaWNlKGluZGV4LCAxLCByZXNvdXJjZUNvcHkpXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAgICAgLi4ubmV3Tm90TGlua3MsXG4gICAgICAgIF0pXG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICA8Z24tdWktc3dpdGNoLXRvZ2dsZVxuICAgIFtvcHRpb25zXT1cInR5cGVPcHRpb25zXCJcbiAgICAoc2VsZWN0ZWRWYWx1ZSk9XCJvblNlbGVjdGVkVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcbiAgICBleHRyYUNsYXNzZXM9XCJncm93IHRleHQtc21cIlxuICAgIGRhdGEtY3k9XCJvbmxpbmUtcmVzb3VyY2VzLXR5cGVcIlxuICA+PC9nbi11aS1zd2l0Y2gtdG9nZ2xlPlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktZmlsZS1pbnB1dFxuICAgICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSAnZG93bmxvYWQnXCJcbiAgICBbbWF4U2l6ZU1CXT1cIk1BWF9VUExPQURfU0laRV9NQlwiXG4gICAgKGZpbGVDaGFuZ2UpPVwiaGFuZGxlRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgICBbdXBsb2FkUHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICh1cmxDaGFuZ2UpPVwiaGFuZGxlRG93bmxvYWRVcmxDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2duLXVpLWZpbGUtaW5wdXQ+XG4gIDxkaXZcbiAgICAqbmdJZj1cInNlbGVjdGVkVHlwZSA9PT0gJ3NlcnZpY2UnXCJcbiAgICBjbGFzcz1cInctZnVsbCBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgZ2FwLVsxNnB4XVwiXG4gID5cbiAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgIFtzZXJ2aWNlXT1cIm5ld1NlcnZpY2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIChpZGVudGlmaWVyU3VibWl0KT1cImhhbmRsZUlkZW50aWZpZXJTdWJtaXQoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktc29ydGFibGUtbGlzdFxuICAgIFtpdGVtc109XCJub3RMaW5rUmVzb3VyY2VzXCJcbiAgICAoaXRlbXNPcmRlckNoYW5nZSk9XCJoYW5kbGVSZXNvdXJjZXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gID5cbiAgPC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxnbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZFxuICAgICAgW29ubGluZVJlc291cmNlXT1cIm9ubGluZVJlc291cmNlXCJcbiAgICAgIChtb2RpZnlDbGljayk9XCJoYW5kbGVSZXNvdXJjZU1vZGlmeShvbmxpbmVSZXNvdXJjZSwgaW5kZXgpXCJcbiAgICA+PC9nbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2RpYWxvZ1RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC50aXRsZVxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1pbnB1dCBbKHZhbHVlKV09XCJvbmxpbmVSZXNvdXJjZS5uYW1lXCI+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5kZXNjcmlwdGlvblxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1hcmVhXG4gICAgICAgICAgWyh2YWx1ZSldPVwib25saW5lUmVzb3VyY2UuZGVzY3JpcHRpb25cIlxuICAgICAgICA+PC9nbi11aS10ZXh0LWFyZWE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmxpbmVSZXNvdXJjZS50eXBlID09PSAnc2VydmljZSc7IGVsc2UgdXJsSW5wdXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwXCI+PC9zcGFuPlxuICAgICAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgICAgICBbc2VydmljZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgICAgICAgW21vZGlmeU1vZGVdPVwidHJ1ZVwiXG4gICAgICAgID48L2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3VybElucHV0PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInctZnVsbCBib3JkZXItYiBib3JkZXItZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgICAgIDxnbi11aS11cmwtaW5wdXRcbiAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvbmxpbmVSZXNvdXJjZS51cmxcIlxuICAgICAgICAgIFtzaG93VmFsaWRhdGVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICA+PC9nbi11aS11cmwtaW5wdXQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFPaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsb0JB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QU0sV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUM5QyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO2dCQUNyRCxHQUFHLFdBQVc7YUFDZixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBOUxVLGlDQUFpQzttR0FBakMsaUNBQWlDLGtUQy9EOUMsMnFGQXlFQSx5RER0QkksWUFBWSx3TEFDWixxQkFBcUIsMEpBQ3JCLGtCQUFrQix3S0FDbEIsbUNBQW1DLDZLQUNuQyxpQkFBaUIsdUxBQ2pCLHFCQUFxQixxSUFDckIsMkJBQTJCLDZIQUMzQixrQkFBa0IsK0pBQ2xCLGlCQUFpQiw2SkFDakIsZUFBZTs7NEZBR04saUNBQWlDO2tCQW5CN0MsU0FBUzsrQkFDRSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG1DQUFtQzt3QkFDbkMsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO3VOQUdRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZUVuZHBvaW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHtcbiAgRmlsZUlucHV0Q29tcG9uZW50LFxuICBTd2l0Y2hUb2dnbGVDb21wb25lbnQsXG4gIFN3aXRjaFRvZ2dsZU9wdGlvbixcbiAgVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcbmltcG9ydCB7IE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL29ubGluZS1yZXNvdXJjZS1jYXJkL29ubGluZS1yZXNvdXJjZS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50J1xuXG50eXBlIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9XG4gIHwgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBTZXJ2aWNlRW5kcG9pbnRcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN3aXRjaFRvZ2dsZUNvbXBvbmVudCxcbiAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUob25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVSZXNvdXJjZT4pIHtcbiAgICB0aGlzLmFsbFJlc291cmNlcyA9IG9ubGluZVJlc291cmNlc1xuICAgIHRoaXMubm90TGlua1Jlc291cmNlcyA9IG9ubGluZVJlc291cmNlcy5maWx0ZXIoXG4gICAgICAocmVzKTogcmVzIGlzIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9PiByZXMudHlwZSAhPT0gJ2xpbmsnXG4gICAgKVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PE9ubGluZVJlc291cmNlPj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9ubGluZVJlc291cmNlPlxuXG4gIHR5cGVPcHRpb25zOiBTd2l0Y2hUb2dnbGVPcHRpb25bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UudG9nZ2xlLmRhdGFzZXQnKSxcbiAgICAgIHZhbHVlOiAnZG93bmxvYWQnLFxuICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS50b2dnbGUuc2VydmljZScpLFxuICAgICAgdmFsdWU6ICdzZXJ2aWNlJyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIF1cbiAgc2VsZWN0ZWRUeXBlOiAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnID0gJ2Rvd25sb2FkJ1xuXG4gIHByaXZhdGUgYWxsUmVzb3VyY2VzOiBPbmxpbmVSZXNvdXJjZVtdID0gW11cbiAgbm90TGlua1Jlc291cmNlczogT25saW5lTm90TGlua1Jlc291cmNlW10gPSBbXVxuICB1cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICB1cGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGxcbiAgbmV3U2VydmljZSA9IHtcbiAgICB0eXBlOiAnc2VydmljZScsXG4gICAgYWNjZXNzU2VydmljZVByb3RvY29sOiAnb2djRmVhdHVyZXMnLFxuICAgIGlkZW50aWZpZXJJblNlcnZpY2U6ICcnLFxuICB9IGFzIE9taXQ8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sICd1cmwnPlxuXG4gIHByb3RlY3RlZCBNQVhfVVBMT0FEX1NJWkVfTUIgPSBNQVhfVVBMT0FEX1NJWkVfTUJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge31cblxuICBvblNlbGVjdGVkVHlwZUNoYW5nZShzZWxlY3RlZFR5cGU6IHVua25vd24pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHNlbGVjdGVkVHlwZSBhcyAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnXG4gIH1cblxuICBoYW5kbGVGaWxlQ2hhbmdlKGZpbGU6IEZpbGUpIHtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMFxuICAgIHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VcbiAgICAgIC5hdHRhY2hGaWxlVG9SZWNvcmQodGhpcy5tZXRhZGF0YVV1aWQsIGZpbGUpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwcm9ncmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBldmVudC5wcm9ncmVzc1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc291cmNlOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5hdHRhY2htZW50LnVybCksXG4gICAgICAgICAgICAgIG5hbWU6IGV2ZW50LmF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgICAgICAgICAgIHNpemVCeXRlczogZXZlbnQuc2l6ZUJ5dGVzLCAvLyBXQVJOSU5HOiB0aGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhhdCBzaXplQnl0ZXMgaXMgc2V0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMuYWxsUmVzb3VyY2VzLCBuZXdSZXNvdXJjZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURvd25sb2FkVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKVxuICAgICAgY29uc3QgbmV3TGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uID0ge1xuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICB1cmw6IG5ldyBVUkwodXJsKSxcbiAgICAgICAgbmFtZSxcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbLi4udGhpcy5hbGxSZXNvdXJjZXMsIG5ld0xpbmtdKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSBhcyBFcnJvcilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZXJ2aWNlVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFtcbiAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLm5ld1NlcnZpY2UsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlSWRlbnRpZmllclN1Ym1pdChwYXlsb2FkOiB7IHVybDogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLmFsbFJlc291cmNlcyxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5uZXdTZXJ2aWNlLFxuICAgICAgICB1cmw6IG5ldyBVUkwocGF5bG9hZC51cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlU2VydmljZU1vZGlmeShcbiAgICBvbGRTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICBuZXdTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApIHtcbiAgICBvbGRTZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IG5ld1NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgb2xkU2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbmV3U2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXG4gICAgb2xkU2VydmljZS51cmwgPSBuZXdTZXJ2aWNlLnVybFxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBub3RMaW5rcyA9IGl0ZW1zIGFzIE9ubGluZU5vdExpbmtSZXNvdXJjZVtdXG4gICAgY29uc3QgbmV3UmVzb3VyY2VzID0gW1xuICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAuLi5ub3RMaW5rcyxcbiAgICBdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1Jlc291cmNlcylcbiAgfVxuXG4gIGhhbmRsZVJlc291cmNlTW9kaWZ5KHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5FZGl0RGlhbG9nKHJlc291cmNlLCBpbmRleClcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IudGl0bGUnXG4gICAgICAgICksXG4gICAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IuYm9keSdcbiAgICAgICAgKX0gJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICAgIGNsb3NlTWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci5jbG9zZU1lc3NhZ2UnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZXJyb3JcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG9wZW5FZGl0RGlhbG9nKHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByZXNvdXJjZUNvcHkgPSB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKE1vZGFsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5kaWFsb2dUaXRsZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJvZHk6IHRoaXMuZGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgYm9keUNvbnRleHQ6IHJlc291cmNlQ29weSxcbiAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNvbmZpcm0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYW5jZWxUZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuY2FuY2VsJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5ld05vdExpbmtzID0gWy4uLnRoaXMubm90TGlua1Jlc291cmNlc11cbiAgICAgICAgbmV3Tm90TGlua3Muc3BsaWNlKGluZGV4LCAxLCByZXNvdXJjZUNvcHkpXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAgICAgLi4ubmV3Tm90TGlua3MsXG4gICAgICAgIF0pXG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICA8Z24tdWktc3dpdGNoLXRvZ2dsZVxuICAgIFtvcHRpb25zXT1cInR5cGVPcHRpb25zXCJcbiAgICAoc2VsZWN0ZWRWYWx1ZSk9XCJvblNlbGVjdGVkVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcbiAgICBleHRyYUNsYXNzZXM9XCJncm93IHRleHQtc21cIlxuICAgIGRhdGEtY3k9XCJvbmxpbmUtcmVzb3VyY2VzLXR5cGVcIlxuICA+PC9nbi11aS1zd2l0Y2gtdG9nZ2xlPlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktZmlsZS1pbnB1dFxuICAgICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSAnZG93bmxvYWQnXCJcbiAgICBbbWF4U2l6ZU1CXT1cIk1BWF9VUExPQURfU0laRV9NQlwiXG4gICAgKGZpbGVDaGFuZ2UpPVwiaGFuZGxlRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgICBbdXBsb2FkUHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICh1cmxDaGFuZ2UpPVwiaGFuZGxlRG93bmxvYWRVcmxDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2duLXVpLWZpbGUtaW5wdXQ+XG4gIDxkaXZcbiAgICAqbmdJZj1cInNlbGVjdGVkVHlwZSA9PT0gJ3NlcnZpY2UnXCJcbiAgICBjbGFzcz1cInctZnVsbCBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgZ2FwLVsxNnB4XVwiXG4gID5cbiAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgIFtzZXJ2aWNlXT1cIm5ld1NlcnZpY2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICh1cmxDaGFuZ2UpPVwiaGFuZGxlU2VydmljZVVybENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChpZGVudGlmaWVyU3VibWl0KT1cImhhbmRsZUlkZW50aWZpZXJTdWJtaXQoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktc29ydGFibGUtbGlzdFxuICAgIFtpdGVtc109XCJub3RMaW5rUmVzb3VyY2VzXCJcbiAgICAoaXRlbXNPcmRlckNoYW5nZSk9XCJoYW5kbGVSZXNvdXJjZXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gID5cbiAgPC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxnbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZFxuICAgICAgW29ubGluZVJlc291cmNlXT1cIm9ubGluZVJlc291cmNlXCJcbiAgICAgIChtb2RpZnlDbGljayk9XCJoYW5kbGVSZXNvdXJjZU1vZGlmeShvbmxpbmVSZXNvdXJjZSwgaW5kZXgpXCJcbiAgICA+PC9nbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2RpYWxvZ1RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC50aXRsZVxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1pbnB1dCBbKHZhbHVlKV09XCJvbmxpbmVSZXNvdXJjZS5uYW1lXCI+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5kZXNjcmlwdGlvblxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1hcmVhXG4gICAgICAgICAgWyh2YWx1ZSldPVwib25saW5lUmVzb3VyY2UuZGVzY3JpcHRpb25cIlxuICAgICAgICA+PC9nbi11aS10ZXh0LWFyZWE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmxpbmVSZXNvdXJjZS50eXBlID09PSAnc2VydmljZSdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwXCI+PC9zcGFuPlxuICAgICAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgICAgICBbc2VydmljZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgICAgID48L2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiBjbGFzcz1cInctZnVsbCBib3JkZXItYiBib3JkZXItZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgICA8Z24tdWktdXJsLWlucHV0XG4gICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICBbdmFsdWVdPVwib25saW5lUmVzb3VyY2UudXJsXCJcbiAgICAgICAgW3Nob3dWYWxpZGF0ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICA+PC9nbi11aS11cmwtaW5wdXQ+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==