@myrmidon/cadmus-part-codicology-shelfmarks 0.0.2

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 (26) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/cadmus-part-codicology-shelfmarks.module.mjs +91 -0
  3. package/esm2020/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.mjs +100 -0
  4. package/esm2020/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.mjs +151 -0
  5. package/esm2020/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.mjs +26 -0
  6. package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.mjs +16 -0
  7. package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.mjs +18 -0
  8. package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.mjs +27 -0
  9. package/esm2020/lib/cod-shelfmarks-part.mjs +87 -0
  10. package/esm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +5 -0
  11. package/esm2020/public-api.mjs +9 -0
  12. package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs +492 -0
  13. package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -0
  14. package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +490 -0
  15. package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -0
  16. package/lib/cadmus-part-codicology-shelfmarks.module.d.ts +21 -0
  17. package/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.d.ts +28 -0
  18. package/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.d.ts +36 -0
  19. package/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.d.ts +13 -0
  20. package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.d.ts +8 -0
  21. package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.d.ts +9 -0
  22. package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.d.ts +10 -0
  23. package/lib/cod-shelfmarks-part.d.ts +90 -0
  24. package/myrmidon-cadmus-part-codicology-shelfmarks.d.ts +5 -0
  25. package/package.json +43 -0
  26. package/public-api.d.ts +5 -0
@@ -0,0 +1,87 @@
1
+ /**
2
+ * The type ID used to identify the CodShelfmarksPart type.
3
+ */
4
+ export const COD_SHELFMARKS_PART_TYPEID = 'it.vedph.codicology.shelfmarks';
5
+ /**
6
+ * JSON schema for the CodShelfmarks part.
7
+ * You can use the JSON schema tool at https://jsonschema.net/.
8
+ */
9
+ export const COD_SHELFMARKS_PART_SCHEMA = {
10
+ $schema: 'http://json-schema.org/draft-07/schema#',
11
+ $id: 'www.vedph.it/cadmus/parts/codicology/' +
12
+ COD_SHELFMARKS_PART_TYPEID +
13
+ '.json',
14
+ type: 'object',
15
+ title: 'CodShelfmarksPart',
16
+ required: [
17
+ 'id',
18
+ 'itemId',
19
+ 'typeId',
20
+ 'timeCreated',
21
+ 'creatorId',
22
+ 'timeModified',
23
+ 'userId',
24
+ 'shelfmarks',
25
+ ],
26
+ properties: {
27
+ timeCreated: {
28
+ type: 'string',
29
+ pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d+Z$',
30
+ },
31
+ creatorId: {
32
+ type: 'string',
33
+ },
34
+ timeModified: {
35
+ type: 'string',
36
+ pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d+Z$',
37
+ },
38
+ userId: {
39
+ type: 'string',
40
+ },
41
+ id: {
42
+ type: 'string',
43
+ pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
44
+ },
45
+ itemId: {
46
+ type: 'string',
47
+ pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
48
+ },
49
+ typeId: {
50
+ type: 'string',
51
+ pattern: '^[a-z][-0-9a-z._]*$',
52
+ },
53
+ roleId: {
54
+ type: ['string', 'null'],
55
+ pattern: '^([a-z][-0-9a-z._]*)?$',
56
+ },
57
+ shelfmarks: {
58
+ type: 'array',
59
+ items: {
60
+ anyOf: [
61
+ {
62
+ type: 'object',
63
+ required: ['city', 'library', 'location'],
64
+ properties: {
65
+ tag: {
66
+ type: 'string',
67
+ },
68
+ city: {
69
+ type: 'string',
70
+ },
71
+ library: {
72
+ type: 'string',
73
+ },
74
+ fund: {
75
+ type: 'string',
76
+ },
77
+ location: {
78
+ type: 'string',
79
+ },
80
+ },
81
+ },
82
+ ],
83
+ },
84
+ },
85
+ },
86
+ };
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFya3MtcGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1wYXJ0LWNvZGljb2xvZ3ktc2hlbGZtYXJrcy9zcmMvbGliL2NvZC1zaGVsZm1hcmtzLXBhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFFM0U7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxHQUFHLEVBQ0QsdUNBQXVDO1FBQ3ZDLDBCQUEwQjtRQUMxQixPQUFPO0lBQ1QsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLFFBQVEsRUFBRTtRQUNSLElBQUk7UUFDSixRQUFRO1FBQ1IsUUFBUTtRQUNSLGFBQWE7UUFDYixXQUFXO1FBQ1gsY0FBYztRQUNkLFFBQVE7UUFDUixZQUFZO0tBQ2I7SUFDRCxVQUFVLEVBQUU7UUFDVixXQUFXLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxtREFBbUQ7U0FDN0Q7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsUUFBUTtTQUNmO1FBQ0QsWUFBWSxFQUFFO1lBQ1osSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsbURBQW1EO1NBQzdEO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLFFBQVE7U0FDZjtRQUNELEVBQUUsRUFBRTtZQUNGLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLGdFQUFnRTtTQUMxRTtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLGdFQUFnRTtTQUMxRTtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7WUFDeEIsT0FBTyxFQUFFLHdCQUF3QjtTQUNsQztRQUNELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRTtvQkFDTDt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQzt3QkFDekMsVUFBVSxFQUFFOzRCQUNWLEdBQUcsRUFBRTtnQ0FDSCxJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRCxJQUFJLEVBQUU7Z0NBQ0osSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0QsT0FBTyxFQUFFO2dDQUNQLElBQUksRUFBRSxRQUFROzZCQUNmOzRCQUNELElBQUksRUFBRTtnQ0FDSixJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRCxRQUFRLEVBQUU7Z0NBQ1IsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFydCB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcblxyXG4vKipcclxuICogQSBtYW51c2NyaXB0J3Mgc2hlbGZtYXJrLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb2RTaGVsZm1hcmsge1xyXG4gIHRhZz86IHN0cmluZztcclxuICBjaXR5OiBzdHJpbmc7XHJcbiAgbGlicmFyeTogc3RyaW5nO1xyXG4gIGZ1bmQ/OiBzdHJpbmc7XHJcbiAgbG9jYXRpb246IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBDb2RTaGVsZm1hcmtzIHBhcnQgbW9kZWwuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvZFNoZWxmbWFya3NQYXJ0IGV4dGVuZHMgUGFydCB7XHJcbiAgc2hlbGZtYXJrczogQ29kU2hlbGZtYXJrW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgdHlwZSBJRCB1c2VkIHRvIGlkZW50aWZ5IHRoZSBDb2RTaGVsZm1hcmtzUGFydCB0eXBlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IENPRF9TSEVMRk1BUktTX1BBUlRfVFlQRUlEID0gJ2l0LnZlZHBoLmNvZGljb2xvZ3kuc2hlbGZtYXJrcyc7XHJcblxyXG4vKipcclxuICogSlNPTiBzY2hlbWEgZm9yIHRoZSBDb2RTaGVsZm1hcmtzIHBhcnQuXHJcbiAqIFlvdSBjYW4gdXNlIHRoZSBKU09OIHNjaGVtYSB0b29sIGF0IGh0dHBzOi8vanNvbnNjaGVtYS5uZXQvLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IENPRF9TSEVMRk1BUktTX1BBUlRfU0NIRU1BID0ge1xyXG4gICRzY2hlbWE6ICdodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMnLFxyXG4gICRpZDpcclxuICAgICd3d3cudmVkcGguaXQvY2FkbXVzL3BhcnRzL2NvZGljb2xvZ3kvJyArXHJcbiAgICBDT0RfU0hFTEZNQVJLU19QQVJUX1RZUEVJRCArXHJcbiAgICAnLmpzb24nLFxyXG4gIHR5cGU6ICdvYmplY3QnLFxyXG4gIHRpdGxlOiAnQ29kU2hlbGZtYXJrc1BhcnQnLFxyXG4gIHJlcXVpcmVkOiBbXHJcbiAgICAnaWQnLFxyXG4gICAgJ2l0ZW1JZCcsXHJcbiAgICAndHlwZUlkJyxcclxuICAgICd0aW1lQ3JlYXRlZCcsXHJcbiAgICAnY3JlYXRvcklkJyxcclxuICAgICd0aW1lTW9kaWZpZWQnLFxyXG4gICAgJ3VzZXJJZCcsXHJcbiAgICAnc2hlbGZtYXJrcycsXHJcbiAgXSxcclxuICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB0aW1lQ3JlYXRlZDoge1xyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgcGF0dGVybjogJ15cXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfVRcXFxcZHsyfTpcXFxcZHsyfTpcXFxcZHsyfS5cXFxcZCtaJCcsXHJcbiAgICB9LFxyXG4gICAgY3JlYXRvcklkOiB7XHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgfSxcclxuICAgIHRpbWVNb2RpZmllZDoge1xyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgcGF0dGVybjogJ15cXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfVRcXFxcZHsyfTpcXFxcZHsyfTpcXFxcZHsyfS5cXFxcZCtaJCcsXHJcbiAgICB9LFxyXG4gICAgdXNlcklkOiB7XHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgfSxcclxuICAgIGlkOiB7XHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBwYXR0ZXJuOiAnXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQnLFxyXG4gICAgfSxcclxuICAgIGl0ZW1JZDoge1xyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgcGF0dGVybjogJ15bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXsxMn0kJyxcclxuICAgIH0sXHJcbiAgICB0eXBlSWQ6IHtcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIHBhdHRlcm46ICdeW2Etel1bLTAtOWEtei5fXSokJyxcclxuICAgIH0sXHJcbiAgICByb2xlSWQ6IHtcclxuICAgICAgdHlwZTogWydzdHJpbmcnLCAnbnVsbCddLFxyXG4gICAgICBwYXR0ZXJuOiAnXihbYS16XVstMC05YS16Ll9dKik/JCcsXHJcbiAgICB9LFxyXG4gICAgc2hlbGZtYXJrczoge1xyXG4gICAgICB0eXBlOiAnYXJyYXknLFxyXG4gICAgICBpdGVtczoge1xyXG4gICAgICAgIGFueU9mOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICByZXF1aXJlZDogWydjaXR5JywgJ2xpYnJhcnknLCAnbG9jYXRpb24nXSxcclxuICAgICAgICAgICAgcHJvcGVydGllczoge1xyXG4gICAgICAgICAgICAgIHRhZzoge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBjaXR5OiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGxpYnJhcnk6IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZnVuZDoge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBsb2NhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlybWlkb24tY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9teXJtaWRvbi1jYWRtdXMtcGFydC1jb2RpY29sb2d5LXNoZWxmbWFya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Public API Surface of cadmus-part-codicology-shelfmarks
3
+ */
4
+ export * from './lib/cod-shelfmarks-part';
5
+ export * from './lib/cod-shelfmarks-part/cod-shelfmarks-part.component';
6
+ export * from './lib/cod-shelfmark-editor/cod-shelfmark-editor.component';
7
+ export * from './lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component';
8
+ export * from './lib/cadmus-part-codicology-shelfmarks.module';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1wYXJ0LWNvZGljb2xvZ3ktc2hlbGZtYXJrcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29kLXNoZWxmbWFya3MtcGFydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2Qtc2hlbGZtYXJrcy1wYXJ0L2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZC1zaGVsZm1hcmstZWRpdG9yL2NvZC1zaGVsZm1hcmstZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2Qtc2hlbGZtYXJrcy1wYXJ0LWZlYXR1cmUvY29kLXNoZWxmbWFya3MtcGFydC1mZWF0dXJlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYWRtdXMtcGFydC1jb2RpY29sb2d5LXNoZWxmbWFya3MubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,492 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, Injectable, NgModule } from '@angular/core';
3
+ import { take } from 'rxjs/operators';
4
+ import { NgToolsValidators, deepCopy } from '@myrmidon/ng-tools';
5
+ import * as i9$1 from '@myrmidon/cadmus-ui';
6
+ import { ModelEditorComponentBase, CadmusUiModule } from '@myrmidon/cadmus-ui';
7
+ import * as i1$1 from '@myrmidon/auth-jwt-login';
8
+ import * as i1 from '@angular/forms';
9
+ import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
10
+ import * as i3$1 from '@myrmidon/ng-mat-tools';
11
+ import * as i4$1 from '@angular/material/card';
12
+ import { MatCardModule } from '@angular/material/card';
13
+ import * as i6 from '@angular/material/icon';
14
+ import { MatIconModule } from '@angular/material/icon';
15
+ import * as i6$1 from '@angular/material/tabs';
16
+ import { MatTabsModule } from '@angular/material/tabs';
17
+ import * as i5 from '@angular/material/button';
18
+ import { MatButtonModule } from '@angular/material/button';
19
+ import * as i2 from '@angular/material/form-field';
20
+ import * as i3 from '@angular/material/select';
21
+ import { MatSelectModule } from '@angular/material/select';
22
+ import * as i4 from '@angular/material/core';
23
+ import * as i7 from '@angular/common';
24
+ import { CommonModule } from '@angular/common';
25
+ import * as i8 from '@angular/material/input';
26
+ import { MatInputModule } from '@angular/material/input';
27
+ import * as i9 from '@angular/material/tooltip';
28
+ import { MatTooltipModule } from '@angular/material/tooltip';
29
+ import * as i5$1 from '@myrmidon/cadmus-state';
30
+ import { EditPartQueryBase, EditPartServiceBase, EditPartFeatureBase, CadmusStateModule } from '@myrmidon/cadmus-state';
31
+ import * as i1$2 from '@angular/router';
32
+ import * as i2$2 from '@angular/material/snack-bar';
33
+ import { __decorate } from 'tslib';
34
+ import { Store, StoreConfig } from '@datorama/akita';
35
+ import * as i2$1 from '@myrmidon/cadmus-api';
36
+ import * as i6$2 from '@myrmidon/cadmus-ui-pg';
37
+ import { CadmusUiPgModule } from '@myrmidon/cadmus-ui-pg';
38
+
39
+ /**
40
+ * The type ID used to identify the CodShelfmarksPart type.
41
+ */
42
+ const COD_SHELFMARKS_PART_TYPEID = 'it.vedph.codicology.shelfmarks';
43
+ /**
44
+ * JSON schema for the CodShelfmarks part.
45
+ * You can use the JSON schema tool at https://jsonschema.net/.
46
+ */
47
+ const COD_SHELFMARKS_PART_SCHEMA = {
48
+ $schema: 'http://json-schema.org/draft-07/schema#',
49
+ $id: 'www.vedph.it/cadmus/parts/codicology/' +
50
+ COD_SHELFMARKS_PART_TYPEID +
51
+ '.json',
52
+ type: 'object',
53
+ title: 'CodShelfmarksPart',
54
+ required: [
55
+ 'id',
56
+ 'itemId',
57
+ 'typeId',
58
+ 'timeCreated',
59
+ 'creatorId',
60
+ 'timeModified',
61
+ 'userId',
62
+ 'shelfmarks',
63
+ ],
64
+ properties: {
65
+ timeCreated: {
66
+ type: 'string',
67
+ pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d+Z$',
68
+ },
69
+ creatorId: {
70
+ type: 'string',
71
+ },
72
+ timeModified: {
73
+ type: 'string',
74
+ pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d+Z$',
75
+ },
76
+ userId: {
77
+ type: 'string',
78
+ },
79
+ id: {
80
+ type: 'string',
81
+ pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
82
+ },
83
+ itemId: {
84
+ type: 'string',
85
+ pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
86
+ },
87
+ typeId: {
88
+ type: 'string',
89
+ pattern: '^[a-z][-0-9a-z._]*$',
90
+ },
91
+ roleId: {
92
+ type: ['string', 'null'],
93
+ pattern: '^([a-z][-0-9a-z._]*)?$',
94
+ },
95
+ shelfmarks: {
96
+ type: 'array',
97
+ items: {
98
+ anyOf: [
99
+ {
100
+ type: 'object',
101
+ required: ['city', 'library', 'location'],
102
+ properties: {
103
+ tag: {
104
+ type: 'string',
105
+ },
106
+ city: {
107
+ type: 'string',
108
+ },
109
+ library: {
110
+ type: 'string',
111
+ },
112
+ fund: {
113
+ type: 'string',
114
+ },
115
+ location: {
116
+ type: 'string',
117
+ },
118
+ },
119
+ },
120
+ ],
121
+ },
122
+ },
123
+ },
124
+ };
125
+
126
+ class CodShelfmarkEditorComponent {
127
+ constructor(formBuilder) {
128
+ this.shelfmarkChange = new EventEmitter();
129
+ this.editorClose = new EventEmitter();
130
+ // form
131
+ this.tag = formBuilder.control(null, Validators.maxLength(50));
132
+ this.city = formBuilder.control(null, [
133
+ Validators.required,
134
+ Validators.maxLength(50),
135
+ ]);
136
+ this.library = formBuilder.control(null, [
137
+ Validators.required,
138
+ Validators.maxLength(50),
139
+ ]);
140
+ this.fund = formBuilder.control(null, Validators.maxLength(50));
141
+ this.location = formBuilder.control(null, Validators.maxLength(50));
142
+ this.form = formBuilder.group({
143
+ tag: this.tag,
144
+ city: this.city,
145
+ library: this.library,
146
+ fund: this.fund,
147
+ location: this.location,
148
+ });
149
+ }
150
+ get shelfmark() {
151
+ return this._shelfmark;
152
+ }
153
+ set shelfmark(value) {
154
+ this._shelfmark = value;
155
+ this.updateForm(value);
156
+ }
157
+ ngOnInit() {
158
+ if (this._shelfmark) {
159
+ this.updateForm(this._shelfmark);
160
+ }
161
+ }
162
+ updateForm(model) {
163
+ if (!model) {
164
+ this.form.reset();
165
+ return;
166
+ }
167
+ this.tag.setValue(model.tag);
168
+ this.city.setValue(model.city);
169
+ this.library.setValue(model.library);
170
+ this.fund.setValue(model.fund);
171
+ this.location.setValue(model.location);
172
+ this.form.markAsPristine();
173
+ }
174
+ getModel() {
175
+ var _a, _b, _c, _d, _e;
176
+ return {
177
+ tag: (_a = this.tag.value) === null || _a === void 0 ? void 0 : _a.trim(),
178
+ city: (_b = this.city.value) === null || _b === void 0 ? void 0 : _b.trim(),
179
+ library: (_c = this.library.value) === null || _c === void 0 ? void 0 : _c.trim(),
180
+ fund: (_d = this.fund.value) === null || _d === void 0 ? void 0 : _d.trim(),
181
+ location: (_e = this.location.value) === null || _e === void 0 ? void 0 : _e.trim(),
182
+ };
183
+ }
184
+ cancel() {
185
+ this.editorClose.emit();
186
+ }
187
+ save() {
188
+ if (this.form.invalid) {
189
+ return;
190
+ }
191
+ const model = this.getModel();
192
+ if (!model) {
193
+ return;
194
+ }
195
+ this.shelfmarkChange.emit(model);
196
+ }
197
+ }
198
+ CodShelfmarkEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarkEditorComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
199
+ CodShelfmarkEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: { shelfmark: "shelfmark", tagEntries: "tagEntries", libEntries: "libEntries" }, outputs: { shelfmarkChange: "shelfmarkChange", editorClose: "editorClose" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"tag\" placeholder=\"tag\">\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!tagEntries?.length\">\n <input matInput [formControl]=\"tag\" placeholder=\"tag\" />\n <mat-error\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n <!-- city -->\n &nbsp;\n <mat-form-field>\n <input matInput [formControl]=\"city\" placeholder=\"city\" />\n <mat-error\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\n >city required</mat-error\n >\n <mat-error\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\n >city too long</mat-error\n >\n </mat-form-field>\n </div>\n <div>\n <!-- library (bound) -->\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"library\" placeholder=\"library\">\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n </mat-form-field>\n <!-- library (free) -->\n <mat-form-field *ngIf=\"!libEntries?.length\">\n <input matInput [formControl]=\"library\" placeholder=\"library\" />\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(library).errors?.maxLength && (library.dirty || library.touched)\n \"\n >library too long</mat-error\n >\n </mat-form-field>\n <!-- fund -->\n &nbsp;\n <mat-form-field>\n <input matInput [formControl]=\"fund\" placeholder=\"fund\" />\n <mat-error\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\n >fund too long</mat-error\n >\n </mat-form-field>\n <!-- location -->\n &nbsp;\n <mat-form-field>\n <input matInput [formControl]=\"location\" placeholder=\"location\" />\n <mat-error\n *ngIf=\"\n $any(location).errors?.required &&\n (location.dirty || location.touched)\n \"\n >location required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(location).errors?.maxLength &&\n (location.dirty || location.touched)\n \"\n >location too long</mat-error\n >\n </mat-form-field>\n </div>\n <!-- buttons -->\n <div>\n <button\n type=\"button\"\n color=\"warn\"\n mat-icon-button\n matTooltip=\"Discard changes\"\n (click)=\"cancel()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n <button\n type=\"submit\"\n color=\"primary\"\n mat-icon-button\n matTooltip=\"Accept changes\"\n [disabled]=\"form.invalid || form.pristine\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n", styles: [""], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.MatError, selector: "mat-error", inputs: ["id"] }, { type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarkEditorComponent, decorators: [{
201
+ type: Component,
202
+ args: [{ selector: 'cadmus-cod-shelfmark-editor', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"tag\" placeholder=\"tag\">\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!tagEntries?.length\">\n <input matInput [formControl]=\"tag\" placeholder=\"tag\" />\n <mat-error\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n <!-- city -->\n &nbsp;\n <mat-form-field>\n <input matInput [formControl]=\"city\" placeholder=\"city\" />\n <mat-error\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\n >city required</mat-error\n >\n <mat-error\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\n >city too long</mat-error\n >\n </mat-form-field>\n </div>\n <div>\n <!-- library (bound) -->\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"library\" placeholder=\"library\">\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n </mat-form-field>\n <!-- library (free) -->\n <mat-form-field *ngIf=\"!libEntries?.length\">\n <input matInput [formControl]=\"library\" placeholder=\"library\" />\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(library).errors?.maxLength && (library.dirty || library.touched)\n \"\n >library too long</mat-error\n >\n </mat-form-field>\n <!-- fund -->\n &nbsp;\n <mat-form-field>\n <input matInput [formControl]=\"fund\" placeholder=\"fund\" />\n <mat-error\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\n >fund too long</mat-error\n >\n </mat-form-field>\n <!-- location -->\n &nbsp;\n <mat-form-field>\n <input matInput [formControl]=\"location\" placeholder=\"location\" />\n <mat-error\n *ngIf=\"\n $any(location).errors?.required &&\n (location.dirty || location.touched)\n \"\n >location required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(location).errors?.maxLength &&\n (location.dirty || location.touched)\n \"\n >location too long</mat-error\n >\n </mat-form-field>\n </div>\n <!-- buttons -->\n <div>\n <button\n type=\"button\"\n color=\"warn\"\n mat-icon-button\n matTooltip=\"Discard changes\"\n (click)=\"cancel()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n <button\n type=\"submit\"\n color=\"primary\"\n mat-icon-button\n matTooltip=\"Accept changes\"\n [disabled]=\"form.invalid || form.pristine\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n", styles: [""] }]
203
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { shelfmark: [{
204
+ type: Input
205
+ }], tagEntries: [{
206
+ type: Input
207
+ }], libEntries: [{
208
+ type: Input
209
+ }], shelfmarkChange: [{
210
+ type: Output
211
+ }], editorClose: [{
212
+ type: Output
213
+ }] } });
214
+
215
+ /**
216
+ * CodShelfmarksPart editor component.
217
+ * Thesauri: cod-shelfmark-tags, cod-shelfmark-libraries (all optional).
218
+ */
219
+ class CodShelfmarksPartComponent extends ModelEditorComponentBase {
220
+ constructor(authService, formBuilder, _dialogService) {
221
+ super(authService);
222
+ this._dialogService = _dialogService;
223
+ this._editedIndex = -1;
224
+ this.tabIndex = 0;
225
+ // form
226
+ this.shelfmarks = formBuilder.control([], NgToolsValidators.strictMinLengthValidator(1));
227
+ this.form = formBuilder.group({
228
+ entries: this.shelfmarks,
229
+ });
230
+ }
231
+ ngOnInit() {
232
+ this.initEditor();
233
+ }
234
+ updateForm(model) {
235
+ if (!model) {
236
+ this.form.reset();
237
+ return;
238
+ }
239
+ this.shelfmarks.setValue(model.shelfmarks || []);
240
+ this.form.markAsPristine();
241
+ }
242
+ onModelSet(model) {
243
+ this.updateForm(deepCopy(model));
244
+ }
245
+ onThesauriSet() {
246
+ let key = 'cod-shelfmark-tags';
247
+ if (this.thesauri && this.thesauri[key]) {
248
+ this.tagEntries = this.thesauri[key].entries;
249
+ }
250
+ else {
251
+ this.tagEntries = undefined;
252
+ }
253
+ key = 'cod-shelfmark-libraries';
254
+ if (this.thesauri && this.thesauri[key]) {
255
+ this.libEntries = this.thesauri[key].entries;
256
+ }
257
+ else {
258
+ this.libEntries = undefined;
259
+ }
260
+ }
261
+ getModelFromForm() {
262
+ let part = this.model;
263
+ if (!part) {
264
+ part = {
265
+ itemId: this.itemId || '',
266
+ id: '',
267
+ typeId: COD_SHELFMARKS_PART_TYPEID,
268
+ roleId: this.roleId,
269
+ timeCreated: new Date(),
270
+ creatorId: '',
271
+ timeModified: new Date(),
272
+ userId: '',
273
+ shelfmarks: [],
274
+ };
275
+ }
276
+ part.shelfmarks = this.shelfmarks.value || [];
277
+ return part;
278
+ }
279
+ addShelfmark() {
280
+ var _a;
281
+ const entry = {
282
+ city: '',
283
+ library: ((_a = this.libEntries) === null || _a === void 0 ? void 0 : _a.length) ? this.libEntries[0].id : '',
284
+ location: '',
285
+ };
286
+ this.shelfmarks.setValue([...this.shelfmarks.value, entry]);
287
+ this.editShelfmark(this.shelfmarks.value.length - 1);
288
+ }
289
+ editShelfmark(index) {
290
+ if (index < 0) {
291
+ this._editedIndex = -1;
292
+ this.tabIndex = 0;
293
+ this.editedShelfmark = undefined;
294
+ }
295
+ else {
296
+ this._editedIndex = index;
297
+ this.editedShelfmark = this.shelfmarks.value[index];
298
+ setTimeout(() => {
299
+ this.tabIndex = 1;
300
+ }, 300);
301
+ }
302
+ }
303
+ onShelfmarkSave(entry) {
304
+ this.shelfmarks.setValue(this.shelfmarks.value.map((e, i) => i === this._editedIndex ? entry : e));
305
+ this.editShelfmark(-1);
306
+ }
307
+ onShelfmarkClose() {
308
+ this.editShelfmark(-1);
309
+ }
310
+ deleteShelfmark(index) {
311
+ this._dialogService
312
+ .confirm('Confirmation', 'Delete shelfmark?')
313
+ .pipe(take(1))
314
+ .subscribe((yes) => {
315
+ if (yes) {
316
+ const entries = [...this.shelfmarks.value];
317
+ entries.splice(index, 1);
318
+ this.shelfmarks.setValue(entries);
319
+ }
320
+ });
321
+ }
322
+ moveShelfmarkUp(index) {
323
+ if (index < 1) {
324
+ return;
325
+ }
326
+ const entry = this.shelfmarks.value[index];
327
+ const entries = [...this.shelfmarks.value];
328
+ entries.splice(index, 1);
329
+ entries.splice(index - 1, 0, entry);
330
+ this.shelfmarks.setValue(entries);
331
+ }
332
+ moveShelfmarkDown(index) {
333
+ if (index + 1 >= this.shelfmarks.value.length) {
334
+ return;
335
+ }
336
+ const entry = this.shelfmarks.value[index];
337
+ const entries = [...this.shelfmarks.value];
338
+ entries.splice(index, 1);
339
+ entries.splice(index + 1, 0, entry);
340
+ this.shelfmarks.setValue(entries);
341
+ }
342
+ }
343
+ CodShelfmarksPartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartComponent, deps: [{ token: i1$1.AuthJwtService }, { token: i1.FormBuilder }, { token: i3$1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
344
+ CodShelfmarksPartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form!\" (submit)=\"save()\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon>picture_in_picture</mat-icon>\n </div>\n <mat-card-title>Shelfmarks Part</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\n <mat-tab label=\"shelfmarks\">\n <div>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"addShelfmark()\"\n >\n <mat-icon>add_circle</mat-icon> add shelfmark\n </button>\n </div>\n <table *ngIf=\"shelfmarks?.value?.length\">\n <thead>\n <tr>\n <th></th>\n <th>tag</th>\n <th>city</th>\n <th>library</th>\n <th>fund</th>\n <th>location</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let entry of shelfmarks?.value;\n let i = index;\n let first = first;\n let last = last\n \"\n >\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this shelfmark\"\n (click)=\"editShelfmark(i)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark up\"\n [disabled]=\"first\"\n (click)=\"moveShelfmarkUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark down\"\n [disabled]=\"last\"\n (click)=\"moveShelfmarkDown(i)\"\n >\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n matTooltip=\"Delete this shelfmark\"\n (click)=\"deleteShelfmark(i)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.tag }}</td>\n <td>{{ entry.city }}</td>\n <td>{{ entry.library }}</td>\n <td>{{ entry.fund }}</td>\n <td>{{ entry.location }}</td>\n </tr>\n </tbody>\n </table>\n </mat-tab>\n\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\n <cadmus-cod-shelfmark-editor\n [tagEntries]=\"tagEntries\"\n [libEntries]=\"libEntries\"\n [shelfmark]=\"editedShelfmark\"\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\n (editorClose)=\"onShelfmarkClose()\"\n ></cadmus-cod-shelfmark-editor>\n </mat-tab>\n </mat-tab-group>\n </mat-card-content>\n <mat-card-actions>\n <cadmus-close-save-buttons\n [form]=\"form\"\n [noSave]=\"userLevel < 2\"\n (closeRequest)=\"close()\"\n ></cadmus-close-save-buttons>\n </mat-card-actions>\n </mat-card>\n</form>\n", styles: ["th{font-weight:400;color:silver}\n"], components: [{ type: i4$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4$1.MatCardHeader, selector: "mat-card-header" }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i6$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: ["shelfmark", "tagEntries", "libEntries"], outputs: ["shelfmarkChange", "editorClose"] }, { type: i9$1.CloseSaveButtonsComponent, selector: "cadmus-close-save-buttons", inputs: ["form", "noSave"], outputs: ["closeRequest"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4$1.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { type: i4$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i4$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartComponent, decorators: [{
346
+ type: Component,
347
+ args: [{ selector: 'cadmus-cod-shelfmarks-part', template: "<form [formGroup]=\"form!\" (submit)=\"save()\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon>picture_in_picture</mat-icon>\n </div>\n <mat-card-title>Shelfmarks Part</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\n <mat-tab label=\"shelfmarks\">\n <div>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"addShelfmark()\"\n >\n <mat-icon>add_circle</mat-icon> add shelfmark\n </button>\n </div>\n <table *ngIf=\"shelfmarks?.value?.length\">\n <thead>\n <tr>\n <th></th>\n <th>tag</th>\n <th>city</th>\n <th>library</th>\n <th>fund</th>\n <th>location</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let entry of shelfmarks?.value;\n let i = index;\n let first = first;\n let last = last\n \"\n >\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this shelfmark\"\n (click)=\"editShelfmark(i)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark up\"\n [disabled]=\"first\"\n (click)=\"moveShelfmarkUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark down\"\n [disabled]=\"last\"\n (click)=\"moveShelfmarkDown(i)\"\n >\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n matTooltip=\"Delete this shelfmark\"\n (click)=\"deleteShelfmark(i)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.tag }}</td>\n <td>{{ entry.city }}</td>\n <td>{{ entry.library }}</td>\n <td>{{ entry.fund }}</td>\n <td>{{ entry.location }}</td>\n </tr>\n </tbody>\n </table>\n </mat-tab>\n\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\n <cadmus-cod-shelfmark-editor\n [tagEntries]=\"tagEntries\"\n [libEntries]=\"libEntries\"\n [shelfmark]=\"editedShelfmark\"\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\n (editorClose)=\"onShelfmarkClose()\"\n ></cadmus-cod-shelfmark-editor>\n </mat-tab>\n </mat-tab-group>\n </mat-card-content>\n <mat-card-actions>\n <cadmus-close-save-buttons\n [form]=\"form\"\n [noSave]=\"userLevel < 2\"\n (closeRequest)=\"close()\"\n ></cadmus-close-save-buttons>\n </mat-card-actions>\n </mat-card>\n</form>\n", styles: ["th{font-weight:400;color:silver}\n"] }]
348
+ }], ctorParameters: function () { return [{ type: i1$1.AuthJwtService }, { type: i1.FormBuilder }, { type: i3$1.DialogService }]; } });
349
+
350
+ let EditCodShelfmarksPartStore = class EditCodShelfmarksPartStore extends Store {
351
+ constructor() {
352
+ super({});
353
+ }
354
+ setDirty(value) {
355
+ this.update({ dirty: value });
356
+ }
357
+ setSaving(value) {
358
+ this.update({ saving: value });
359
+ }
360
+ };
361
+ EditCodShelfmarksPartStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
362
+ EditCodShelfmarksPartStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartStore, providedIn: 'root' });
363
+ EditCodShelfmarksPartStore = __decorate([
364
+ StoreConfig({ name: COD_SHELFMARKS_PART_TYPEID })
365
+ ], EditCodShelfmarksPartStore);
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartStore, decorators: [{
367
+ type: Injectable,
368
+ args: [{ providedIn: 'root' }]
369
+ }], ctorParameters: function () { return []; } });
370
+
371
+ class EditCodShelfmarksPartQuery extends EditPartQueryBase {
372
+ constructor(store) {
373
+ super(store);
374
+ }
375
+ }
376
+ EditCodShelfmarksPartQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartQuery, deps: [{ token: EditCodShelfmarksPartStore }], target: i0.ɵɵFactoryTarget.Injectable });
377
+ EditCodShelfmarksPartQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartQuery, providedIn: 'root' });
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartQuery, decorators: [{
379
+ type: Injectable,
380
+ args: [{ providedIn: 'root' }]
381
+ }], ctorParameters: function () { return [{ type: EditCodShelfmarksPartStore }]; } });
382
+
383
+ class EditCodShelfmarksPartService extends EditPartServiceBase {
384
+ constructor(editPartStore, itemService, thesaurusService) {
385
+ super(itemService, thesaurusService);
386
+ this.store = editPartStore;
387
+ }
388
+ }
389
+ EditCodShelfmarksPartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartService, deps: [{ token: EditCodShelfmarksPartStore }, { token: i2$1.ItemService }, { token: i2$1.ThesaurusService }], target: i0.ɵɵFactoryTarget.Injectable });
390
+ EditCodShelfmarksPartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartService, providedIn: 'root' });
391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartService, decorators: [{
392
+ type: Injectable,
393
+ args: [{ providedIn: 'root' }]
394
+ }], ctorParameters: function () { return [{ type: EditCodShelfmarksPartStore }, { type: i2$1.ItemService }, { type: i2$1.ThesaurusService }]; } });
395
+
396
+ class CodShelfmarksPartFeatureComponent extends EditPartFeatureBase {
397
+ constructor(router, route, snackbar, editPartQuery, editPartService, editItemQuery, editItemService) {
398
+ super(router, route, snackbar, editPartQuery, editPartService, editItemQuery, editItemService);
399
+ }
400
+ ngOnInit() {
401
+ this.initEditor(['cod-shelfmark-tags', 'cod-shelfmark-libraries']);
402
+ }
403
+ }
404
+ CodShelfmarksPartFeatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartFeatureComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2$2.MatSnackBar }, { token: EditCodShelfmarksPartQuery }, { token: EditCodShelfmarksPartService }, { token: i5$1.EditItemQuery }, { token: i5$1.EditItemService }], target: i0.ɵɵFactoryTarget.Component });
405
+ CodShelfmarksPartFeatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: CodShelfmarksPartFeatureComponent, selector: "cadmus-cod-shelfmarks-part-feature", usesInheritance: true, ngImport: i0, template: "<cadmus-current-item-bar></cadmus-current-item-bar>\n<cadmus-cod-shelfmarks-part\n [itemId]=\"itemId\"\n [roleId]=\"roleId\"\n [model]=\"$any(part$ | async)\"\n (modelChange)=\"save($event)\"\n [thesauri]=\"(thesauri$ | async) || undefined\"\n (editorClose)=\"close()\"\n (dirtyChange)=\"onDirtyChange($event)\"\n></cadmus-cod-shelfmarks-part>\n", styles: [""], components: [{ type: i6$2.CurrentItemBarComponent, selector: "cadmus-current-item-bar" }, { type: CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part" }], pipes: { "async": i7.AsyncPipe } });
406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartFeatureComponent, decorators: [{
407
+ type: Component,
408
+ args: [{ selector: 'cadmus-cod-shelfmarks-part-feature', template: "<cadmus-current-item-bar></cadmus-current-item-bar>\n<cadmus-cod-shelfmarks-part\n [itemId]=\"itemId\"\n [roleId]=\"roleId\"\n [model]=\"$any(part$ | async)\"\n (modelChange)=\"save($event)\"\n [thesauri]=\"(thesauri$ | async) || undefined\"\n (editorClose)=\"close()\"\n (dirtyChange)=\"onDirtyChange($event)\"\n></cadmus-cod-shelfmarks-part>\n", styles: [""] }]
409
+ }], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2$2.MatSnackBar }, { type: EditCodShelfmarksPartQuery }, { type: EditCodShelfmarksPartService }, { type: i5$1.EditItemQuery }, { type: i5$1.EditItemService }]; } });
410
+
411
+ class CadmusPartCodicologyShelfmarksModule {
412
+ }
413
+ CadmusPartCodicologyShelfmarksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
414
+ CadmusPartCodicologyShelfmarksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, declarations: [CodShelfmarksPartComponent,
415
+ CodShelfmarkEditorComponent,
416
+ CodShelfmarksPartFeatureComponent], imports: [CommonModule,
417
+ FormsModule,
418
+ ReactiveFormsModule,
419
+ // material
420
+ MatButtonModule,
421
+ MatCardModule,
422
+ MatIconModule,
423
+ MatInputModule,
424
+ MatSelectModule,
425
+ MatTabsModule,
426
+ MatTooltipModule,
427
+ // Cadmus
428
+ CadmusStateModule,
429
+ CadmusUiModule,
430
+ CadmusUiPgModule], exports: [CodShelfmarksPartComponent,
431
+ CodShelfmarkEditorComponent,
432
+ CodShelfmarksPartFeatureComponent] });
433
+ CadmusPartCodicologyShelfmarksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, imports: [[
434
+ CommonModule,
435
+ FormsModule,
436
+ ReactiveFormsModule,
437
+ // material
438
+ MatButtonModule,
439
+ MatCardModule,
440
+ MatIconModule,
441
+ MatInputModule,
442
+ MatSelectModule,
443
+ MatTabsModule,
444
+ MatTooltipModule,
445
+ // Cadmus
446
+ CadmusStateModule,
447
+ CadmusUiModule,
448
+ CadmusUiPgModule,
449
+ ]] });
450
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, decorators: [{
451
+ type: NgModule,
452
+ args: [{
453
+ declarations: [
454
+ CodShelfmarksPartComponent,
455
+ CodShelfmarkEditorComponent,
456
+ CodShelfmarksPartFeatureComponent,
457
+ ],
458
+ imports: [
459
+ CommonModule,
460
+ FormsModule,
461
+ ReactiveFormsModule,
462
+ // material
463
+ MatButtonModule,
464
+ MatCardModule,
465
+ MatIconModule,
466
+ MatInputModule,
467
+ MatSelectModule,
468
+ MatTabsModule,
469
+ MatTooltipModule,
470
+ // Cadmus
471
+ CadmusStateModule,
472
+ CadmusUiModule,
473
+ CadmusUiPgModule,
474
+ ],
475
+ exports: [
476
+ CodShelfmarksPartComponent,
477
+ CodShelfmarkEditorComponent,
478
+ CodShelfmarksPartFeatureComponent,
479
+ ],
480
+ }]
481
+ }] });
482
+
483
+ /*
484
+ * Public API Surface of cadmus-part-codicology-shelfmarks
485
+ */
486
+
487
+ /**
488
+ * Generated bundle index. Do not edit.
489
+ */
490
+
491
+ export { COD_SHELFMARKS_PART_SCHEMA, COD_SHELFMARKS_PART_TYPEID, CadmusPartCodicologyShelfmarksModule, CodShelfmarkEditorComponent, CodShelfmarksPartComponent, CodShelfmarksPartFeatureComponent };
492
+ //# sourceMappingURL=myrmidon-cadmus-part-codicology-shelfmarks.mjs.map