CINXE.COM
...
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>...</title> <link rel="icon" href="./media/img/favicon.ico" type="image/x-icon" /> <link type="text/css" rel="stylesheet" href="./media/bootstrap/bootstrap.min.css" /> <link type="text/css" rel="stylesheet" href="./media/bootstrap/bootstrap-vue.min.css" /> <link type="text/css" rel="stylesheet" href="./media/css/nouislider.min.css" /> <link type="text/css" rel="stylesheet" href="./media/css/app.css?cb2025022601cb" /> <script src="./media/js/nouislider.min.js"></script> <script src="./media/js/Sortable.min.js"></script> <script src="./media/js/popper.min.js"></script> <script src="./media/js/polyfill.min.js"></script> <script>document.write('<scr' + 'ipt src="./media/js/vue' + (/MSIE|Trident.*rv:/.test(navigator.userAgent) ? '' : '.min') + '.js"></scr' + 'ipt>')</script> <script src="./media/js/vuex.min.js"></script> <script src="./media/js/vue-router.min.js"></script> <script src="./media/js/vue-i18n.min.js"></script> <script src="./media/js/ccohs_search.js"></script> <script src="./media/js/vuedraggable.umd.min.js"></script> <script src="./media/bootstrap/bootstrap-vue.min.js"></script> </head> <body class="h-100"> <div id="c-loading"></div> <article id="c" class="d-flex flex-column align-items-stretch h-100"> <header id="c-header" class="bg-black"> <div class="bg-dark-red text-right p-1"> <b-link href="#" class="text-white pr-3" v-on:click.prevent="$root.setLanguage(($root.lang === 'fr') ? 'en' : 'fr')">{{$t('labelToggleLanguage')}}</b-link> <b-link v-if="$root.isReference" v-bind:href="$root.$t('urlLogin')" class="text-white pr-3">{{$t('Login')}}</b-link> <b-link v-else href="#" class="text-white pr-3" v-on:click.prevent="$root.logout()">{{$t('Logout')}}</b-link> </div> <div class="container-fluid px-0"> <div class="row no-gutters"> <header class="col-12 px-2 px-md-3"> <h1 class="mt-1 mb-0"><a class="text-white" href="/">{{$t('Canadian enviroOSH Legislation plus Standards')}}</a></h1> </header> </div> <div class="row no-gutters align-items-stretch"> <div class="col-12 d-flex align-items-center justify-content-between"> <div v-if="!$root.isReference" class="mx-3 d-md-none"> <b-nav-toggle id="c-toggle-facets" target="c-facets" class="d-inline-block d-md-none"></b-nav-toggle> </div> <form class="flex-grow-1"> <b-input-group id="c-search-input" class="my-3 pl-1 pr-3 px-md-5"> <b-input-group-prepend> <b-button type="button" variant="dark" v-on:click="$root.submitSearch(true)"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> </b-button> </b-input-group-prepend> <b-form-input id="c-search" name="q" v-bind:placeholder="$t('Search') + '...'" v-model="$root.searchParamQuery" v-on:keydown.enter.prevent="$root.submitSearch(true)"></b-form-input> <b-input-group-append> <b-button href="#" id="showSearchBarTips" type="button" variant="dark"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-question-lg" viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215 0 1.344-.665 2.288-1.79 2.973-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712 1.03-.632 1.397-1.135 1.397-2.028 0-.979-.758-1.698-1.926-1.698-1.009 0-1.71.529-1.938 1.402-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09 0-.618-.473-1.092-1.095-1.092-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"/> </svg> </b-button> <b-popover target="showSearchBarTips" triggers="focus"> <div v-html="$t('markupSearchBarHint')"></div> </b-popover> </b-input-group-append> </b-input-group> </form> </div> </div> </div> </header> <main id="c-main" class="flex-grow-1 container-fluid px-0 bg-light-blue"> <router-view></router-view> </main> <footer id="c-footer" class="bg-white"> <div class="p-2 p-md-5 text-center"> <img class="img-fluid" src="./media/img/ccohs_cchst.svg" alt="CCOHS | CCHST"> </div> <div class="p-2 w-100 text-center bg-black text-white"> </div> </footer> <b-overlay v-bind:show="$root.isWaiting" v-on:click="$root.isWaiting = !$root.isWaiting" spinner-variant="secondary" no-wrap style="position:fixed !important;"></b-overlay> <b-modal ref="c-modal" header-class="text-white bg-blue" v-bind:title="$root.modalOpts.title" v-bind:hide-header="!$root.modalOpts.title" v-bind:no-close-on-backdrop="!!$root.modalOpts.okFn" v-bind:hide-footer="!$root.modalOpts.okFn" v-bind:ok-only="!$root.modalOpts.cancelFn" v-bind:ok-title="$t('OK')" v-bind:cancel-title="$t('Cancel')" v-on:ok="$root.modalOK" v-on:cancel="$root.modalCancel" centered static> <template slot="default"> <section v-html="$root.modalOpts.content"></section> </template> </b-modal> </article> <script type="text/template" id="tpl-filter-range-items"> <div> <div class="c-range-slider-labels"> <small class="text-blue c-range-value c-range-value-min">{{minValueLabel}}</small> <small class="text-blue c-range-value c-range-value-max">{{maxValueLabel}}</small> </div> <div class="c-range-slider"> <div v-bind:id="'range-items-' + facet"></div> </div> <b-button v-show="min !== minValue || max !== maxValue" v-on:click="$root.applyFilter(facet, [items[minValue].value, items[maxValue].value])" variant="primary" size="sm">{{$t('Apply')}}</b-button> </div> </script> <script type="text/template" id="tpl-filter-multi-items"> <div> <div class="c-filter-items mb-2 px-3"> <b-form-checkbox-group v-model="checked" stacked> <b-form-checkbox v-for="(item, index) in items" v-bind:key="index" v-bind:value="item.label" class="c-checkbox" size="lg"> <div class="d-flex justify-content-between align-items-start w-100"> <a v-if="item.active" v-bind:title="item.label">{{item.formattedLabel}}</a> <span v-else>{{item.formattedLabel}}</span> <a v-if="item.active" class="item-count" v-bind:title="item.label">{{item.count}}</a> <span v-else class="item-count">{{item.count}}</span> </div> </b-form-checkbox> </b-form-checkbox-group> </div> <b-button v-show="showApply()" v-on:click="$root.replaceFilter(facet, checked)" class="ml-3" variant="primary" size="sm">{{$t('Apply')}}</b-button> </div> </script> <script type="text/template" id="tpl-filter-item"> <li> <a v-if="item.active" href="#" v-on:click.prevent="$root.applyFilter(facet, item.label)" v-bind:title="item.label">{{item.formattedLabel}}</a> <span v-else>{{item.formattedLabel}}</span> <a v-if="item.active" href="#" class="item-count" v-on:click.prevent="$root.applyFilter(facet, item.label)" v-bind:title="item.label">{{item.count}}</a> <span v-else class="item-count">{{item.count}}</span> </li> </script> <script type="text/template" id="tpl-filter"> <li class="c-filter d-block bg-white mb-4"> <span class="w-100 d-flex justify-content-between bg-blue"> <span> <a href="#" v-b-toggle="'collapse-' + filter.name" class="text-white c-filter-collapse" v-on:click.prevent> <h3 class="d-inline-block c-filter-title text-uppercase my-2 px-3">{{filter.title}}</h3> </a> </span> <a href="#" v-b-toggle="'collapse-' + filter.name" class="text-white c-filter-collapse" v-on:click.prevent> <div class="d-inline-block pr-3 mt-2 text-bold"> <strong v-if="$root.showFilter[filter.name]">-</strong> <strong v-else>+</strong> </div> </a> </span> <b-collapse class="py-2" v-bind:id="'collapse-' + filter.name" v-model="$root.showFilter[filter.name]" v-on:input="toggleShowFilter"> <div v-if="$root.isTypeFacet('Searchable', filter.facet)" class="px-3 pb-2"> <b-form-input v-bind:placeholder="$t('Search') + '...'" v-model="filter.search"></b-form-input> </div> <div v-if="$root.isTypeFacet('DateRange', filter.facet)" class="px-3"> <c-filter-range-items v-if="filterItems.length > 1" v-bind:facet="filter.facet" v-bind:items="filterItems"></c-filter-range-items> <ul v-else class="c-filter-items list-unstyled"> <li is="c-filter-item" v-for="(item, index) in filterItems" v-bind:key="index" v-bind:facet="filter.facet" v-bind:item="item"></li> </ul> </div> <div v-else-if="$root.isTypeFacet('MultiSelect', filter.facet)"> <c-filter-multi-items v-if="filterItems.length > 1" v-bind:facet="filter.facet" v-bind:items="filterItems"></c-filter-multi-items> <ul v-else class="c-filter-items list-unstyled px-3"> <li is="c-filter-item" v-for="(item, index) in filterItems" v-bind:key="index" v-bind:facet="filter.facet" v-bind:item="item"></li> </ul> <div class="ml-3"> <a v-show="showPreviousLink" class="c-show-link c-show-previous-link" href="#" v-on:click.prevent="setPageNumber(pageNumber - 1)">{{$t('Previous {pageSize}', this)}} <b-spinner v-show="showWaiting.previous" class="ml-1" small></b-spinner></a> <a v-show="showMoreLink" class="c-show-link c-show-more-link" href="#" v-on:click.prevent="toggleShowMore">{{$t(showMore ? 'Show more' : 'Show less')}} <b-spinner v-show="showWaiting.more" class="ml-1" small></b-spinner></a> <a v-show="showNextLink" class="c-show-link c-show-next-link" href="#" v-on:click.prevent="setPageNumber(pageNumber + 1)">{{$t('Next {pageSize}', this)}} <b-spinner v-show="showWaiting.next" class="ml-1" small></b-spinner></a> </div> </div> <div v-else> <div v-if="filterItems.length"> <ul class="c-filter-items list-unstyled px-3"> <li is="c-filter-item" v-for="(item, index) in filterItems" v-bind:key="index" v-bind:facet="filter.facet" v-bind:item="item"></li> </ul> <div class="ml-3"> <a v-show="showPreviousLink" class="c-show-link c-show-previous-link" href="#" v-on:click.prevent="setPageNumber(pageNumber - 1)">{{$t('Previous {pageSize}', this)}} <b-spinner v-show="showWaiting.previous" class="ml-1" small></b-spinner></a> <a v-show="showMoreLink" class="c-show-link c-show-more-link" href="#" v-on:click.prevent="toggleShowMore">{{$t(showMore ? 'Show more' : 'Show less')}} <b-spinner v-show="showWaiting.more" class="ml-1" small></b-spinner></a> <a v-show="showNextLink" class="c-show-link c-show-next-link" href="#" v-on:click.prevent="setPageNumber(pageNumber + 1)">{{$t('Next {pageSize}', this)}} <b-spinner v-show="showWaiting.next" class="ml-1" small></b-spinner></a> </div> </div> <span v-else class="d-block text-dark-grey px-3">{{$t('No results found')}}</span> </div> </b-collapse> </li> </script> <script type="text/template" id="tpl-applied-filters"> <b-button-group size="sm" class="pr-1 pb-1"> <b-button v-if="filters[0].facet !== 'query'" variant="primary" v-on:click="$root.removeFilter(filters[0])">{{filters[0].facetLabel}}</b-button> <b-button v-for="(filter, index) in filters" v-bind:key="index" variant="light" v-bind:title="filter.filterTitle" v-on:click="$root.removeFilter(null, filter)">{{filter.filterLabel}}</b-button> </b-button-group> </script> <script type="text/template" id="tpl-result-heading"> <th v-bind:class="'c-' + field.key"> <a href="#" class="d-flex justify-content-between w-100 text-black" v-on:click.prevent="$root.searchSortField = field.value"> <span>{{field.label}}</span> <div v-if="$root.searchSortField === field.value" class="c-sort-dir"> <img v-bind:src="'./media/img/' + $root.searchSortDirection + '.svg'"/> </div> </a> </th> </script> <script type="text/template" id="tpl-grouped-results"> <div role="tablist" v-html="groupedResultsMarkup"></div> </script> <script type="text/template" id="tpl-result-heading"> <th v-bind:class="'c-' + field.key"> <a href="#" class="d-flex justify-content-between w-100 text-black" v-on:click.prevent="$root.searchSortField = field.value"> <span>{{field.label}}</span> <div v-if="$root.searchSortField === field.value" class="c-sort-dir"> <img v-bind:src="'./media/img/' + $root.searchSortDirection + '.svg'"/> </div> </a> </th> </script> <script type="text/template" id="tpl-result-field"> <td v-bind:class="'c-' + field.key"> <div v-if="isField('fieldParentDoc') && $root.hasJurPre(result.ParentDoc_s)" class="d-flex flex-row align-items-center w-100"> <div class="c-jur-wrap"><span v-bind:class="'c-jur c-jur-' + $root.jurPre(result.ParentDoc_s, true)">{{$root.jurPre(result.ParentDoc_s, true)}}</span></div> <span class="d-inline-block flex-grow-1 ml-2" v-html="fieldMarkup"></span> </div> <div v-else-if="isField('fieldParentDoc')"> <span v-html="fieldMarkup"></span> </div> <a v-else-if="isField('fieldName')" target="_blank" v-bind:href="result.href" class="text-blue"><span v-html="fieldMarkup"></span></a> </td> </script> <script type="text/template" id="tpl-results-heading"> <div class="d-flex justify-content-between"> <div class="d-none"> <small v-html="$t(foundLabel, this)"></small> </div> <div v-if="Object.keys($root.appliedSearchFilters).length" id="c-remove-filters" class="flex-grow-1 px-2"> <c-applied-filters v-for="(filters, facet) in $root.appliedSearchFilters" v-bind:key="facet" v-bind:filters="filters"></c-applied-filters> <a href="#" class="text-blue text-nowrap" v-if="Object.keys($root.appliedSearchFilters).length > 1" v-on:click.prevent="$root.removeFilter()"><small>{{$t('Clear All')}}</small></a> </div> <div class="d-flex flex-nowrap"> <label v-if="$root.resultTab === 1" class="flex-fill text-nowrap pr-1" for="resultsPerPage"><small>{{$t('Per page')}}</small></label> <b-form-select v-if="$root.resultTab === 1" class="flex-fill d-inline-block" id="resultsPerPage" size="sm" v-model="$root.searchParamResultsPerPage" v-bind:options="[10, 25, 50, 100]"></b-form-select> </div> </div> </script> <script type="text/template" id="tpl-results-footer"> <div> <b-pagination v-if="$root.searchResults.length" class="c-results-pagination" v-model="$root.searchParamPage" v-bind:per-page="$root.searchParamResultsPerPage" v-bind:total-rows="$root.searchResultsTotal" v-bind:prev-text="$t('Previous')" v-bind:next-text="$t('Next')" align="center" first-number last-number hide-goto-end-buttons></b-pagination> <div v-else-if="!$root.isWaiting" class="text-center my-5"> <h2>{{$t('Sorry, there are no results that match your search criteria.')}}</h2> <p class="text-dark-grey">{{$t('Please check your spelling and try using more general keywords.')}}</p> </div> </div> </script> <script type="text/template" id="tpl-results"> <div class="d-flex c-results align-items-stretch row no-gutters"> <b-collapse v-if="!$root.isReference" id="c-facets" class="col-md-4 col-lg-3 py-3 align-self-stretch" is-nav> <ul class="list-unstyled px-2 px-md-3"> <li is="c-filter" v-for="filter in $root.filters" v-bind:key="filter.facet" v-bind:filter="filter" v-bind:page-size="filter.pageSize" v-bind:show-more-enabled="filter.showMoreEnabled"></li> </ul> </b-collapse> <div id="c-results" v-bind:class="$root.isReference ? 'col-12 px-md-5 py-3 align-self-stretch' : 'col-md-8 col-lg-9 pr-md-3 py-3 align-self-stretch'"> <b-tabs class="h-100 d-flex flex-column align-items-stretch" v-bind:nav-wrapper-class="$root.isReference ? 'd-none' : 'flex-shrink-1 px-0 bg-blue font-weight-bold text-uppercase'" nav-class="border-0" active-nav-item-class="text-black bg-white" content-class="c-results-tab-content bg-white flex-grow-1 px-2 pt-3" fill align="center"> <p v-if="$root.isReference" class="p-1 p-md-3 mx-md-5 border text-center" v-html="$t('markupReferenceOnly', $root.$i18n.messages[$root.lang])"></p> <b-tab v-bind:title="$t('Legislation / Standards')" title-link-class="text-white border-0 rounded-0"> <div v-if="$root.resultTab === 0" class="d-flex flex-column align-items-stretch h-100"> <c-results-heading></c-results-heading> <div class="flex-grow-1"> <div v-if="$root.searchResults.length" class="text-right"><a class="text-blue" href="#" v-on:click.prevent="toggleGroupedResultItems">{{$t($root.groupedResultItemsVisible ? 'Close All' : 'Open All')}}</a></div> <div v-if="$root.searchResults.length" role="tablist"> <c-grouped-results></c-grouped-results> </div> <div v-if="$root.searchResults.length" class="text-right"><a class="text-blue" href="#" v-on:click.prevent="toggleGroupedResultItems">{{$t($root.groupedResultItemsVisible ? 'Close All' : 'Open All')}}</a></div> </div> </div> </b-tab> <b-tab v-if="0" v-bind:title="$t('Document Name')" title-link-class="text-white border-0 rounded-0"> <div v-if="$root.resultTab === 1" class="d-flex flex-column align-items-stretch h-100"> <c-results-heading></c-results-heading> <div class="flex-grow-1"> <table v-if="$root.searchResults.length" class="table table-striped table-borderless mt-2"> <thead> <tr> <th is="c-result-heading" v-for="field in $root.visibleFields" v-bind:key="field.key" v-bind:field="field"></th> </tr> </thead> <tbody> <tr v-for="result in $root.searchResults" v-bind:key="result.id"> <td is="c-result-field" v-for="field in $root.visibleFields" v-bind:key="result.id + ' ' + field.key" v-bind:field="field" v-bind:result="result"></td> </tr> </tbody> </table> <c-results-footer></c-results-footer> </div> </div> </b-tab> <b-tab v-bind:title="$t('Monthly Report')" title-link-class="text-white border-0 rounded-0"> <b-card-group deck> <b-card body-class="text-center bg-blue"> <a v-bind:href="$t('urlMonthlyReportCurrent')" class="text-white" target="_blank">{{$t('labelMonthlyReportCurrentLink')}}</a> </b-card> <b-card body-class="text-center bg-blue"> <a v-bind:href="$t('urlMonthlyReportArchive')" class="text-white" target="_blank">{{$t('labelMonthlyReportArchiveLink')}}</a> </b-card> </b-card-group> <div class="pt-1 text-center" v-html="$root.$i18n.t('monthly-report-note-markup')"></div> </b-tab> </b-tabs> </div> </div> </script> <template id="i18n-message-markup"> <template lang="en" data-key="markupReferenceOnly"> <p>Use the Login link in the top right corner to access your subscription. Not yet a subscriber? <a href="https://www.ccohs.ca/ccohs/contacting.html">Contact CCOHS</a>.</p> <p>Access legislation and fact sheets on popular topics using the quick links below. You'll need to login first to view the full legislation.</p> <p class="mb-0">Looking for COVID-19 information? View the latest <a href="http://x-data-server/legislation/documents/notes/oshleg/COVID-19_Tracker.htm">re-opening requirements, plans, and restrictions</a> by jurisdiction.</p> </template> <template lang="fr" data-key="markupReferenceOnly"> <p>Cliquez sur le lien Ouverture situ茅 dans le coin sup茅rieur droit pour acc茅der 脿 votre abonnement. Vous n鈥櫭猼es pas encore abonn茅? <a href="https://www.cchst.ca/ccohs/contacting.html">Communiquez avec le CCHST</a>.</p> <p>Acc茅dez 脿 la l茅gislation et aux fiches d鈥檌nformation sur des sujets populaires au moyen des liens rapides ci-dessous. Vous devrez d鈥檃bord ouvrir une session pour consulter toute la l茅gislation.</p> <p class="mb-0">Vous cherchez des renseignements sur la COVID-19? Consultez la version la plus r茅cente <a href="http://x-data-server/legislation/documents/notes_fr/oshlegf/COVID-19_Trackerf.htm">des exigences, des plans et des restrictions en mati猫re de r茅ouverture</a> par province et territoire.</p> </template> <template lang="en" data-key="markupSearchBarHint"> <p class="mb-0">Entering multiple words will deliver results that include either word. To get results with both/all words, use "AND". For example, <em>fire AND extinguishers</em>.</p> </template> <template lang="fr" data-key="markupSearchBarHint"> <p class="mb-0">Si vous entrez plusieurs mots 脿 rechercher, les r茅sultats obtenus contiendront l鈥檜n ou l鈥檃utre de ces mots. Utilisez l鈥檕p茅rateur 芦聽AND聽禄 pour obtenir des r茅sultats contenant tous les mots recherch茅s. Par exemple聽: <em>incendie AND extincteurs</em>.</p> </template> <template lang="en" data-key="monthly-report-note-markup"> <small>Note: This Report is currently only available in English</small> </template> <template lang="fr" data-key="monthly-report-note-markup"> <small>Remarque: 脌 l'heure actuelle, le rapport n'est disponible qu'en anglais.</small> </template> </template> <template id="i18n-markup"> <table> <thead> <tr><th>en</th><th>fr</th></tr> </thead> <tbody> <tr><td>Login</td><td>Ouverture</td></tr> <tr><td>Logout</td><td>Fermer la session</td></tr> <tr><td>Canadian enviroOSH Legislation plus Standards</td><td>L茅gislation enviroSST canadienne plus Normes</td></tr> <tr><td>Search</td><td>Recherche</td></tr> <tr><td>Search Results</td><td>R茅sultats de recherche</td></tr> <tr><td>Legislation / Standards</td><td>L茅gislation / Normes</td></tr> <tr><td>Document Name</td><td>Nom du document</td></tr> <tr><td>Monthly Report</td><td>Raport mensuel</td></tr> <tr><td>Name</td><td>Nom</td></tr> <tr><td>Title</td><td>Titre</td></tr> <tr><td>Name</td><td>Nom</td></tr> <tr><td>Jurisdiction</td><td>Sph猫re de comp茅tence</td></tr> <tr><td>Showing {first} - {last} of {total}</td><td>R茅sultat {first} - {last} de {total}</td></tr> <tr><td>Showing All {total}</td><td>Tout afficher {total}</td></tr> <tr><td>Showing free legislation and standards<br>in the enviroOSH collection</td><td>FR: Showing free legislation and standards<br>in the enviroOSH collection</td></tr> <tr><td>Showing all legislation and standards<br>in the enviroOSH collection</td><td>FR: Showing all legislation and standards<br>in the enviroOSH collection</td></tr> <tr><td>No results found</td><td>Aucun r茅sultat trouv茅</td></tr> <tr><td>Sorry, there are no results that match your search criteria.</td><td>Aucun r茅sultat ne correspond aux crit猫res de recherche.</td></tr> <tr><td>Please check your spelling and try using more general keywords.</td><td>Veuillez v茅rifier l'orthographe et utiliser des mots cl茅s plus g茅n茅raux.</td></tr> <tr><td>Per page</td><td>par page</td></tr> <tr><td>Clear All</td><td>Tout effacer</td></tr> <tr><td>Apply</td><td>Appliquer</td></tr> <tr><td>Next</td><td>Suivant</td></tr> <tr><td>Next {pageSize}</td><td>Suivant {pageSize}</td></tr> <tr><td>Previous</td><td>Pr茅c茅dent</td></tr> <tr><td>Previous {pageSize}</td><td>Pr茅c茅dent {pageSize}</td></tr> <tr><td>OK</td><td>OK</td></tr> <tr><td>Cancel</td><td>Annuler</td></tr> <tr><td>Show more</td><td>Afficher plus</td></tr> <tr><td>Show less</td><td>Afficher moins</td></tr> <tr><td>Open All</td><td>Tout ouvrir</td></tr> <tr><td>Close All</td><td>Tout fermer</td></tr> </tbody> </table> </template> <script src="./media/js/app.js?cb2025022601cb"></script> </body> </html>