@things-factory/compliance 10.1.267 → 10.1.269

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 (51) hide show
  1. package/dist-client/components/compliance-case-form.d.ts +1 -0
  2. package/dist-client/components/compliance-case-form.js +3 -2
  3. package/dist-client/components/compliance-case-form.js.map +1 -1
  4. package/dist-client/components/compliance-case-sheet.d.ts +1 -0
  5. package/dist-client/components/compliance-case-sheet.js +3 -2
  6. package/dist-client/components/compliance-case-sheet.js.map +1 -1
  7. package/dist-client/components/invention-report-form.d.ts +1 -0
  8. package/dist-client/components/invention-report-form.js +2 -1
  9. package/dist-client/components/invention-report-form.js.map +1 -1
  10. package/dist-client/components/seal-use-form.d.ts +5 -0
  11. package/dist-client/components/seal-use-form.js +37 -7
  12. package/dist-client/components/seal-use-form.js.map +1 -1
  13. package/dist-client/components/training-attendance-form.d.ts +1 -0
  14. package/dist-client/components/training-attendance-form.js +2 -1
  15. package/dist-client/components/training-attendance-form.js.map +1 -1
  16. package/dist-client/components/training-certificate-form.d.ts +1 -0
  17. package/dist-client/components/training-certificate-form.js +2 -1
  18. package/dist-client/components/training-certificate-form.js.map +1 -1
  19. package/dist-client/components/training-session-form.d.ts +1 -0
  20. package/dist-client/components/training-session-form.js +3 -2
  21. package/dist-client/components/training-session-form.js.map +1 -1
  22. package/dist-client/pages/regulation-detail.d.ts +1 -0
  23. package/dist-client/pages/regulation-detail.js +3 -2
  24. package/dist-client/pages/regulation-detail.js.map +1 -1
  25. package/dist-client/tsconfig.tsbuildinfo +1 -1
  26. package/dist-server/activities/regulation-activity.js +4 -2
  27. package/dist-server/activities/regulation-activity.js.map +1 -1
  28. package/dist-server/activities/seal-use-activity.js +4 -1
  29. package/dist-server/activities/seal-use-activity.js.map +1 -1
  30. package/dist-server/index.js +2 -0
  31. package/dist-server/index.js.map +1 -1
  32. package/dist-server/service/index.d.ts +1 -0
  33. package/dist-server/service/index.js +1 -0
  34. package/dist-server/service/index.js.map +1 -1
  35. package/dist-server/service/seal-use/seal-use-mutation.d.ts +2 -1
  36. package/dist-server/service/seal-use/seal-use-mutation.js +6 -4
  37. package/dist-server/service/seal-use/seal-use-mutation.js.map +1 -1
  38. package/dist-server/service/seal-use/seal-use-paper.d.ts +16 -0
  39. package/dist-server/service/seal-use/seal-use-paper.js +45 -0
  40. package/dist-server/service/seal-use/seal-use-paper.js.map +1 -0
  41. package/dist-server/service/seal-use/seal-use-service.d.ts +2 -1
  42. package/dist-server/service/seal-use/seal-use-service.js +21 -3
  43. package/dist-server/service/seal-use/seal-use-service.js.map +1 -1
  44. package/dist-server/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +16 -16
  46. package/translations/en.json +3 -1
  47. package/translations/es.json +3 -1
  48. package/translations/ja.json +3 -1
  49. package/translations/ko.json +3 -1
  50. package/translations/ms.json +3 -1
  51. package/translations/zh.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"regulation-detail.js","sourceRoot":"","sources":["../../client/pages/regulation-detail.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-input-file.js'\nimport '@operato/input/ox-input-select-buttons.js'\nimport '@operato/list-state/ox-page-state.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\n\nimport { MutationController, QueryController, uploadContext } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport { OxPrompt } from '@operato/popup/ox-prompt.js'\nimport { navigate, PageView, DraftController } from '@operato/shell'\nimport { CommonButtonStyles, DocumentPageStyles, FormFieldStyles, ScrollbarStyles } from '@operato/styles'\n\nimport { VERSION_VIEW } from '../regulation/regulation-fragments.js'\nimport { failureOf, PROCEDURE_METHODS, wordOf } from '../words.js'\n\n/**\n * 규정 한 건 (ADR-0187 decisions 2-6) - its versions, and of the one chosen: its text, the day it takes effect, what\n * changed, whether it is against the workers, the procedure with its papers, its approval and whether the employees were\n * told. A version being written changes here; one in approval is taken back to change; an adopted one stays and gets its\n * filing.\n */\n@customElement('regulation-detail')\nexport class RegulationDetail extends localize(i18next)(PageView) {\n static styles = [\n DocumentPageStyles,\n FormFieldStyles,\n ScrollbarStyles,\n css`\n :host {\n display: block;\n overflow: auto;\n }\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-small, 4px);\n }\n .field > span:not(:first-child) {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n font-size: var(--ui-t-small, 12px);\n }\n .form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));\n gap: var(--spacing-large, 12px);\n }\n textarea.body {\n width: 100%;\n min-height: 320px;\n box-sizing: border-box;\n font-family: inherit;\n }\n table {\n border-collapse: collapse;\n width: 100%;\n }\n td,\n th {\n text-align: left;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-bottom: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n }\n .note {\n color: var(--ui-warn, var(--md-sys-color-error));\n }\n .muted {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n }\n .procedure-form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));\n gap: var(--spacing-medium, 8px);\n align-items: end;\n }\n `\n ]\n\n @state() private ruleId = ''\n @state() private chosen = ''\n @state() private files: File[] = []\n @state() private originals: File[] = []\n /* The rule and its versions, read for the rule the address names (ADR-0190). */\n private rule = new QueryController(\n this,\n gql`\n query ($id: String) {\n companyRegulation(id: $id) {\n regulation { id code name kind topics }\n versions {\n ...RegulationVersionViewFields\n procedures { id kind day method workersCount consentCount notes files }\n originals\n }\n }\n }\n ${VERSION_VIEW}\n `,\n { variables: () => (this.ruleId ? { id: this.ruleId } : undefined) }\n )\n\n /* What is typed belongs to the version it was typed on: the text edits over the version read, and the procedure being\n recorded. Another version drops both, so none of it lands there. */\n private draft = new DraftController<any>(this, { read: () => this.current?.version, key: () => this.current?.version.id })\n private procedure = new DraftController<{ day: string; notes: string }>(this, { read: () => ({ day: '', notes: '' }), key: () => this.current?.version.id })\n\n /* Every change reads the rule again once it is done. */\n private saves = {\n draft: this.change(gql`mutation ($id: String!, $patch: RegulationVersionPatch!) { updateRegulationVersion(id: $id, patch: $patch) { id } }`),\n submit: this.change(gql`mutation ($id: String!) { submitRegulationVersion(id: $id) { id status } }`),\n inForce: this.change(gql`\n mutation ($id: String!, $files: [Upload!]!) {\n registerRegulationInForce(id: $id, files: $files) { id status }\n }\n `),\n withdraw: this.change(gql`mutation ($id: String!) { withdrawRegulationVersion(id: $id) { id } }`),\n newVersion: this.change(gql`mutation ($id: String!) { newRegulationVersion(regulationId: $id) { id } }`),\n deleteVersion: this.change(gql`mutation ($id: String!) { deleteRegulationVersion(id: $id) }`),\n procedure: this.change(gql`\n mutation ($procedure: NewRegulationProcedure!, $files: [Upload!]) {\n recordRegulationProcedure(procedure: $procedure, files: $files) { id }\n }\n `),\n deleteProcedure: this.change(gql`mutation ($id: String!) { deleteRegulationProcedure(id: $id) }`)\n }\n\n private change(mutation: any) {\n return new MutationController(this, mutation, { refetch: () => [this.rule] })\n }\n\n private get view(): any {\n return this.rule.data?.companyRegulation ?? null\n }\n\n /* A save, a submission or a procedure on its way: nothing is typed, switched or sent again until it is back, so what\n is sent is what the screen shows and no answer lands on input typed after it. */\n private get busy() {\n return Object.values(this.saves).some(save => save.pending)\n }\n\n get context() {\n const version = this.current?.version\n const actions: any[] = []\n if (version?.status === 'DRAFT') {\n actions.push({ title: i18next.t('button.regulation-version-delete'), action: () => this.deleteVersion(), ...CommonButtonStyles.delete })\n actions.push({ title: i18next.t('button.save'), action: () => this.saveVersion() })\n actions.push({ title: i18next.t('button.regulation-submit'), icon: 'approval', action: () => this.submit(), raised: true })\n }\n if (version?.status === 'IN_APPROVAL') actions.push({ title: i18next.t('button.regulation-withdraw'), icon: 'undo', action: () => this.withdraw() })\n if (this.view && !this.view.versions.some((one: any) => one.version.status !== 'ADOPTED')) actions.push({ title: i18next.t('button.regulation-new-version'), icon: 'add', action: () => this.newVersion() })\n return { title: this.view ? this.view.regulation.name : i18next.t('title.regulation-list'), frame: 'document', actions }\n }\n\n private get current() {\n const versions = this.view?.versions ?? []\n return versions.find((one: any) => one.version.id === this.chosen) ?? versions[0]\n }\n\n render() {\n if (this.rule.error) return html`<ox-page-state state=\"error\" .message=${failureOf(this.rule.error)}></ox-page-state>`\n if (!this.view) return html`<ox-page-state state=\"loading\"></ox-page-state>`\n const current = this.current\n const { regulation } = this.view\n return html`<div class=\"page\">\n <section class=\"page-section\">\n <header class=\"page-section-header\">\n <h3>${regulation.code} · ${wordOf('regulation-kind', regulation.kind)}</h3>\n <div class=\"page-section-actions\"><button @click=${() => navigate('regulation-list')}>${i18next.t('button.regulation-all')}</button></div>\n </header>\n <ox-input-select-buttons\n ?disabled=${this.busy}\n .value=${current.version.id}\n .options=${this.view.versions.map((one: any) => ({ value: one.version.id, display: `${i18next.t('text.regulation-version-of', { version: one.version.version })} · ${wordOf('regulation-period', one.period)}` }))}\n @change=${(e: CustomEvent) => e.detail && this.switchTo(e.detail)}\n ></ox-input-select-buttons>\n </section>\n ${current ? this.renderVersion(current) : nothing}\n </div>`\n }\n\n private renderVersion(view: any) {\n const { version } = view\n const writing = version.status === 'DRAFT'\n const locked = !writing || this.busy\n const value = (name: string) => this.draft.value(name) ?? ''\n const set = (name: string, given: any) => !this.busy && this.draft.set(name, given)\n const words: Record<string, string> = { ADDED: i18next.t('text.regulation-change-added'), CHANGED: i18next.t('text.regulation-change-changed'), REMOVED: i18next.t('text.regulation-change-removed') }\n const filing = this.view.regulation.kind === 'WORK_RULES' || this.view.regulation.kind === 'WORK_RULES_ANNEX'\n const kinds = !filing ? [] : version.status === 'ADOPTED' ? ['FILING'] : writing ? [value('unfavourable') === true ? 'CONSENT' : 'OPINION'] : []\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-version-of', { version: version.version })} · ${wordOf('regulation-period', view.period)}</h3></header>\n ${version.adoptionNote ? html`<p class=\"page-section-note note\">${version.adoptionNote}</p>` : nothing}\n ${version.registeredInForce ? html`<p class=\"page-section-note\">${i18next.t('text.regulation-registered-note', { count: view.originals ?? 0 })}</p>` : nothing}\n ${version.status === 'ADOPTED' && !view.told && !version.registeredInForce ? html`<p class=\"page-section-note note\">${i18next.t('text.regulation-not-told-note')}</p>` : nothing}\n <div class=\"form\">\n <label class=\"field\">\n <span>${i18next.t('field.regulation-effective-on')}</span>\n <input type=\"date\" ?disabled=${locked} .value=${value('effectiveOn')} @input=${(e: any) => set('effectiveOn', e.target.value)} />\n <span>${i18next.t('text.regulation-effective-hint')}</span>\n </label>\n ${filing ? html`<div class=\"field\">\n <span>${i18next.t('field.regulation-unfavourable')}</span>\n <ox-input-select-buttons\n ?disabled=${locked}\n .value=${value('unfavourable') === '' ? '' : String(value('unfavourable'))}\n .options=${[{ value: 'true', display: i18next.t('text.regulation-unfavourable-yes') }, { value: 'false', display: i18next.t('text.regulation-unfavourable-no') }]}\n @change=${(e: CustomEvent) => writing && e.detail && set('unfavourable', e.detail === 'true')}\n ></ox-input-select-buttons>\n <span>${i18next.t('text.regulation-unfavourable-hint')}</span>\n </div>` : nothing}\n <label class=\"field\">\n <span>${i18next.t('field.regulation-change-summary')}</span>\n <input ?disabled=${locked} .value=${value('changeSummary')} @input=${(e: any) => set('changeSummary', e.target.value)} />\n </label>\n </div>\n </section>\n <section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('field.regulation-body')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-body-hint')}</p>\n <textarea class=\"body\" ?disabled=${locked} .value=${value('body')} @input=${(e: any) => set('body', e.target.value)}></textarea>\n </section>\n ${view.changes.length\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-changes')}</h3></header>\n <table>\n ${view.changes.map((one: any) => html`<tr><td>${one.heading}</td><td>${words[one.change]}</td></tr>`)}\n </table>\n </section>`\n : nothing}\n ${filing || view.procedures?.length ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-procedures')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t(filing ? 'text.regulation-procedures-hint' : 'text.regulation-procedures-none-asked')}</p>\n <table>\n ${(view.procedures ?? []).map(\n (one: any) =>\n html`<tr>\n <td>${wordOf('regulation-procedure-kind', one.kind)}</td>\n <td>${one.day}</td>\n <td>${one.method && Object.values(PROCEDURE_METHODS).some(methods => methods.includes(one.method)) ? wordOf('regulation-procedure-method', one.method) : ''}</td>\n <td>${one.kind === 'CONSENT' && one.workersCount != null && one.consentCount != null ? i18next.t('text.regulation-consent-count', { consented: one.consentCount, workers: one.workersCount }) : ''}</td>\n <td>${i18next.t('text.regulation-files', { count: one.files })}</td>\n <td>${writing ? html`<button class=\"danger\" ?disabled=${this.busy} @click=${() => this.deleteProcedure(one.id)}>${i18next.t('button.delete')}</button>` : nothing}</td>\n </tr>`\n )}\n </table>\n ${kinds.length ? this.renderProcedureForm(kinds) : nothing}\n </section>` : nothing}\n ${writing && !this.view.versions.some((one: any) => one.version.status !== 'DRAFT') ? this.renderInForce() : nothing}`\n }\n\n /* A rule in force before the system - its first version registered from its own day with its original (ADR-0187 amendment 2). */\n private renderInForce() {\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-in-force-title')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-in-force-hint')}</p>\n <div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-original')}</span>\n <ox-input-file multiple ?disabled=${this.busy} .value=${this.originals} @change=${(e: CustomEvent) => !this.busy && (this.originals = e.detail ?? [])}></ox-input-file>\n </div>\n <button ?disabled=${this.busy} @click=${() => this.registerInForce()}>${i18next.t('button.regulation-register-in-force')}</button>\n </div>\n </section>`\n }\n\n private renderProcedureForm(kinds: string[]) {\n const kind = kinds[0]\n const set = (name: 'day' | 'notes', given: string) => !this.busy && this.procedure.set(name, given)\n return html`<div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-kind')}</span>\n <span>${wordOf('regulation-procedure-kind', kind)}</span>\n </div>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-day')}</span><input type=\"date\" ?disabled=${this.busy} .value=${this.procedure.value('day')} @input=${(e: any) => set('day', e.target.value)} /></label>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-notes')}</span><input ?disabled=${this.busy} .value=${this.procedure.value('notes')} @input=${(e: any) => set('notes', e.target.value)} /></label>\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-files')}</span>\n <ox-input-file multiple ?disabled=${this.busy} .value=${this.files} @change=${(e: CustomEvent) => !this.busy && (this.files = e.detail ?? [])}></ox-input-file>\n </div>\n <button ?disabled=${this.busy} @click=${() => this.recordProcedure(kind)}>${i18next.t('button.regulation-procedure-record')}</button>\n </div>`\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (!this.active) return\n const params = new URLSearchParams(location.search)\n const id = params.get('id') ?? lifecycle?.params?.id\n const version = params.get('version')\n /* Another rule, or another version asked by the address: the shell asked about what was typed (addressDirty) and\n dropped it before the address changed; this page only moves to it. */\n const another = !!this.view && !!id && id !== this.view.regulation.id\n if (another || (version && version !== this.chosen)) this.choose(version ?? '')\n if (id) this.ruleId = id\n }\n\n /* The files picked belong to the version they were picked on, as the drafts do: switching drops them. */\n private choose(id: string) {\n this.chosen = id\n this.files = []\n this.originals = []\n this.updateContext()\n }\n\n /*\n * PageView reads the drafts; the files picked are the page's own unsaved state too. The shell asks about them before\n * any move - 「규정 목록」, the menu, another rule's address, closing the tab - and drops them once the move is agreed.\n */\n get addressDirty() {\n return super.addressDirty || this.files.length > 0 || this.originals.length > 0\n }\n\n get addressDiscardText() {\n return i18next.t('text.regulation-leave-unsaved')\n }\n\n discardAddressEdits(change?: any) {\n super.discardAddressEdits(change)\n this.choose(this.chosen)\n }\n\n /* A version switch stays on the page, so the page asks the shell's question itself. */\n private async mayLeave() {\n return await this.canDeactivate()\n }\n\n private async switchTo(id: string) {\n if (this.busy || id === this.current?.version.id) {\n const buttons = this.renderRoot.querySelector('ox-input-select-buttons') as any\n if (buttons) buttons.value = this.current?.version.id\n return\n }\n if (await this.mayLeave()) return this.choose(id)\n /* Staying: the buttons already show the version clicked - put them back on the one still open. */\n const buttons = this.renderRoot.querySelector('ox-input-select-buttons') as any\n if (buttons) buttons.value = this.current?.version.id\n }\n\n private async call(save: MutationController, variables: any, done = 'text.regulation-saved', context?: any) {\n if (this.busy) return undefined\n const data = await save.run(variables, { context })\n if (data) notify({ message: i18next.t(done) })\n return data\n }\n\n private patchOf(sent: any) {\n const patch: any = { ...sent }\n if (patch.effectiveOn === '') patch.effectiveOn = null\n return patch\n }\n\n /* Saves the text edits of the version chosen - the one door that clears them. */\n private async saveDraft(done = 'text.regulation-saved') {\n const on = this.current.version.id\n return await this.draft.submit(sent => this.call(this.saves.draft, { id: on, patch: this.patchOf(sent) }, done))\n }\n\n private async saveVersion() {\n if (!this.draft.dirty) return\n await this.saveDraft()\n }\n\n private async submit() {\n const id = this.current.version.id\n if (this.draft.dirty && !(await this.saveDraft())) return\n /* Only what the screen shows is put up: anything not saved yet stops the submission. */\n if (this.draft.dirty || this.current?.version.id !== id) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-submit'),\n text: i18next.t('text.regulation-submit-confirm'),\n confirmButton: { text: i18next.t('button.regulation-submit') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (confirmed) await this.call(this.saves.submit, { id }, 'text.regulation-submitted')\n }\n\n private async registerInForce() {\n const id = this.current.version.id\n if (this.draft.dirty && !(await this.saveDraft())) return\n if (this.draft.dirty || this.current?.version.id !== id) return\n const originals = this.originals\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-register-in-force'),\n text: i18next.t('text.regulation-in-force-confirm', { version: this.current.version.version, day: this.current.version.effectiveOn ?? '' }),\n confirmButton: { text: i18next.t('button.regulation-register-in-force') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (!confirmed) return\n const done = await this.call(\n this.saves.inForce,\n { id, files: originals },\n 'text.regulation-registered-in-force',\n originals.length ? uploadContext(() => {}) : undefined\n )\n if (done && this.originals === originals) this.originals = []\n }\n\n private async withdraw() {\n await this.call(this.saves.withdraw, { id: this.current.version.id })\n }\n\n private async newVersion() {\n const data = await this.call(this.saves.newVersion, { id: this.view.regulation.id })\n if (data) this.choose(data.newRegulationVersion.id)\n }\n\n /** The revision asked about is the one deleted: if the screen shows another once confirmed, nothing is deleted. */\n private async deleteVersion() {\n const id = this.current?.version.id\n if (!id) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-version-delete'),\n text: i18next.t('text.regulation-version-delete-confirm'),\n confirmButton: { text: i18next.t('button.delete'), destructive: true },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (!confirmed || this.current?.version.id !== id) return\n if (await this.call(this.saves.deleteVersion, { id })) this.choose('')\n }\n\n private async recordProcedure(kind: string) {\n const files = this.files\n const done = await this.procedure.submit(sent =>\n this.call(\n this.saves.procedure,\n {\n procedure: { versionId: this.current.version.id, kind, day: sent.day ?? '', notes: sent.notes || null },\n files\n },\n 'text.regulation-saved',\n files.length ? uploadContext(() => {}) : undefined\n )\n )\n /* Only what was sent is done - a file picked since stays. */\n if (done && this.files === files) this.files = []\n }\n\n private async deleteProcedure(id: string) {\n await this.call(this.saves.deleteProcedure, { id })\n }\n}\n"]}
1
+ {"version":3,"file":"regulation-detail.js","sourceRoot":"","sources":["../../client/pages/regulation-detail.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-input-date.js'\nimport '@operato/input/ox-input-file.js'\nimport '@operato/input/ox-input-select-buttons.js'\nimport '@operato/list-state/ox-page-state.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\n\nimport { MutationController, QueryController, uploadContext } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport { OxPrompt } from '@operato/popup/ox-prompt.js'\nimport { navigate, PageView, DraftController } from '@operato/shell'\nimport { CommonButtonStyles, DocumentPageStyles, FormFieldStyles, ScrollbarStyles } from '@operato/styles'\n\nimport { VERSION_VIEW } from '../regulation/regulation-fragments.js'\nimport { failureOf, PROCEDURE_METHODS, wordOf } from '../words.js'\n\n/**\n * 규정 한 건 (ADR-0187 decisions 2-6) - its versions, and of the one chosen: its text, the day it takes effect, what\n * changed, whether it is against the workers, the procedure with its papers, its approval and whether the employees were\n * told. A version being written changes here; one in approval is taken back to change; an adopted one stays and gets its\n * filing.\n */\n@customElement('regulation-detail')\nexport class RegulationDetail extends localize(i18next)(PageView) {\n static styles = [\n DocumentPageStyles,\n FormFieldStyles,\n ScrollbarStyles,\n css`\n :host {\n display: block;\n overflow: auto;\n }\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-small, 4px);\n }\n .field > span:not(:first-child) {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n font-size: var(--ui-t-small, 12px);\n }\n .form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));\n gap: var(--spacing-large, 12px);\n }\n textarea.body {\n width: 100%;\n min-height: 320px;\n box-sizing: border-box;\n font-family: inherit;\n }\n table {\n border-collapse: collapse;\n width: 100%;\n }\n td,\n th {\n text-align: left;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-bottom: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n }\n .note {\n color: var(--ui-warn, var(--md-sys-color-error));\n }\n .muted {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n }\n .procedure-form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));\n gap: var(--spacing-medium, 8px);\n align-items: end;\n }\n `\n ]\n\n @state() private ruleId = ''\n @state() private chosen = ''\n @state() private files: File[] = []\n @state() private originals: File[] = []\n /* The rule and its versions, read for the rule the address names (ADR-0190). */\n private rule = new QueryController(\n this,\n gql`\n query ($id: String) {\n companyRegulation(id: $id) {\n regulation { id code name kind topics }\n versions {\n ...RegulationVersionViewFields\n procedures { id kind day method workersCount consentCount notes files }\n originals\n }\n }\n }\n ${VERSION_VIEW}\n `,\n { variables: () => (this.ruleId ? { id: this.ruleId } : undefined) }\n )\n\n /* What is typed belongs to the version it was typed on: the text edits over the version read, and the procedure being\n recorded. Another version drops both, so none of it lands there. */\n private draft = new DraftController<any>(this, { read: () => this.current?.version, key: () => this.current?.version.id })\n private procedure = new DraftController<{ day: string; notes: string }>(this, { read: () => ({ day: '', notes: '' }), key: () => this.current?.version.id })\n\n /* Every change reads the rule again once it is done. */\n private saves = {\n draft: this.change(gql`mutation ($id: String!, $patch: RegulationVersionPatch!) { updateRegulationVersion(id: $id, patch: $patch) { id } }`),\n submit: this.change(gql`mutation ($id: String!) { submitRegulationVersion(id: $id) { id status } }`),\n inForce: this.change(gql`\n mutation ($id: String!, $files: [Upload!]!) {\n registerRegulationInForce(id: $id, files: $files) { id status }\n }\n `),\n withdraw: this.change(gql`mutation ($id: String!) { withdrawRegulationVersion(id: $id) { id } }`),\n newVersion: this.change(gql`mutation ($id: String!) { newRegulationVersion(regulationId: $id) { id } }`),\n deleteVersion: this.change(gql`mutation ($id: String!) { deleteRegulationVersion(id: $id) }`),\n procedure: this.change(gql`\n mutation ($procedure: NewRegulationProcedure!, $files: [Upload!]) {\n recordRegulationProcedure(procedure: $procedure, files: $files) { id }\n }\n `),\n deleteProcedure: this.change(gql`mutation ($id: String!) { deleteRegulationProcedure(id: $id) }`)\n }\n\n private change(mutation: any) {\n return new MutationController(this, mutation, { refetch: () => [this.rule] })\n }\n\n private get view(): any {\n return this.rule.data?.companyRegulation ?? null\n }\n\n /* A save, a submission or a procedure on its way: nothing is typed, switched or sent again until it is back, so what\n is sent is what the screen shows and no answer lands on input typed after it. */\n private get busy() {\n return Object.values(this.saves).some(save => save.pending)\n }\n\n get context() {\n const version = this.current?.version\n const actions: any[] = []\n if (version?.status === 'DRAFT') {\n actions.push({ title: i18next.t('button.regulation-version-delete'), action: () => this.deleteVersion(), ...CommonButtonStyles.delete })\n actions.push({ title: i18next.t('button.save'), action: () => this.saveVersion() })\n actions.push({ title: i18next.t('button.regulation-submit'), icon: 'approval', action: () => this.submit(), raised: true })\n }\n if (version?.status === 'IN_APPROVAL') actions.push({ title: i18next.t('button.regulation-withdraw'), icon: 'undo', action: () => this.withdraw() })\n if (this.view && !this.view.versions.some((one: any) => one.version.status !== 'ADOPTED')) actions.push({ title: i18next.t('button.regulation-new-version'), icon: 'add', action: () => this.newVersion() })\n return { title: this.view ? this.view.regulation.name : i18next.t('title.regulation-list'), frame: 'document', actions }\n }\n\n private get current() {\n const versions = this.view?.versions ?? []\n return versions.find((one: any) => one.version.id === this.chosen) ?? versions[0]\n }\n\n render() {\n if (this.rule.error) return html`<ox-page-state state=\"error\" .message=${failureOf(this.rule.error)}></ox-page-state>`\n if (!this.view) return html`<ox-page-state state=\"loading\"></ox-page-state>`\n const current = this.current\n const { regulation } = this.view\n return html`<div class=\"page\">\n <section class=\"page-section\">\n <header class=\"page-section-header\">\n <h3>${regulation.code} · ${wordOf('regulation-kind', regulation.kind)}</h3>\n <div class=\"page-section-actions\"><button @click=${() => navigate('regulation-list')}>${i18next.t('button.regulation-all')}</button></div>\n </header>\n <ox-input-select-buttons\n ?disabled=${this.busy}\n .value=${current.version.id}\n .options=${this.view.versions.map((one: any) => ({ value: one.version.id, display: `${i18next.t('text.regulation-version-of', { version: one.version.version })} · ${wordOf('regulation-period', one.period)}` }))}\n @change=${(e: CustomEvent) => e.detail && this.switchTo(e.detail)}\n ></ox-input-select-buttons>\n </section>\n ${current ? this.renderVersion(current) : nothing}\n </div>`\n }\n\n private renderVersion(view: any) {\n const { version } = view\n const writing = version.status === 'DRAFT'\n const locked = !writing || this.busy\n const value = (name: string) => this.draft.value(name) ?? ''\n const set = (name: string, given: any) => !this.busy && this.draft.set(name, given)\n const words: Record<string, string> = { ADDED: i18next.t('text.regulation-change-added'), CHANGED: i18next.t('text.regulation-change-changed'), REMOVED: i18next.t('text.regulation-change-removed') }\n const filing = this.view.regulation.kind === 'WORK_RULES' || this.view.regulation.kind === 'WORK_RULES_ANNEX'\n const kinds = !filing ? [] : version.status === 'ADOPTED' ? ['FILING'] : writing ? [value('unfavourable') === true ? 'CONSENT' : 'OPINION'] : []\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-version-of', { version: version.version })} · ${wordOf('regulation-period', view.period)}</h3></header>\n ${version.adoptionNote ? html`<p class=\"page-section-note note\">${version.adoptionNote}</p>` : nothing}\n ${version.registeredInForce ? html`<p class=\"page-section-note\">${i18next.t('text.regulation-registered-note', { count: view.originals ?? 0 })}</p>` : nothing}\n ${version.status === 'ADOPTED' && !view.told && !version.registeredInForce ? html`<p class=\"page-section-note note\">${i18next.t('text.regulation-not-told-note')}</p>` : nothing}\n <div class=\"form\">\n <label class=\"field\">\n <span>${i18next.t('field.regulation-effective-on')}</span>\n <ox-input-date type=\"date\" ?disabled=${locked} .value=${value('effectiveOn')} @change=${(e: any) => set('effectiveOn', e.target.value)}></ox-input-date>\n <span>${i18next.t('text.regulation-effective-hint')}</span>\n </label>\n ${filing ? html`<div class=\"field\">\n <span>${i18next.t('field.regulation-unfavourable')}</span>\n <ox-input-select-buttons\n ?disabled=${locked}\n .value=${value('unfavourable') === '' ? '' : String(value('unfavourable'))}\n .options=${[{ value: 'true', display: i18next.t('text.regulation-unfavourable-yes') }, { value: 'false', display: i18next.t('text.regulation-unfavourable-no') }]}\n @change=${(e: CustomEvent) => writing && e.detail && set('unfavourable', e.detail === 'true')}\n ></ox-input-select-buttons>\n <span>${i18next.t('text.regulation-unfavourable-hint')}</span>\n </div>` : nothing}\n <label class=\"field\">\n <span>${i18next.t('field.regulation-change-summary')}</span>\n <input ?disabled=${locked} .value=${value('changeSummary')} @input=${(e: any) => set('changeSummary', e.target.value)} />\n </label>\n </div>\n </section>\n <section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('field.regulation-body')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-body-hint')}</p>\n <textarea class=\"body\" ?disabled=${locked} .value=${value('body')} @input=${(e: any) => set('body', e.target.value)}></textarea>\n </section>\n ${view.changes.length\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-changes')}</h3></header>\n <table>\n ${view.changes.map((one: any) => html`<tr><td>${one.heading}</td><td>${words[one.change]}</td></tr>`)}\n </table>\n </section>`\n : nothing}\n ${filing || view.procedures?.length ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-procedures')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t(filing ? 'text.regulation-procedures-hint' : 'text.regulation-procedures-none-asked')}</p>\n <table>\n ${(view.procedures ?? []).map(\n (one: any) =>\n html`<tr>\n <td>${wordOf('regulation-procedure-kind', one.kind)}</td>\n <td>${one.day}</td>\n <td>${one.method && Object.values(PROCEDURE_METHODS).some(methods => methods.includes(one.method)) ? wordOf('regulation-procedure-method', one.method) : ''}</td>\n <td>${one.kind === 'CONSENT' && one.workersCount != null && one.consentCount != null ? i18next.t('text.regulation-consent-count', { consented: one.consentCount, workers: one.workersCount }) : ''}</td>\n <td>${i18next.t('text.regulation-files', { count: one.files })}</td>\n <td>${writing ? html`<button class=\"danger\" ?disabled=${this.busy} @click=${() => this.deleteProcedure(one.id)}>${i18next.t('button.delete')}</button>` : nothing}</td>\n </tr>`\n )}\n </table>\n ${kinds.length ? this.renderProcedureForm(kinds) : nothing}\n </section>` : nothing}\n ${writing && !this.view.versions.some((one: any) => one.version.status !== 'DRAFT') ? this.renderInForce() : nothing}`\n }\n\n /* A rule in force before the system - its first version registered from its own day with its original (ADR-0187 amendment 2). */\n private renderInForce() {\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-in-force-title')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-in-force-hint')}</p>\n <div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-original')}</span>\n <ox-input-file multiple ?disabled=${this.busy} .value=${this.originals} @change=${(e: CustomEvent) => !this.busy && (this.originals = e.detail ?? [])}></ox-input-file>\n </div>\n <button ?disabled=${this.busy} @click=${() => this.registerInForce()}>${i18next.t('button.regulation-register-in-force')}</button>\n </div>\n </section>`\n }\n\n private renderProcedureForm(kinds: string[]) {\n const kind = kinds[0]\n const set = (name: 'day' | 'notes', given: string) => !this.busy && this.procedure.set(name, given)\n return html`<div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-kind')}</span>\n <span>${wordOf('regulation-procedure-kind', kind)}</span>\n </div>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-day')}</span><ox-input-date type=\"date\" ?disabled=${this.busy} .value=${this.procedure.value('day')} @change=${(e: any) => set('day', e.target.value)}></ox-input-date></label>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-notes')}</span><input ?disabled=${this.busy} .value=${this.procedure.value('notes')} @input=${(e: any) => set('notes', e.target.value)} /></label>\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-files')}</span>\n <ox-input-file multiple ?disabled=${this.busy} .value=${this.files} @change=${(e: CustomEvent) => !this.busy && (this.files = e.detail ?? [])}></ox-input-file>\n </div>\n <button ?disabled=${this.busy} @click=${() => this.recordProcedure(kind)}>${i18next.t('button.regulation-procedure-record')}</button>\n </div>`\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (!this.active) return\n const params = new URLSearchParams(location.search)\n const id = params.get('id') ?? lifecycle?.params?.id\n const version = params.get('version')\n /* Another rule, or another version asked by the address: the shell asked about what was typed (addressDirty) and\n dropped it before the address changed; this page only moves to it. */\n const another = !!this.view && !!id && id !== this.view.regulation.id\n if (another || (version && version !== this.chosen)) this.choose(version ?? '')\n if (id) this.ruleId = id\n }\n\n /* The files picked belong to the version they were picked on, as the drafts do: switching drops them. */\n private choose(id: string) {\n this.chosen = id\n this.files = []\n this.originals = []\n this.updateContext()\n }\n\n /*\n * PageView reads the drafts; the files picked are the page's own unsaved state too. The shell asks about them before\n * any move - 「규정 목록」, the menu, another rule's address, closing the tab - and drops them once the move is agreed.\n */\n get addressDirty() {\n return super.addressDirty || this.files.length > 0 || this.originals.length > 0\n }\n\n get addressDiscardText() {\n return i18next.t('text.regulation-leave-unsaved')\n }\n\n discardAddressEdits(change?: any) {\n super.discardAddressEdits(change)\n this.choose(this.chosen)\n }\n\n /* A version switch stays on the page, so the page asks the shell's question itself. */\n private async mayLeave() {\n return await this.canDeactivate()\n }\n\n private async switchTo(id: string) {\n if (this.busy || id === this.current?.version.id) {\n const buttons = this.renderRoot.querySelector('ox-input-select-buttons') as any\n if (buttons) buttons.value = this.current?.version.id\n return\n }\n if (await this.mayLeave()) return this.choose(id)\n /* Staying: the buttons already show the version clicked - put them back on the one still open. */\n const buttons = this.renderRoot.querySelector('ox-input-select-buttons') as any\n if (buttons) buttons.value = this.current?.version.id\n }\n\n private async call(save: MutationController, variables: any, done = 'text.regulation-saved', context?: any) {\n if (this.busy) return undefined\n const data = await save.run(variables, { context })\n if (data) notify({ message: i18next.t(done) })\n return data\n }\n\n private patchOf(sent: any) {\n const patch: any = { ...sent }\n if (patch.effectiveOn === '') patch.effectiveOn = null\n return patch\n }\n\n /* Saves the text edits of the version chosen - the one door that clears them. */\n private async saveDraft(done = 'text.regulation-saved') {\n const on = this.current.version.id\n return await this.draft.submit(sent => this.call(this.saves.draft, { id: on, patch: this.patchOf(sent) }, done))\n }\n\n private async saveVersion() {\n if (!this.draft.dirty) return\n await this.saveDraft()\n }\n\n private async submit() {\n const id = this.current.version.id\n if (this.draft.dirty && !(await this.saveDraft())) return\n /* Only what the screen shows is put up: anything not saved yet stops the submission. */\n if (this.draft.dirty || this.current?.version.id !== id) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-submit'),\n text: i18next.t('text.regulation-submit-confirm'),\n confirmButton: { text: i18next.t('button.regulation-submit') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (confirmed) await this.call(this.saves.submit, { id }, 'text.regulation-submitted')\n }\n\n private async registerInForce() {\n const id = this.current.version.id\n if (this.draft.dirty && !(await this.saveDraft())) return\n if (this.draft.dirty || this.current?.version.id !== id) return\n const originals = this.originals\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-register-in-force'),\n text: i18next.t('text.regulation-in-force-confirm', { version: this.current.version.version, day: this.current.version.effectiveOn ?? '' }),\n confirmButton: { text: i18next.t('button.regulation-register-in-force') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (!confirmed) return\n const done = await this.call(\n this.saves.inForce,\n { id, files: originals },\n 'text.regulation-registered-in-force',\n originals.length ? uploadContext(() => {}) : undefined\n )\n if (done && this.originals === originals) this.originals = []\n }\n\n private async withdraw() {\n await this.call(this.saves.withdraw, { id: this.current.version.id })\n }\n\n private async newVersion() {\n const data = await this.call(this.saves.newVersion, { id: this.view.regulation.id })\n if (data) this.choose(data.newRegulationVersion.id)\n }\n\n /** The revision asked about is the one deleted: if the screen shows another once confirmed, nothing is deleted. */\n private async deleteVersion() {\n const id = this.current?.version.id\n if (!id) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-version-delete'),\n text: i18next.t('text.regulation-version-delete-confirm'),\n confirmButton: { text: i18next.t('button.delete'), destructive: true },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (!confirmed || this.current?.version.id !== id) return\n if (await this.call(this.saves.deleteVersion, { id })) this.choose('')\n }\n\n private async recordProcedure(kind: string) {\n const files = this.files\n const done = await this.procedure.submit(sent =>\n this.call(\n this.saves.procedure,\n {\n procedure: { versionId: this.current.version.id, kind, day: sent.day ?? '', notes: sent.notes || null },\n files\n },\n 'text.regulation-saved',\n files.length ? uploadContext(() => {}) : undefined\n )\n )\n /* Only what was sent is done - a file picked since stays. */\n if (done && this.files === files) this.files = []\n }\n\n private async deleteProcedure(id: string) {\n await this.call(this.saves.deleteProcedure, { id })\n }\n}\n"]}